Skip to content
Extraits de code Groupes Projets
FakeAccess.php 4,13 ko
Newer Older
  • Learn to ignore specific revisions
  • 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';
    
            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é
        }
    }