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-02-04 09:29:32 +0300
committermattpiwik <matthieu.aubry@gmail.com>2011-02-04 09:29:32 +0300
commit3b6a5ea4f53dc0a46f5ce1d38dd27d4c6cb64cd6 (patch)
tree227bffe69120af2f8863e57a92495e48326d1e02 /plugins/UsersManager
parent55fb6f63c4928721d885d1b8aa431f4aa7ace714 (diff)
Fixes #2062
git-svn-id: http://dev.piwik.org/svn/trunk@3845 59fd770c-687e-43c8-a1e3-f5a4ff64c105
Diffstat (limited to 'plugins/UsersManager')
-rw-r--r--plugins/UsersManager/API.php21
-rw-r--r--plugins/UsersManager/tests/UsersManager.test.php17
2 files changed, 34 insertions, 4 deletions
diff --git a/plugins/UsersManager/API.php b/plugins/UsersManager/API.php
index 2c7231ac9a..dfb46816de 100644
--- a/plugins/UsersManager/API.php
+++ b/plugins/UsersManager/API.php
@@ -182,7 +182,28 @@ class Piwik_UsersManager_API
$return[$user['login']] = $user['access'];
}
return $return;
+ }
+
+ public function getUsersWithSiteAccess( $idSite, $access )
+ {
+ Piwik::checkUserHasAdminAccess( $idSite );
+ $this->checkAccessType( $access );
+ $db = Zend_Registry::get('db');
+ $users = $db->fetchAll("SELECT login
+ FROM ".Piwik_Common::prefixTable("access")
+ ." WHERE idsite = ? AND access = ?", array($idSite, $access));
+ $logins = array();
+ foreach($users as $user)
+ {
+ $logins[] = $user['login'];
+ }
+ if(empty($logins))
+ {
+ return array();
+ }
+ $logins = implode(',', $logins);
+ return $this->getUsers($logins);
}
/**
diff --git a/plugins/UsersManager/tests/UsersManager.test.php b/plugins/UsersManager/tests/UsersManager.test.php
index 133dfc0848..ce772b2cee 100644
--- a/plugins/UsersManager/tests/UsersManager.test.php
+++ b/plugins/UsersManager/tests/UsersManager.test.php
@@ -744,14 +744,14 @@ class Test_Piwik_UsersManager extends Test_Database
Piwik_UsersManager_API::getInstance()->setUserAccess("user1", "view", array($id1,$id2));
Piwik_UsersManager_API::getInstance()->setUserAccess("user2", "admin", array($id1));
- Piwik_UsersManager_API::getInstance()->setUserAccess("user2", "view", array($id3));
+ Piwik_UsersManager_API::getInstance()->setUserAccess("user2", "view", array($id3, $id2));
$access1 = Piwik_UsersManager_API::getInstance()->getSitesAccessFromUser("user1");
$access1 = $this->_flatten($access1);
$access2 = Piwik_UsersManager_API::getInstance()->getSitesAccessFromUser("user2");
$access2 = $this->_flatten($access2);
$wanted1 = array( $id1 => 'view', $id2 => 'view', );
- $wanted2 = array( $id1 => 'admin', $id3 => 'view' );
+ $wanted2 = array( $id1 => 'admin', $id2 => 'view', $id3 => 'view' );
$this->assertEqual($access1, $wanted1);
$this->assertEqual($access2, $wanted2);
@@ -761,7 +761,7 @@ class Test_Piwik_UsersManager extends Test_Database
$access2 = Piwik_UsersManager_API::getInstance()->getUsersAccessFromSite($id2);
$access3 = Piwik_UsersManager_API::getInstance()->getUsersAccessFromSite($id3);
$wanted1 = array( 'user1' => 'view', 'user2' => 'admin', );
- $wanted2 = array( 'user1' => 'view' );
+ $wanted2 = array( 'user1' => 'view', 'user2' => 'view' );
$wanted3 = array( 'user2' => 'view' );
$this->assertEqual($access1, $wanted1);
@@ -770,12 +770,21 @@ class Test_Piwik_UsersManager extends Test_Database
$access1 = Piwik_UsersManager_API::getInstance()->getUsersSitesFromAccess('view');
$access2 = Piwik_UsersManager_API::getInstance()->getUsersSitesFromAccess('admin');
- $wanted1 = array( 'user1' => array($id1,$id2), 'user2' => array($id3) );
+ $wanted1 = array( 'user1' => array($id1,$id2), 'user2' => array($id3, $id2) );
$wanted2 = array( 'user2' => array($id1) );
$this->assertEqual($access1, $wanted1);
$this->assertEqual($access2, $wanted2);
+ // Test getUsersWithSiteAccess
+ $users = Piwik_UsersManager_API::getInstance()->getUsersWithSiteAccess($id1, $access = 'view');
+ $this->assertTrue(count($users) == 1 && $users[0]['login'] == 'user1');
+ $users = Piwik_UsersManager_API::getInstance()->getUsersWithSiteAccess($id2, $access = 'view');
+ $this->assertTrue(count($users) == 2);
+ $users = Piwik_UsersManager_API::getInstance()->getUsersWithSiteAccess($id1, $access = 'admin');
+ $this->assertTrue(count($users) == 1 && $users[0]['login'] == 'user2');
+ $users = Piwik_UsersManager_API::getInstance()->getUsersWithSiteAccess($id3, $access = 'admin');
+ $this->assertTrue(count($users) == 0);
}
/**