Skip to content
Extraits de code Groupes Projets
FakeAccess.php 4,54 ko
Newer Older
sgiehl's avatar
sgiehl a validé
<?php
/**
 * Piwik - Open source web analytics
 *
 * @link http://piwik.org
 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 */
/**
 * 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';
        self::$idSitesAdmin = array();
        self::$idSitesView = array();
        self::$identity = 'superUserLogin';
sgiehl's avatar
sgiehl a validé
    public static function setIdSitesAdmin($ids)
    {
        self::$superUser = false;
        self::$idSitesAdmin = $ids;
    }
sgiehl's avatar
sgiehl a validé
    public static function setIdSitesView($ids)
    {
        self::$superUser = false;
        self::$idSitesView = $ids;
    }
sgiehl's avatar
sgiehl a validé
    public static function checkUserIsSuperUser()
    {
sgiehl's avatar
sgiehl a validé
            throw new Exception("checkUserIsSuperUser Fake exception // string not to be tested");
        }
    }
sgiehl's avatar
sgiehl a validé
    public static function setSuperUser($bool = true)
    {
        self::$superUser = $bool;
    }

    public static function reloadAccess()
sgiehl's avatar
sgiehl a validé

    public static function checkUserHasAdminAccess($idSites)
sgiehl's avatar
sgiehl a validé
    {
        if (!self::$superUser) {
            $websitesAccess = self::$idSitesAdmin;
        } else {
            $websitesAccess = Piwik_SitesManager_API::getInstance()->getAllSitesId();
sgiehl's avatar
sgiehl a validé
        }
        $idSites = Piwik_Site::getIdSitesFromIdSitesString($idSites);
        foreach ($idSites as $idsite) {
            if (!in_array($idsite, $websitesAccess)) {
sgiehl's avatar
sgiehl a validé
                throw new Exception("checkUserHasAdminAccess Fake exception // string not to be tested");
            }
        }
    }
sgiehl's avatar
sgiehl a validé
    //means at least view access
    public static function checkUserHasViewAccess($idSites)
sgiehl's avatar
sgiehl a validé
    {
        if (!self::$superUser) {
            $websitesAccess = array_merge(self::$idSitesView, self::$idSitesAdmin);
        } else {
            $websitesAccess = Piwik_SitesManager_API::getInstance()->getAllSitesId();
sgiehl's avatar
sgiehl a validé
        }

        if (!is_array($idSites)) {
            if ($idSites == 'all') {
                $idSites = Piwik_SitesManager_API::getInstance()->getAllSitesId();
            } else {
                $idSites = explode(',', $idSites);
            }
sgiehl's avatar
sgiehl a validé
        }

        if (empty($websitesAccess)) {
            throw new Exception("checkUserHasViewAccess Fake exception // string not to be tested");

        foreach ($idSites as $idsite) {
            if (!in_array($idsite, $websitesAccess)) {
sgiehl's avatar
sgiehl a validé
                throw new Exception("checkUserHasViewAccess Fake exception // string not to be tested");
            }
        }
    }

    public static function checkUserHasSomeViewAccess()
    {
        if (!self::$superUser) {
            if (count(self::$idSitesView) == 0) {
sgiehl's avatar
sgiehl a validé
                throw new Exception("checkUserHasSomeViewAccess Fake exception // string not to be tested");
            }
sgiehl's avatar
sgiehl a validé
            return;
        }
    }

    //means at least view access
    public static function checkUserHasSomeAdminAccess()
    {
        if (!self::$superUser) {
            if (count(self::$idSitesAdmin) == 0) {
sgiehl's avatar
sgiehl a validé
                throw new Exception("checkUserHasSomeAdminAccess Fake exception // string not to be tested");
            }
sgiehl's avatar
sgiehl a validé
            return; //super user has some admin rights
        }
    }
sgiehl's avatar
sgiehl a validé
    public static function getLogin()
    {
        return self::$identity;
    }
sgiehl's avatar
sgiehl a validé
    public static function getSitesIdWithAdminAccess()
    {
sgiehl's avatar
sgiehl a validé
            return Piwik_SitesManager_API::getInstance()->getAllSitesId();
        }
sgiehl's avatar
sgiehl a validé
    }
sgiehl's avatar
sgiehl a validé
    public static function getSitesIdWithViewAccess()
    {
sgiehl's avatar
sgiehl a validé
            return Piwik_SitesManager_API::getInstance()->getAllSitesId();
        }
sgiehl's avatar
sgiehl a validé
    }
sgiehl's avatar
sgiehl a validé
    public static function getSitesIdWithAtLeastViewAccess()
    {
sgiehl's avatar
sgiehl a validé
            return Piwik_SitesManager_API::getInstance()->getAllSitesId();
        }
        return array_merge(self::$idSitesView, self::$idSitesAdmin);
sgiehl's avatar
sgiehl a validé
    }
    
    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;
    }
sgiehl's avatar
sgiehl a validé
}