/** * @dataProvider resourceIdsProvider * @preserveGlobalState disable * @param $resourceIds */ public function testGetUsersWithPermissions($resourceIds) { $inQuery = implode(',', array_fill(0, count($resourceIds), '?')); $queryFixture = "SELECT resource_id, user_id, privilege FROM " . \oat\taoDacSimple\model\DataBaseAccess::TABLE_PRIVILEGES_NAME . "\n WHERE resource_id IN ({$inQuery})"; $resultFixture = array(array('fixture')); $persistenceMock = $this->getPersistenceMock($resourceIds, $queryFixture, $resultFixture); $this->instance->setPersistence($persistenceMock); $this->assertSame($resultFixture, $this->instance->getUsersWithPermissions($resourceIds)); }
/** * Get a list of users with permissions for a given resource * * Returns an associativ array with userid as key and an array of rights as value * * @param string $resourceIds * @return array */ public static function getUsersPermissions($resourceUri) { $db = new DataBaseAccess(); $results = $db->getUsersWithPermissions(array($resourceUri)); $permissions = array(); foreach ($results as $result) { $user = $result['user_id']; if (!isset($permissions[$user])) { $permissions[$user] = array(); } $permissions[$user][] = $result['privilege']; } return $permissions; }