diff options
author | mattpiwik <matthieu.aubry@gmail.com> | 2011-04-12 08:04:15 +0400 |
---|---|---|
committer | mattpiwik <matthieu.aubry@gmail.com> | 2011-04-12 08:04:15 +0400 |
commit | 4d6de674f15ed34b6a041579420b522aad8d477b (patch) | |
tree | 71a494b1e0543a6de76b94a7ed7f9680e9937621 /plugins/UsersManager | |
parent | 322d2722e96dcc789236f092b6e55a5f5c78edc0 (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.php | 4 | ||||
-rw-r--r-- | plugins/UsersManager/UsersManager.php | 25 |
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 * |