/** * For each user, returns the list of website IDs where the user has the supplied $access level. * If a user doesn't have the given $access to any website IDs, * the user will not be in the returned array. * * @param string Access can have the following values : 'view' or 'admin' * * @return array The returned array has the format * array( * login1 => array ( idsite1,idsite2), * login2 => array(idsite2), * ... * ) */ public function getUsersSitesFromAccess($access) { Piwik::checkUserHasSuperUserAccess(); $this->checkAccessType($access); $userSites = $this->model->getUsersSitesFromAccess($access); $userSites = $this->userFilter->filterLoginIndexedArray($userSites); return $userSites; }
private function hasAccessToSameSite($login) { // users is allowed to see other users having view or admin access to these sites if (!isset($this->idSitesWithAdmin)) { $this->idSitesWithAdmin = $this->access->getSitesIdWithAdminAccess(); $this->usersWithAdminAccess = $this->model->getUsersSitesFromAccess('admin'); $this->usersWithViewAccess = $this->model->getUsersSitesFromAccess('view'); } return isset($this->usersWithViewAccess[$login]) && array_intersect($this->idSitesWithAdmin, $this->usersWithViewAccess[$login]) || isset($this->usersWithAdminAccess[$login]) && array_intersect($this->idSitesWithAdmin, $this->usersWithAdminAccess[$login]); }
/** * For each user, returns the list of website IDs where the user has the supplied $access level. * If a user doesn't have the given $access to any website IDs, * the user will not be in the returned array. * * @param string Access can have the following values : 'view' or 'admin' * * @return array The returned array has the format * array( * login1 => array ( idsite1,idsite2), * login2 => array(idsite2), * ... * ) */ public function getUsersSitesFromAccess($access) { Piwik::checkUserHasSuperUserAccess(); $this->checkAccessType($access); return $this->model->getUsersSitesFromAccess($access); }