Newer
Older
<?php
/**
* Piwik - Open source web analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
mattab
a validé
use Piwik\Plugins\SitesManager\API;
/**
* FakeAccess for UnitTests
*/
class FakeAccess
{
public static $superUser = false;
public static $idSitesAdmin = array();
public static $idSitesView = array();
public static $identity = 'superUserLogin';
public static $superUserLogin = 'superUserLogin';
public function __construct()
{
self::$superUser = false;
self::$idSitesAdmin = array();
self::$idSitesView = array();
self::$identity = 'superUserLogin';
public static function setIdSitesAdmin($ids)
{
self::$superUser = false;
self::$idSitesAdmin = $ids;
}
public static function setIdSitesView($ids)
{
self::$superUser = false;
self::$idSitesView = $ids;
}
public static function checkUserHasSuperUserAccess()
if (!self::$superUser) {
throw new Exception("checkUserHasSuperUserAccess Fake exception // string not to be tested");
/**
* @see FakeAccess::checkUserHasSuperUserAccess()
* @deprecated deprecated since version 2.0.4
*/
public function checksUserIsSuperUser()
{
self::checkUserHasSuperUserAccess();
}
Thomas Steur
a validé
public static function setSuperUserAccess($bool = true)
Thomas Steur
a validé
/**
* @see FakeAccess::checkUserHasSuperUserAccess()
* @deprecated deprecated since version 2.0.4
*/
public static function setSuperUser($bool = true)
{
self::setSuperUserAccess($bool);
}
public static function checkUserHasAdminAccess($idSites)
if (!self::$superUser) {
$websitesAccess = self::$idSitesAdmin;
} else {
mattab
a validé
$websitesAccess = API::getInstance()->getAllSitesId();
$idSites = Site::getIdSitesFromIdSitesString($idSites);
foreach ($idSites as $idsite) {
if (!in_array($idsite, $websitesAccess)) {
throw new Exception("checkUserHasAdminAccess Fake exception // string not to be tested");
}
}
}
public static function checkUserHasViewAccess($idSites)
if (!self::$superUser) {
$websitesAccess = array_merge(self::$idSitesView, self::$idSitesAdmin);
} else {
mattab
a validé
$websitesAccess = API::getInstance()->getAllSitesId();
if (!is_array($idSites)) {
if ($idSites == 'all') {
mattab
a validé
$idSites = API::getInstance()->getAllSitesId();
} else {
$idSites = explode(',', $idSites);
}
if (empty($websitesAccess)) {
throw new Exception("checkUserHasViewAccess Fake exception // string not to be tested");
}
foreach ($idSites as $idsite) {
if (!in_array($idsite, $websitesAccess)) {
throw new Exception("checkUserHasViewAccess Fake exception // string not to be tested");
}
}
}
public static function checkUserHasSomeViewAccess()
{
if (!self::$superUser) {
if (count(self::$idSitesView) == 0) {
throw new Exception("checkUserHasSomeViewAccess Fake exception // string not to be tested");
}
} else {
return;
}
}
//means at least view access
public static function checkUserHasSomeAdminAccess()
{
if (!self::$superUser) {
if (count(self::$idSitesAdmin) == 0) {
throw new Exception("checkUserHasSomeAdminAccess Fake exception // string not to be tested");
}
} else {
public static function getLogin()
{
return self::$identity;
}
if (self::$superUser) {
mattab
a validé
return API::getInstance()->getAllSitesId();
return self::$idSitesAdmin;
if (self::$superUser) {
mattab
a validé
return API::getInstance()->getAllSitesId();
return self::$idSitesView;
public static function getSitesIdWithAtLeastViewAccess()
{
if (self::$superUser) {
mattab
a validé
return API::getInstance()->getAllSitesId();
return array_merge(self::$idSitesView, self::$idSitesAdmin);
public function getRawSitesWithSomeViewAccess($login)
{
$result = array();
foreach (array_merge(self::$idSitesView, self::$idSitesAdmin) as $idSite) {
$result[] = array('idsite' => $idSite);
}
return $result;
}
public function getSuperUserLogin()
{
return self::$superUserLogin;
}