Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormattpiwik <matthieu.aubry@gmail.com>2011-04-12 08:04:15 +0400
committermattpiwik <matthieu.aubry@gmail.com>2011-04-12 08:04:15 +0400
commit4d6de674f15ed34b6a041579420b522aad8d477b (patch)
tree71a494b1e0543a6de76b94a7ed7f9680e9937621 /plugins/UsersManager
parent322d2722e96dcc789236f092b6e55a5f5c78edc0 (diff)
Fixes #2302 Now, setTokenAuth on the Tracking API can accept the Super User token_auth or any 'admin' user token_auth (the token are cached in the tracker cache file, which is now flushed when users or permissions are changed)
git-svn-id: http://dev.piwik.org/svn/trunk@4417 59fd770c-687e-43c8-a1e3-f5a4ff64c105
Diffstat (limited to 'plugins/UsersManager')
-rw-r--r--plugins/UsersManager/API.php4
-rw-r--r--plugins/UsersManager/UsersManager.php25
2 files changed, 29 insertions, 0 deletions
diff --git a/plugins/UsersManager/API.php b/plugins/UsersManager/API.php
index 3f915ca8f3..f06a4f2a6c 100644
--- a/plugins/UsersManager/API.php
+++ b/plugins/UsersManager/API.php
@@ -377,6 +377,7 @@ class Piwik_UsersManager_API
// we reload the access list which doesn't yet take in consideration this new user
Zend_Registry::get('access')->reloadAccess();
+ Piwik_Common::deleteTrackerCache();
}
/**
@@ -434,6 +435,7 @@ class Piwik_UsersManager_API
),
"login = '$userLogin'"
);
+ Piwik_Common::deleteTrackerCache();
}
/**
@@ -457,6 +459,7 @@ class Piwik_UsersManager_API
$this->deleteUserOnly( $userLogin );
$this->deleteUserAccess( $userLogin );
+ Piwik_Common::deleteTrackerCache();
}
/**
@@ -552,6 +555,7 @@ class Piwik_UsersManager_API
// we reload the access list which doesn't yet take in consideration this new user access
Zend_Registry::get('access')->reloadAccess();
+ Piwik_Common::deleteTrackerCache();
}
/**
diff --git a/plugins/UsersManager/UsersManager.php b/plugins/UsersManager/UsersManager.php
index c9ee3d4591..136ada7962 100644
--- a/plugins/UsersManager/UsersManager.php
+++ b/plugins/UsersManager/UsersManager.php
@@ -49,9 +49,34 @@ class Piwik_UsersManager extends Piwik_Plugin
'AdminMenu.add' => 'addMenu',
'AssetManager.getJsFiles' => 'getJsFiles',
'SitesManager.deleteSite' => 'deleteSite',
+ 'Common.fetchWebsiteAttributes' => 'recordAdminUsersInCache',
);
}
+
+ /**
+ * Hooks when a website tracker cache is flushed (website/user updated, cache deleted, or empty cache)
+ * Will record in the tracker config file the list of Admin token_auth for this website. This
+ * will be used when the Tracking API is used with setIp(), setForceDateTime(), setVisitorId(), etc.
+ *
+ * @param Piwik_Event_Notification $notification
+ * @return void
+ */
+ function recordAdminUsersInCache($notification)
+ {
+ $idSite = $notification->getNotificationInfo();
+ // add the 'hosts' entry in the website array
+ $users = Piwik_UsersManager_API::getInstance()->getUsersWithSiteAccess($idSite, 'admin');
+
+ $tokens = array();
+ foreach($users as $user)
+ {
+ $tokens[] = $user['token_auth'];
+ }
+ $array =& $notification->getNotificationObject();
+ $array['admin_token_auth'] = $tokens;
+ }
+
/**
* Delete user preferences associated with a particular site
*