From 81e7f870124d2356c1784355e54fb4716901dfec Mon Sep 17 00:00:00 2001
From: Thomas Steur <thomas.steur@gmail.com>
Date: Thu, 23 Jan 2014 01:26:57 +0000
Subject: [PATCH] refs #4564 introducing new methods to make user a user has
 superuser access. Old methods will still work but are marked as deprecated
 and they will be removed in a future release

---
 core/ArchiveProcessor/Rules.php               |  2 +-
 core/Piwik.php                                | 72 ++++++++++++++++---
 core/Plugin/Controller.php                    |  4 +-
 core/Plugin/ControllerAdmin.php               |  4 +-
 core/Plugin/Settings.php                      |  2 +-
 core/Settings/SystemSetting.php               |  2 +-
 core/Settings/UserSetting.php                 |  2 +-
 core/SettingsServer.php                       |  2 +-
 core/Tracker.php                              |  2 +-
 core/Tracker/Cache.php                        |  2 +-
 core/Url.php                                  |  2 +-
 core/View.php                                 |  2 +-
 misc/others/geoipUpdateRows.php               |  2 +-
 plugins/CoreAdminHome/API.php                 |  4 +-
 plugins/CoreAdminHome/Controller.php          |  6 +-
 plugins/CoreHome/Controller.php               |  2 +-
 plugins/CorePluginsAdmin/Controller.php       | 14 ++--
 plugins/CorePluginsAdmin/CorePluginsAdmin.php |  6 +-
 plugins/CoreUpdater/Controller.php            |  6 +-
 plugins/DBStats/API.php                       | 22 +++---
 plugins/DBStats/Controller.php                | 20 +++---
 plugins/DBStats/DBStats.php                   |  2 +-
 plugins/Dashboard/Controller.php              |  4 +-
 plugins/Dashboard/Dashboard.php               |  2 +-
 plugins/ImageGraph/Controller.php             |  2 +-
 plugins/Installation/Controller.php           |  2 +-
 plugins/Installation/Installation.php         |  2 +-
 plugins/LanguagesManager/API.php              |  4 +-
 plugins/MobileMessaging/API.php               |  4 +-
 plugins/MobileMessaging/Controller.php        |  2 +-
 plugins/MultiSites/API.php                    |  2 +-
 plugins/PrivacyManager/Controller.php         | 16 ++---
 plugins/ScheduledReports/API.php              |  4 +-
 plugins/SegmentEditor/API.php                 |  8 +--
 plugins/SitesManager/API.php                  | 44 ++++++------
 plugins/SitesManager/Controller.php           |  2 +-
 plugins/UserCountry/Controller.php            | 10 +--
 plugins/UserCountry/UserCountry.php           |  2 +-
 plugins/UsersManager/API.php                  | 24 +++----
 plugins/UsersManager/Controller.php           |  4 +-
 40 files changed, 186 insertions(+), 134 deletions(-)

diff --git a/core/ArchiveProcessor/Rules.php b/core/ArchiveProcessor/Rules.php
index 75088738ea..22ef039e5c 100644
--- a/core/ArchiveProcessor/Rules.php
+++ b/core/ArchiveProcessor/Rules.php
@@ -219,7 +219,7 @@ class Rules
         return !self::$archivingDisabledByTests &&
         (Rules::isBrowserTriggerEnabled()
             || Common::isPhpCliMode()
-            || (Piwik::isUserIsSuperUser()
+            || (Piwik::hasUserSuperUserAccess()
                 && SettingsServer::isArchivePhpTriggered()));
     }
 
diff --git a/core/Piwik.php b/core/Piwik.php
index d7baa85d6e..15dcb2101a 100644
--- a/core/Piwik.php
+++ b/core/Piwik.php
@@ -275,16 +275,38 @@ class Piwik
      * @return bool
      * @api
      */
-    static public function isUserIsSuperUserOrTheUser($theUser)
+    static public function hasUserSuperUserAccessOrIsTheUser($theUser)
     {
         try {
-            self::checkUserIsSuperUserOrTheUser($theUser);
+            self::checkUserHasSuperUserAccessOrIsTheUser($theUser);
             return true;
         } catch (Exception $e) {
             return false;
         }
     }
 
+    /**
+     * @see Piwik::hasUserSuperUserAccessOrIsTheUser()
+     * @deprecated deprecated since version 2.0.4
+     * @todo To be removed from April 1st 2014.
+     */
+    static public function isUserIsSuperUserOrTheUser($theUser)
+    {
+        Log::warning('This method is deprecated and will be removed soon. Use Piwik::hasUserSuperUserAccessOrIsTheUser instead');
+        return self::hasUserSuperUserAccessOrIsTheUser($theUser);
+    }
+
+    /**
+     * @see Piwik::checkUserHasSuperUserAccessOrIsTheUser()
+     * @deprecated deprecated since version 2.0.4
+     * @todo To be removed from April 1st 2014.
+     */
+    static public function checkUserIsSuperUserOrTheUser($theUser)
+    {
+        Log::warning('This method is deprecated and will be removed soon. Use Piwik::checkUserHasSuperUserAccessOrIsTheUser instead');
+        self::checkUserHasSuperUserAccessOrIsTheUser($theUser);
+    }
+
     /**
      * Check that the current user is either the specified user or the superuser.
      *
@@ -292,18 +314,25 @@ class Piwik
      * @throws NoAccessException If the user is neither the super user nor the user `$theUser`.
      * @api
      */
-    static public function checkUserIsSuperUserOrTheUser($theUser)
+    static public function checkUserHasSuperUserAccessOrIsTheUser($theUser)
     {
         try {
             if (Piwik::getCurrentUserLogin() !== $theUser) {
                 // or to the super user
-                Piwik::checkUserIsSuperUser();
+                Piwik::checkUserHasSuperUserAccess();
             }
         } catch (NoAccessException $e) {
             throw new NoAccessException(Piwik::translate('General_ExceptionCheckUserIsSuperUserOrTheUser', array($theUser)));
         }
     }
 
+    /**
+     * Check whether the given user has superuser access.
+     *
+     * @param string $theUser A username.
+     * @return bool
+     * @api
+     */
     static public function hasTheUserSuperUserAccess($theUser)
     {
         if (empty($theUser)) {
@@ -315,6 +344,7 @@ class Piwik
         }
 
         try {
+            // TODO method will always return false if current user has not superuser access
             $superUserLogins = APIUsersManager::getInstance()->getUsersLoginHavingSuperUserAccess();
         } catch (\Exception $e) {
             $superUserLogins = array();
@@ -324,15 +354,26 @@ class Piwik
     }
 
     /**
-     * Returns true if the current user is the Super User.
+     * @see Piwik::hasUserSuperUserAccess()
+     * @deprecated deprecated since version 2.0.4
+     * @todo To be removed from April 1st 2014.
+     */
+    static public function isUserIsSuperUser()
+    {
+        Log::warning('This method is deprecated and will be removed soon. Use Piwik::hasUserSuperUserAccess instead');
+        return self::hasUserSuperUserAccess();
+    }
+
+    /**
+     * Returns true if the current user has super user access.
      *
      * @return bool
      * @api
      */
-    static public function isUserIsSuperUser()
+    static public function hasUserSuperUserAccess()
     {
         try {
-            self::checkUserIsSuperUser();
+            self::checkUserHasSuperUserAccess();
             return true;
         } catch (Exception $e) {
             return false;
@@ -341,7 +382,7 @@ class Piwik
 
     static public function isUserIsConfigSuperUser()
     {
-        return self::isUserIsSuperUser() && self::getCurrentUserLogin() === self::getConfigSuperUserLogin();
+        return self::hasUserSuperUserAccess() && self::getCurrentUserLogin() === self::getConfigSuperUserLogin();
     }
 
     /**
@@ -380,12 +421,23 @@ class Piwik
     }
 
     /**
-     * Check that the current user is the superuser.
+     * @see Piwik::checkUserHasSuperUserAccess()
+     * @deprecated deprecated since version 2.0.4
+     * @todo To be removed from April 1st 2014.
+     */
+    static public function checkUserIsSuperUser()
+    {
+        Log::warning('This method is deprecated and will be removed soon. Use Piwik::checkUserHasSuperUserAccess instead');
+        self::checkUserHasSuperUserAccess();
+    }
+
+    /**
+     * Check that the current user has superuser access.
      *
      * @throws Exception if the current user is not the superuser.
      * @api
      */
-    static public function checkUserIsSuperUser()
+    static public function checkUserHasSuperUserAccess()
     {
         Access::getInstance()->checkUserIsSuperUser();
     }
diff --git a/core/Plugin/Controller.php b/core/Plugin/Controller.php
index 89ac85b578..42b3064715 100644
--- a/core/Plugin/Controller.php
+++ b/core/Plugin/Controller.php
@@ -612,7 +612,7 @@ abstract class Controller
                                                                                       '<strong>' . $validUrl . '</strong>'
                                                                                  )) . ' <br/>';
 
-            if (Piwik::isUserIsSuperUser()) {
+            if (Piwik::hasUserSuperUserAccess()) {
                 $view->invalidHostMessage = $warningStart . ' '
                     . Piwik::translate('CoreHome_InjectedHostSuperUserWarning', array(
                                                                                     "<a href=\"$changeTrustedHostsUrl\">",
@@ -725,7 +725,7 @@ abstract class Controller
             exit;
         }
 
-        if (Piwik::isUserIsSuperUser()) {
+        if (Piwik::hasUserSuperUserAccess()) {
             Piwik_ExitWithMessage("Error: no website was found in this Piwik installation.
 			<br />Check the table '" . Common::prefixTable('site') . "' in your database, it should contain your Piwik websites.", false, true);
         }
diff --git a/core/Plugin/ControllerAdmin.php b/core/Plugin/ControllerAdmin.php
index 9336296821..4cd1477fc9 100644
--- a/core/Plugin/ControllerAdmin.php
+++ b/core/Plugin/ControllerAdmin.php
@@ -47,7 +47,7 @@ abstract class ControllerAdmin extends Controller
             return;
         }
 
-        if (!Piwik::isUserIsSuperUser()) {
+        if (!Piwik::hasUserSuperUserAccess()) {
             return;
         }
         $pluginsLink = Url::getCurrentQueryStringWithParametersModified(array(
@@ -136,7 +136,7 @@ abstract class ControllerAdmin extends Controller
             $view->setXFrameOptions('sameorigin');
         }
 
-        $view->isSuperUser = Piwik::isUserIsSuperUser();
+        $view->isSuperUser = Piwik::hasUserSuperUserAccess();
 
         self::notifyAnyInvalidPlugin();
 
diff --git a/core/Plugin/Settings.php b/core/Plugin/Settings.php
index c8521b9acf..e26fcafc83 100644
--- a/core/Plugin/Settings.php
+++ b/core/Plugin/Settings.php
@@ -158,7 +158,7 @@ abstract class Settings implements StorageInterface
      */
     public function removeAllPluginSettings()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         Option::delete($this->getOptionKey());
         $this->settingsValues = array();
diff --git a/core/Settings/SystemSetting.php b/core/Settings/SystemSetting.php
index 50e79e11c6..3084ba3607 100644
--- a/core/Settings/SystemSetting.php
+++ b/core/Settings/SystemSetting.php
@@ -36,7 +36,7 @@ class SystemSetting extends Setting
     {
         parent::__construct($name, $title);
 
-        $this->displayedForCurrentUser = Piwik::isUserIsSuperUser();
+        $this->displayedForCurrentUser = Piwik::hasUserSuperUserAccess();
     }
 
     /**
diff --git a/core/Settings/UserSetting.php b/core/Settings/UserSetting.php
index 696d940b42..30cf015b43 100644
--- a/core/Settings/UserSetting.php
+++ b/core/Settings/UserSetting.php
@@ -80,7 +80,7 @@ class UserSetting extends Setting
      */
     public function setUserLogin($userLogin)
     {
-        if (!empty($userLogin) && !Piwik::isUserIsSuperUserOrTheUser($userLogin)) {
+        if (!empty($userLogin) && !Piwik::hasUserSuperUserAccessOrIsTheUser($userLogin)) {
             throw new \Exception('You do not have the permission to read the settings of a different user');
         }
 
diff --git a/core/SettingsServer.php b/core/SettingsServer.php
index 0e6baf131d..0f9245b651 100644
--- a/core/SettingsServer.php
+++ b/core/SettingsServer.php
@@ -124,7 +124,7 @@ class SettingsServer
         $minimumMemoryLimit = Config::getInstance()->General['minimum_memory_limit'];
 
         if (self::isArchivePhpTriggered()
-            && Piwik::isUserIsSuperUser()
+            && Piwik::hasUserSuperUserAccess()
         ) {
             // archive.php: no time limit, high memory limit
             self::setMaxExecutionTime(0);
diff --git a/core/Tracker.php b/core/Tracker.php
index aaaa3cd567..7a210934f0 100644
--- a/core/Tracker.php
+++ b/core/Tracker.php
@@ -323,7 +323,7 @@ class Tracker
             Common::printDebug('-> Scheduled Tasks: Starting...');
 
             // save current user privilege and temporarily assume super user privilege
-            $isSuperUser = Piwik::isUserIsSuperUser();
+            $isSuperUser = Piwik::hasUserSuperUserAccess();
 
             // Scheduled tasks assume Super User is running
             Piwik::setUserIsSuperUser();
diff --git a/core/Tracker/Cache.php b/core/Tracker/Cache.php
index aacb91c86b..fa2fd43214 100644
--- a/core/Tracker/Cache.php
+++ b/core/Tracker/Cache.php
@@ -64,7 +64,7 @@ class Cache
         Tracker::initCorePiwikInTrackerMode();
 
         // save current user privilege and temporarily assume super user privilege
-        $isSuperUser = Piwik::isUserIsSuperUser();
+        $isSuperUser = Piwik::hasUserSuperUserAccess();
         Piwik::setUserIsSuperUser();
 
         $content = array();
diff --git a/core/Url.php b/core/Url.php
index 090bd1542e..14470171ec 100644
--- a/core/Url.php
+++ b/core/Url.php
@@ -259,7 +259,7 @@ class Url
      */
     public static function saveTrustedHostnameInConfig($host)
     {
-        if (Piwik::isUserIsSuperUser()
+        if (Piwik::hasUserSuperUserAccess()
             && file_exists(Config::getLocalConfigPath())
         ) {
             $general = Config::getInstance()->General;
diff --git a/core/View.php b/core/View.php
index 9a9e105da0..da6556a154 100644
--- a/core/View.php
+++ b/core/View.php
@@ -214,7 +214,7 @@ class View implements ViewInterface
             $this->url = Common::sanitizeInputValue(Url::getCurrentUrl());
             $this->token_auth = Piwik::getCurrentUserTokenAuth();
             $this->userHasSomeAdminAccess = Piwik::isUserHasSomeAdminAccess();
-            $this->userIsSuperUser = Piwik::isUserIsSuperUser();
+            $this->userIsSuperUser = Piwik::hasUserSuperUserAccess();
             $this->latest_version_available = UpdateCheck::isNewestVersionAvailable();
             $this->disableLink = Common::getRequestVar('disableLink', 0, 'int');
             $this->isWidget = Common::getRequestVar('widget', 0, 'int');
diff --git a/misc/others/geoipUpdateRows.php b/misc/others/geoipUpdateRows.php
index ff4613ee4a..cc1d03d11f 100755
--- a/misc/others/geoipUpdateRows.php
+++ b/misc/others/geoipUpdateRows.php
@@ -45,7 +45,7 @@ $count = Db::fetchOne($query);
 // when script run via browser, check for Super User & output html page to do conversion via AJAX
 if (!Common::isPhpCliMode()) {
     try {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
     } catch (Exception $e) {
         Log::error('[error] You must be logged in as Super User to run this script. Please login in to Piwik and refresh this page.');
         exit;
diff --git a/plugins/CoreAdminHome/API.php b/plugins/CoreAdminHome/API.php
index f1e0058768..f211743801 100644
--- a/plugins/CoreAdminHome/API.php
+++ b/plugins/CoreAdminHome/API.php
@@ -37,13 +37,13 @@ class API extends \Piwik\Plugin\API
      */
     public function runScheduledTasks()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return TaskScheduler::runTasks();
     }
 
     public function getKnownSegmentsToArchive()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return SettingsPiwik::getKnownSegmentsToArchive();
     }
 
diff --git a/plugins/CoreAdminHome/Controller.php b/plugins/CoreAdminHome/Controller.php
index bf6cbffe34..930a7eaf98 100644
--- a/plugins/CoreAdminHome/Controller.php
+++ b/plugins/CoreAdminHome/Controller.php
@@ -47,7 +47,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
         Piwik::checkUserHasSomeAdminAccess();
         $view = new View('@CoreAdminHome/generalSettings');
 
-        if (Piwik::isUserIsSuperUser()) {
+        if (Piwik::hasUserSuperUserAccess()) {
             $this->handleGeneralSettingsAdmin($view);
 
             $trustedHosts = array();
@@ -177,7 +177,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
 
     public function setGeneralSettings()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $response = new ResponseBuilder(Common::getRequestVar('format'));
         try {
             $this->checkTokenInUrl();
@@ -268,7 +268,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
 
     public function uploadCustomLogo()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $logo = new CustomLogo();
         $success = $logo->copyUploadedLogoToFilesystem();
diff --git a/plugins/CoreHome/Controller.php b/plugins/CoreHome/Controller.php
index 19d25484aa..47b5a2e60d 100644
--- a/plugins/CoreHome/Controller.php
+++ b/plugins/CoreHome/Controller.php
@@ -189,7 +189,7 @@ class Controller extends \Piwik\Plugin\Controller
     {
         $view = new View('@CoreHome/getDonateForm');
         if (Common::getRequestVar('widget', false)
-            && Piwik::isUserIsSuperUser()
+            && Piwik::hasUserSuperUserAccess()
         ) {
             $view->footerMessage = Piwik::translate('CoreHome_OnlyForAdmin');
         }
diff --git a/plugins/CorePluginsAdmin/Controller.php b/plugins/CorePluginsAdmin/Controller.php
index 11ad15c36f..f16ebdbeaf 100644
--- a/plugins/CorePluginsAdmin/Controller.php
+++ b/plugins/CorePluginsAdmin/Controller.php
@@ -86,7 +86,7 @@ class Controller extends Plugin\ControllerAdmin
     public function uploadPlugin()
     {
         static::dieIfPluginsAdminIsDisabled();
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $nonce = Common::getRequestVar('nonce', null, 'string');
 
@@ -140,7 +140,7 @@ class Controller extends Plugin\ControllerAdmin
         try {
             $marketplace  = new Marketplace();
             $view->plugin = $marketplace->getPluginInfo($pluginName);
-            $view->isSuperUser  = Piwik::isUserIsSuperUser();
+            $view->isSuperUser  = Piwik::hasUserSuperUserAccess();
             $view->installNonce = Nonce::getNonce(static::INSTALL_NONCE);
             $view->updateNonce  = Nonce::getNonce(static::UPDATE_NONCE);
             $view->activeTab    = $activeTab;
@@ -190,7 +190,7 @@ class Controller extends Plugin\ControllerAdmin
         $view->sort = $sort;
         $view->installNonce = Nonce::getNonce(static::INSTALL_NONCE);
         $view->updateNonce = Nonce::getNonce(static::UPDATE_NONCE);
-        $view->isSuperUser = Piwik::isUserIsSuperUser();
+        $view->isSuperUser = Piwik::hasUserSuperUserAccess();
 
         return $view;
     }
@@ -213,14 +213,14 @@ class Controller extends Plugin\ControllerAdmin
 
         $view = $this->configureView('@CorePluginsAdmin/extend');
         $view->installNonce = Nonce::getNonce(static::INSTALL_NONCE);
-        $view->isSuperUser = Piwik::isUserIsSuperUser();
+        $view->isSuperUser = Piwik::hasUserSuperUserAccess();
 
         return $view->render();
     }
 
     private function createPluginsOrThemesView($template, $themesOnly)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $view = $this->configureView('@CorePluginsAdmin/' . $template);
 
@@ -360,7 +360,7 @@ class Controller extends Plugin\ControllerAdmin
 
         $view = new View('@CorePluginsAdmin/safemode');
         $view->lastError   = $lastError;
-        $view->isSuperUser = Piwik::isUserIsSuperUser();
+        $view->isSuperUser = Piwik::hasUserSuperUserAccess();
         $view->isAnonymousUser = Piwik::isUserIsAnonymous();
         $view->plugins         = Plugin\Manager::getInstance()->returnLoadedPluginsInfo();
         $view->deactivateNonce = Nonce::getNonce(static::DEACTIVATE_NONCE);
@@ -446,7 +446,7 @@ class Controller extends Plugin\ControllerAdmin
 
     protected function initPluginModification($nonceName)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $nonce = Common::getRequestVar('nonce', null, 'string');
 
diff --git a/plugins/CorePluginsAdmin/CorePluginsAdmin.php b/plugins/CorePluginsAdmin/CorePluginsAdmin.php
index cc71dad90d..f9aef7b5a5 100644
--- a/plugins/CorePluginsAdmin/CorePluginsAdmin.php
+++ b/plugins/CorePluginsAdmin/CorePluginsAdmin.php
@@ -62,7 +62,7 @@ class CorePluginsAdmin extends \Piwik\Plugin
         $pluginsUpdateMessage = '';
         $themesUpdateMessage = '';
 
-        if (Piwik::isUserIsSuperUser() && static::isMarketplaceEnabled()) {
+        if (Piwik::hasUserSuperUserAccess() && static::isMarketplaceEnabled()) {
             $marketplace = new Marketplace();
             $pluginsHavingUpdate = $marketplace->getPluginsHavingUpdate($themesOnly = false);
             $themesHavingUpdate = $marketplace->getPluginsHavingUpdate($themesOnly = true);
@@ -78,11 +78,11 @@ class CorePluginsAdmin extends \Piwik\Plugin
         MenuAdmin::getInstance()->add('CorePluginsAdmin_MenuPlatform', null, "", !Piwik::isUserIsAnonymous(), $order = 7);
         MenuAdmin::getInstance()->add('CorePluginsAdmin_MenuPlatform', Piwik::translate('General_Plugins') . $pluginsUpdateMessage,
             array('module' => 'CorePluginsAdmin', 'action' => 'plugins', 'activated' => ''),
-            Piwik::isUserIsSuperUser(),
+            Piwik::hasUserSuperUserAccess(),
             $order = 1);
         MenuAdmin::getInstance()->add('CorePluginsAdmin_MenuPlatform', Piwik::translate('CorePluginsAdmin_Themes') . $themesUpdateMessage,
             array('module' => 'CorePluginsAdmin', 'action' => 'themes', 'activated' => ''),
-            Piwik::isUserIsSuperUser(),
+            Piwik::hasUserSuperUserAccess(),
             $order = 3);
 
         if (static::isMarketplaceEnabled()) {
diff --git a/plugins/CoreUpdater/Controller.php b/plugins/CoreUpdater/Controller.php
index b5eb986ead..a9f2a9af50 100644
--- a/plugins/CoreUpdater/Controller.php
+++ b/plugins/CoreUpdater/Controller.php
@@ -57,7 +57,7 @@ class Controller extends \Piwik\Plugin\Controller
 
     public function newVersionAvailable()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $newVersion = $this->checkNewVersionIsAvailableOrDie();
 
@@ -72,7 +72,7 @@ class Controller extends \Piwik\Plugin\Controller
 
     public function oneClickUpdate()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $this->newVersion = $this->checkNewVersionIsAvailableOrDie();
 
         SettingsServer::setMaxExecutionTime(0);
@@ -111,7 +111,7 @@ class Controller extends \Piwik\Plugin\Controller
     public function oneClickResults()
     {
         Request::reloadAuthUsingTokenAuth($_POST);
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $view = new View('@CoreUpdater/oneClickResults');
         $view->coreError = Common::getRequestVar('error', '', 'string', $_POST);
diff --git a/plugins/DBStats/API.php b/plugins/DBStats/API.php
index 402322c8a1..64fd4e4595 100644
--- a/plugins/DBStats/API.php
+++ b/plugins/DBStats/API.php
@@ -48,7 +48,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getGeneralInformation()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         // calculate total size
         $totalSpaceUsed = 0;
         foreach ($this->metadataProvider->getAllTablesStatus() as $status) {
@@ -71,7 +71,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getDBStatus()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->metadataProvider->getDBStatus();
     }
 
@@ -85,7 +85,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getDatabaseUsageSummary()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $emptyRow = array('data_size' => 0, 'index_size' => 0, 'row_count' => 0);
         $rows = array(
@@ -121,7 +121,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getTrackerDataSummary()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->getTablesSummary($this->metadataProvider->getAllLogTableStatus());
     }
 
@@ -133,7 +133,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getMetricDataSummary()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->getTablesSummary($this->metadataProvider->getAllNumericArchiveStatus());
     }
 
@@ -145,7 +145,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getMetricDataSummaryByYear()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $dataTable = $this->getMetricDataSummary();
 
@@ -162,7 +162,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getReportDataSummary()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->getTablesSummary($this->metadataProvider->getAllBlobArchiveStatus());
     }
 
@@ -174,7 +174,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getReportDataSummaryByYear()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $dataTable = $this->getReportDataSummary();
 
@@ -193,7 +193,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getAdminDataSummary()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->getTablesSummary($this->metadataProvider->getAllAdminTableStatus());
     }
 
@@ -209,7 +209,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getIndividualReportsSummary($forceCache = false)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->metadataProvider->getRowCountsAndSizeByBlobName($forceCache);
     }
 
@@ -225,7 +225,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getIndividualMetricsSummary($forceCache = false)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->metadataProvider->getRowCountsAndSizeByMetricName($forceCache);
     }
 
diff --git a/plugins/DBStats/Controller.php b/plugins/DBStats/Controller.php
index 22e95c23d6..33685052a3 100644
--- a/plugins/DBStats/Controller.php
+++ b/plugins/DBStats/Controller.php
@@ -29,7 +29,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
      */
     public function index()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $view = new View('@DBStats/index');
         $this->setBasicVariablesView($view);
 
@@ -55,7 +55,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
      */
     public function getDatabaseUsageSummary()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->renderReport(__FUNCTION__);
     }
 
@@ -66,7 +66,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
      */
     public function getTrackerDataSummary()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->renderReport(__FUNCTION__);
     }
 
@@ -78,7 +78,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
      */
     public function getMetricDataSummary()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->renderReport(__FUNCTION__);
     }
 
@@ -90,7 +90,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
      */
     public function getMetricDataSummaryByYear()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->renderReport(__FUNCTION__);
     }
 
@@ -102,7 +102,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
      */
     public function getReportDataSummary()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->renderReport(__FUNCTION__);
     }
 
@@ -114,7 +114,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
      */
     public function getReportDataSummaryByYear()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->renderReport(__FUNCTION__);
     }
 
@@ -128,7 +128,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
      */
     public function getIndividualReportsSummary()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->renderReport(__FUNCTION__);
     }
 
@@ -142,7 +142,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
      */
     public function getIndividualMetricsSummary()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->renderReport(__FUNCTION__);
     }
 
@@ -157,7 +157,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
      */
     public function getAdminDataSummary()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         return $this->renderReport(__FUNCTION__);
     }
 }
diff --git a/plugins/DBStats/DBStats.php b/plugins/DBStats/DBStats.php
index d82fd8e728..f6e471cea9 100644
--- a/plugins/DBStats/DBStats.php
+++ b/plugins/DBStats/DBStats.php
@@ -48,7 +48,7 @@ class DBStats extends \Piwik\Plugin
     {
         MenuAdmin::getInstance()->add('CoreAdminHome_MenuDiagnostic', 'DBStats_DatabaseUsage',
             array('module' => 'DBStats', 'action' => 'index'),
-            Piwik::isUserIsSuperUser(),
+            Piwik::hasUserSuperUserAccess(),
             $order = 6);
     }
 
diff --git a/plugins/Dashboard/Controller.php b/plugins/Dashboard/Controller.php
index d8bab8424d..de7b90ec2f 100644
--- a/plugins/Dashboard/Controller.php
+++ b/plugins/Dashboard/Controller.php
@@ -222,7 +222,7 @@ class Controller extends \Piwik\Plugin\Controller
     {
         $this->checkTokenInUrl();
 
-        if (!Piwik::isUserIsSuperUser()) {
+        if (!Piwik::hasUserSuperUserAccess()) {
             return '0';
         }
         $login = Piwik::getCurrentUserLogin();
@@ -274,7 +274,7 @@ class Controller extends \Piwik\Plugin\Controller
     {
         $this->checkTokenInUrl();
 
-        if (Piwik::isUserIsSuperUser()) {
+        if (Piwik::hasUserSuperUserAccess()) {
             $layout = Common::unsanitizeInputValue(Common::getRequestVar('layout'));
             $paramsBind = array('', '1', $layout, $layout);
             $query = sprintf('INSERT INTO %s (login, iddashboard, layout) VALUES (?,?,?) ON DUPLICATE KEY UPDATE layout=?',
diff --git a/plugins/Dashboard/Dashboard.php b/plugins/Dashboard/Dashboard.php
index dd6a0741fd..591054b7f7 100644
--- a/plugins/Dashboard/Dashboard.php
+++ b/plugins/Dashboard/Dashboard.php
@@ -67,7 +67,7 @@ class Dashboard extends \Piwik\Plugin
         $defaultLayout = $this->getLayoutForUser('', 1);
 
         if (empty($defaultLayout)) {
-            if (Piwik::isUserIsSuperUser()) {
+            if (Piwik::hasUserSuperUserAccess()) {
                 $topWidget = '{"uniqueId":"widgetCoreHomegetDonateForm",'
                     . '"parameters":{"module":"CoreHome","action":"getDonateForm"}},';
             } else {
diff --git a/plugins/ImageGraph/Controller.php b/plugins/ImageGraph/Controller.php
index de7186d79d..6cfefc92d0 100644
--- a/plugins/ImageGraph/Controller.php
+++ b/plugins/ImageGraph/Controller.php
@@ -46,7 +46,7 @@ class Controller extends \Piwik\Plugin\Controller
     // Draw graphs for all sizes (DEBUG)
     public function testAllSizes()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $view = new View('@ImageGraph/testAllSizes');
         $this->setGeneralVariablesView($view);
diff --git a/plugins/Installation/Controller.php b/plugins/Installation/Controller.php
index 4990283243..481f24ffaf 100644
--- a/plugins/Installation/Controller.php
+++ b/plugins/Installation/Controller.php
@@ -507,7 +507,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
      */
     public function systemCheckPage()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $view = new View(
             '@Installation/systemCheckPage',
diff --git a/plugins/Installation/Installation.php b/plugins/Installation/Installation.php
index 1143bcbc84..9ac6a29509 100644
--- a/plugins/Installation/Installation.php
+++ b/plugins/Installation/Installation.php
@@ -82,7 +82,7 @@ class Installation extends \Piwik\Plugin
     {
         MenuAdmin::addEntry('Installation_SystemCheck',
             array('module' => 'Installation', 'action' => 'systemCheckPage'),
-            Piwik::isUserIsSuperUser(),
+            Piwik::hasUserSuperUserAccess(),
             $order = 15);
     }
 
diff --git a/plugins/LanguagesManager/API.php b/plugins/LanguagesManager/API.php
index 1c09beed69..384c252ca4 100644
--- a/plugins/LanguagesManager/API.php
+++ b/plugins/LanguagesManager/API.php
@@ -227,7 +227,7 @@ class API extends \Piwik\Plugin\API
         if($login == 'anonymous') {
             return false;
         }
-        Piwik::checkUserIsSuperUserOrTheUser($login);
+        Piwik::checkUserHasSuperUserAccessOrIsTheUser($login);
         return Db::fetchOne('SELECT language FROM ' . Common::prefixTable('user_language') .
             ' WHERE login = ? ', array($login));
     }
@@ -241,7 +241,7 @@ class API extends \Piwik\Plugin\API
      */
     public function setLanguageForUser($login, $languageCode)
     {
-        Piwik::checkUserIsSuperUserOrTheUser($login);
+        Piwik::checkUserHasSuperUserAccessOrIsTheUser($login);
         Piwik::checkUserIsNotAnonymous();
         if (!$this->isLanguageAvailable($languageCode)) {
             return false;
diff --git a/plugins/MobileMessaging/API.php b/plugins/MobileMessaging/API.php
index 4c5e936f27..3a4587f38a 100644
--- a/plugins/MobileMessaging/API.php
+++ b/plugins/MobileMessaging/API.php
@@ -361,7 +361,7 @@ class API extends \Piwik\Plugin\API
 
     private function checkCredentialManagementRights()
     {
-        $this->getDelegatedManagement() ? Piwik::checkUserIsNotAnonymous() : Piwik::checkUserIsSuperUser();
+        $this->getDelegatedManagement() ? Piwik::checkUserIsNotAnonymous() : Piwik::checkUserHasSuperUserAccess();
     }
 
     private function setUserSettings($user, $settings)
@@ -418,7 +418,7 @@ class API extends \Piwik\Plugin\API
      */
     public function setDelegatedManagement($delegatedManagement)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         Option::set(MobileMessaging::DELEGATED_MANAGEMENT_OPTION, $delegatedManagement);
     }
 
diff --git a/plugins/MobileMessaging/Controller.php b/plugins/MobileMessaging/Controller.php
index cce3fc5a16..d3b849c946 100644
--- a/plugins/MobileMessaging/Controller.php
+++ b/plugins/MobileMessaging/Controller.php
@@ -39,7 +39,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
 
         $view = new View('@MobileMessaging/index');
 
-        $view->isSuperUser = Piwik::isUserIsSuperUser();
+        $view->isSuperUser = Piwik::hasUserSuperUserAccess();
 
         $mobileMessagingAPI = API::getInstance();
         $view->delegatedManagement = $mobileMessagingAPI->getDelegatedManagement();
diff --git a/plugins/MultiSites/API.php b/plugins/MultiSites/API.php
index cd6439a527..eb83127480 100755
--- a/plugins/MultiSites/API.php
+++ b/plugins/MultiSites/API.php
@@ -167,7 +167,7 @@ class API extends \Piwik\Plugin\API
             // First clear cache
             Site::clearCache();
             // Then, warm the cache with only the data we should have access to
-            if (Piwik::isUserIsSuperUser()
+            if (Piwik::hasUserSuperUserAccess()
                 // Hack: when this API function is called as a Scheduled Task, Super User status is enforced.
                 // This means this function would return ALL websites in all cases.
                 // Instead, we make sure that only the right set of data is returned
diff --git a/plugins/PrivacyManager/Controller.php b/plugins/PrivacyManager/Controller.php
index 2798d6b4a9..bb331a1c4d 100644
--- a/plugins/PrivacyManager/Controller.php
+++ b/plugins/PrivacyManager/Controller.php
@@ -36,7 +36,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
 
     public function saveSettings()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         if ($_SERVER["REQUEST_METHOD"] == "POST") {
             $this->checkTokenInUrl();
             switch (Common::getRequestVar('form')) {
@@ -113,7 +113,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
      */
     public function getDatabaseSize()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $view = new View('@PrivacyManager/getDatabaseSize');
 
         $forceEstimate = Common::getRequestVar('forceEstimate', 0);
@@ -128,7 +128,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
         Piwik::checkUserHasSomeAdminAccess();
         $view = new View('@PrivacyManager/privacySettings');
 
-        if (Piwik::isUserIsSuperUser()) {
+        if (Piwik::hasUserSuperUserAccess()) {
             $view->deleteData = $this->getDeleteDataInfo();
             $view->anonymizeIP = $this->getAnonymizeIPInfo();
             $view->dntSupport = DoNotTrackHeaderChecker::isActive();
@@ -149,7 +149,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
      */
     public function executeDataPurge()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $this->checkTokenInUrl();
 
         // if the request isn't a POST, redirect to index
@@ -230,7 +230,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
 
     protected function getAnonymizeIPInfo()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $anonymizeIP = array();
 
         $trackerConfig = Config::getInstance()->Tracker;
@@ -243,7 +243,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
 
     protected function getDeleteDataInfo()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $deleteDataInfos = array();
         $taskScheduler = new TaskScheduler();
         $deleteDataInfos["config"] = PrivacyManager::getPurgeDataSettings();
@@ -302,7 +302,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
 
     public function deactivateDoNotTrack()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         Nonce::checkNonce(self::DEACTIVATE_DNT_NONCE);
 
         DoNotTrackHeaderChecker::deactivate();
@@ -312,7 +312,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
 
     public function activateDoNotTrack()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         Nonce::checkNonce(self::ACTIVATE_DNT_NONCE);
 
         DoNotTrackHeaderChecker::activate();
diff --git a/plugins/ScheduledReports/API.php b/plugins/ScheduledReports/API.php
index c86818067a..5bf6cbc690 100644
--- a/plugins/ScheduledReports/API.php
+++ b/plugins/ScheduledReports/API.php
@@ -173,7 +173,7 @@ class API extends \Piwik\Plugin\API
     {
         $APIScheduledReports = $this->getReports($idSite = false, $periodSearch = false, $idReport);
         $report = reset($APIScheduledReports);
-        Piwik::checkUserIsSuperUserOrTheUser($report['login']);
+        Piwik::checkUserHasSuperUserAccessOrIsTheUser($report['login']);
 
         Db::get()->update(Common::prefixTable('report'),
             array(
@@ -210,7 +210,7 @@ class API extends \Piwik\Plugin\API
         $bind = array();
 
         // Super user gets all reports back, other users only their own
-        if (!Piwik::isUserIsSuperUser()
+        if (!Piwik::hasUserSuperUserAccess()
             || $ifSuperUserReturnOnlySuperUserReports
         ) {
             $sqlWhere .= "AND login = ?";
diff --git a/plugins/SegmentEditor/API.php b/plugins/SegmentEditor/API.php
index 34994bfd59..6029e9d8d1 100644
--- a/plugins/SegmentEditor/API.php
+++ b/plugins/SegmentEditor/API.php
@@ -55,7 +55,7 @@ class API extends \Piwik\Plugin\API
     {
         $enabledAllUsers = (int)$enabledAllUsers;
         if ($enabledAllUsers
-            && !Piwik::isUserIsSuperUser()
+            && !Piwik::hasUserSuperUserAccess()
         ) {
             throw new Exception("enabledAllUsers=1 requires Super User access");
         }
@@ -65,7 +65,7 @@ class API extends \Piwik\Plugin\API
     protected function checkIdSite($idSite)
     {
         if (empty($idSite)) {
-            if (!Piwik::isUserIsSuperUser()) {
+            if (!Piwik::hasUserSuperUserAccess()) {
                 throw new Exception("idSite is required, unless you are Super User and can create the segment across all websites");
             }
         } else {
@@ -84,7 +84,7 @@ class API extends \Piwik\Plugin\API
         if ($autoArchive) {
             $exception = new Exception("To prevent abuse, autoArchive=1 requires Super User or ControllerAdmin access.");
             if (empty($idSite)) {
-                if (!Piwik::isUserIsSuperUser()) {
+                if (!Piwik::hasUserSuperUserAccess()) {
                     throw $exception;
                 }
             } else {
@@ -234,7 +234,7 @@ class API extends \Piwik\Plugin\API
         try {
 
             if (!$segment['enable_all_users']) {
-                Piwik::checkUserIsSuperUserOrTheUser($segment['login']);
+                Piwik::checkUserHasSuperUserAccessOrIsTheUser($segment['login']);
             }
 
         } catch (Exception $e) {
diff --git a/plugins/SitesManager/API.php b/plugins/SitesManager/API.php
index c06c9bc7d4..a55fb1408d 100644
--- a/plugins/SitesManager/API.php
+++ b/plugins/SitesManager/API.php
@@ -95,7 +95,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getSitesFromGroup($group)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $group = trim($group);
 
         $sites = Db::get()->fetchAll("SELECT *
@@ -114,7 +114,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getSitesGroups()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $groups = Db::get()->fetchAll("SELECT DISTINCT `group` FROM " . Common::prefixTable("site"));
         $cleanedGroups = array();
         foreach ($groups as $group) {
@@ -200,7 +200,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getAllSites()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $sites = Db::get()->fetchAll("SELECT * FROM " . Common::prefixTable("site") . " ORDER BY idsite ASC");
         $return = array();
         foreach ($sites as $site) {
@@ -218,7 +218,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getAllSitesId()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         try {
             return API::getInstance()->getSitesId();
         } catch (Exception $e) {
@@ -236,7 +236,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getSitesIdWithVisits($timestamp = false)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         if (empty($timestamp)) $timestamp = time();
 
@@ -331,7 +331,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getSitesIdWithAtLeastViewAccess($_restrictSitesToLogin = false)
     {
-        if (Piwik::isUserIsSuperUser() && !TaskScheduler::isTaskBeingExecuted()) {
+        if (Piwik::hasUserSuperUserAccess() && !TaskScheduler::isTaskBeingExecuted()) {
             return Access::getInstance()->getSitesIdWithAtLeastViewAccess();
         }
 
@@ -339,7 +339,7 @@ class API extends \Piwik\Plugin\API
             // Only super user or logged in user can see viewable sites for a specific login,
             // but during scheduled task execution, we sometimes want to restrict sites to
             // a different login than the superuser.
-            && (Piwik::isUserIsSuperUserOrTheUser($_restrictSitesToLogin)
+            && (Piwik::hasUserSuperUserAccessOrIsTheUser($_restrictSitesToLogin)
                 || TaskScheduler::isTaskBeingExecuted())
         ) {
 
@@ -402,7 +402,7 @@ class API extends \Piwik\Plugin\API
     {
         $url = $this->removeTrailingSlash($url);
         list($url, $urlBis) = $this->getNormalizedUrls($url);
-        if (Piwik::isUserIsSuperUser()) {
+        if (Piwik::hasUserSuperUserAccess()) {
             $ids = Db::get()->fetchAll(
                 'SELECT idsite
                 FROM ' . Common::prefixTable('site') . '
@@ -438,7 +438,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getSitesIdFromTimezones($timezones)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $timezones = Piwik::getArrayFromApiParameter($timezones);
         $timezones = array_unique($timezones);
         $ids = Db::get()->fetchAll(
@@ -497,7 +497,7 @@ class API extends \Piwik\Plugin\API
                             $keepURLFragments = null,
                             $type = null)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $this->checkName($siteName);
         $urls = $this->cleanParameterUrls($urls);
@@ -546,7 +546,7 @@ class API extends \Piwik\Plugin\API
         $bind['type'] = $this->checkAndReturnType($type);
 
         if (!empty($group)
-            && Piwik::isUserIsSuperUser()
+            && Piwik::hasUserSuperUserAccess()
         ) {
             $bind['group'] = trim($group);
         } else {
@@ -582,7 +582,7 @@ class API extends \Piwik\Plugin\API
      */
     public function deleteSite($idSite)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $idSites = API::getInstance()->getSitesId();
         if (!in_array($idSite, $idSites)) {
@@ -740,7 +740,7 @@ class API extends \Piwik\Plugin\API
      */
     public function setGlobalExcludedIps($excludedIps)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $excludedIps = $this->checkAndReturnExcludedIps($excludedIps);
         Option::set(self::OPTION_EXCLUDED_IPS_GLOBAL, $excludedIps);
         Cache::deleteTrackerCache();
@@ -757,7 +757,7 @@ class API extends \Piwik\Plugin\API
      */
     public function setGlobalSearchParameters($searchKeywordParameters, $searchCategoryParameters)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         Option::set(self::OPTION_SEARCH_KEYWORD_QUERY_PARAMETERS_GLOBAL, $searchKeywordParameters);
         Option::set(self::OPTION_SEARCH_CATEGORY_QUERY_PARAMETERS_GLOBAL, $searchCategoryParameters);
         Cache::deleteTrackerCache();
@@ -822,7 +822,7 @@ class API extends \Piwik\Plugin\API
      */
     public function setGlobalExcludedUserAgents($excludedUserAgents)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         // update option
         $excludedUserAgents = $this->checkAndReturnCommaSeparatedStringList($excludedUserAgents);
@@ -852,7 +852,7 @@ class API extends \Piwik\Plugin\API
      */
     public function setSiteSpecificUserAgentExcludeEnabled($enabled)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         // update option
         Option::set(self::OPTION_SITE_SPECIFIC_USER_AGENT_EXCLUDE_ENABLE, $enabled);
@@ -883,7 +883,7 @@ class API extends \Piwik\Plugin\API
      */
     public function setKeepURLFragmentsGlobal($enabled)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         // update option
         Option::set(self::OPTION_KEEP_URL_FRAGMENTS_GLOBAL, $enabled);
@@ -901,7 +901,7 @@ class API extends \Piwik\Plugin\API
      */
     public function setGlobalExcludedQueryParameters($excludedQueryParameters)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $excludedQueryParameters = $this->checkAndReturnCommaSeparatedStringList($excludedQueryParameters);
         Option::set(self::OPTION_EXCLUDED_QUERY_PARAMETERS_GLOBAL, $excludedQueryParameters);
         Cache::deleteTrackerCache();
@@ -942,7 +942,7 @@ class API extends \Piwik\Plugin\API
      */
     public function setDefaultCurrency($defaultCurrency)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $this->checkValidCurrency($defaultCurrency);
         Option::set(self::OPTION_DEFAULT_CURRENCY, $defaultCurrency);
         return true;
@@ -971,7 +971,7 @@ class API extends \Piwik\Plugin\API
      */
     public function setDefaultTimezone($defaultTimezone)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $this->checkValidTimezone($defaultTimezone);
         Option::set(self::OPTION_DEFAULT_TIMEZONE, $defaultTimezone);
         return true;
@@ -1052,7 +1052,7 @@ class API extends \Piwik\Plugin\API
             $bind['timezone'] = $timezone;
         }
         if (!is_null($group)
-            && Piwik::isUserIsSuperUser()
+            && Piwik::hasUserSuperUserAccess()
         ) {
             $bind['group'] = trim($group);
         }
@@ -1233,7 +1233,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getUniqueSiteTimezones()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $results = Db::fetchAll("SELECT distinct timezone FROM " . Common::prefixTable('site'));
         $timezones = array();
         foreach ($results as $result) {
diff --git a/plugins/SitesManager/Controller.php b/plugins/SitesManager/Controller.php
index f6c316906f..af91482b2c 100644
--- a/plugins/SitesManager/Controller.php
+++ b/plugins/SitesManager/Controller.php
@@ -37,7 +37,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
         $view = new View('@SitesManager/index');
 
         Site::clearCache();
-        if (Piwik::isUserIsSuperUser()) {
+        if (Piwik::hasUserSuperUserAccess()) {
             $sitesRaw = API::getInstance()->getAllSites();
         } else {
             $sitesRaw = API::getInstance()->getSitesWithAdminAccess();
diff --git a/plugins/UserCountry/Controller.php b/plugins/UserCountry/Controller.php
index adc5599ec4..ebd3834916 100644
--- a/plugins/UserCountry/Controller.php
+++ b/plugins/UserCountry/Controller.php
@@ -48,7 +48,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
     public function adminIndex()
     {
         $this->dieIfGeolocationAdminIsDisabled();
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $view = new View('@UserCountry/adminIndex');
 
         $allProviderInfo = LocationProvider::getAllProviderInfo($newline = '<br/>', $includeExtra = true);
@@ -109,7 +109,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
     public function downloadFreeGeoIPDB()
     {
         $this->dieIfGeolocationAdminIsDisabled();
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         if ($_SERVER["REQUEST_METHOD"] == "POST") {
             $this->checkTokenInUrl();
             Json::sendHeaderJSON();
@@ -195,7 +195,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
     public function updateGeoIPLinks()
     {
         $this->dieIfGeolocationAdminIsDisabled();
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         if ($_SERVER["REQUEST_METHOD"] == "POST") {
             Json::sendHeaderJSON();
             try {
@@ -240,7 +240,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
     public function downloadMissingGeoIpDb()
     {
         $this->dieIfGeolocationAdminIsDisabled();
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         if ($_SERVER["REQUEST_METHOD"] == "POST") {
             try {
                 $this->checkTokenInUrl();
@@ -293,7 +293,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
     public function setCurrentLocationProvider()
     {
         $this->dieIfGeolocationAdminIsDisabled();
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         if ($_SERVER["REQUEST_METHOD"] == "POST") {
             $this->checkTokenInUrl();
 
diff --git a/plugins/UserCountry/UserCountry.php b/plugins/UserCountry/UserCountry.php
index b8d5efaa28..84ce399995 100644
--- a/plugins/UserCountry/UserCountry.php
+++ b/plugins/UserCountry/UserCountry.php
@@ -200,7 +200,7 @@ class UserCountry extends \Piwik\Plugin
         if($this->isGeoLocationAdminEnabled()) {
             MenuAdmin::getInstance()->add('General_Settings', 'UserCountry_Geolocation',
                 array('module' => 'UserCountry', 'action' => 'adminIndex'),
-                Piwik::isUserIsSuperUser(),
+                Piwik::hasUserSuperUserAccess(),
                 $order = 8);
         }
     }
diff --git a/plugins/UsersManager/API.php b/plugins/UsersManager/API.php
index 343927bd9a..0336e26fe7 100644
--- a/plugins/UsersManager/API.php
+++ b/plugins/UsersManager/API.php
@@ -76,7 +76,7 @@ class API extends \Piwik\Plugin\API
      */
     public function setUserPreference($userLogin, $preferenceName, $preferenceValue)
     {
-        Piwik::checkUserIsSuperUserOrTheUser($userLogin);
+        Piwik::checkUserHasSuperUserAccessOrIsTheUser($userLogin);
         Option::set($this->getPreferenceId($userLogin, $preferenceName), $preferenceValue);
     }
 
@@ -88,7 +88,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getUserPreference($userLogin, $preferenceName)
     {
-        Piwik::checkUserIsSuperUserOrTheUser($userLogin);
+        Piwik::checkUserHasSuperUserAccessOrIsTheUser($userLogin);
 
         $optionValue = Option::get($this->getPreferenceId($userLogin, $preferenceName));
         if ($optionValue !== false) {
@@ -138,7 +138,7 @@ class API extends \Piwik\Plugin\API
 								$where
 								ORDER BY login ASC", $bind);
         // Non Super user can only access login & alias
-        if (!Piwik::isUserIsSuperUser()) {
+        if (!Piwik::hasUserSuperUserAccess()) {
             foreach ($users as &$user) {
                 $user = array('login' => $user['login'], 'alias' => $user['alias']);
             }
@@ -182,7 +182,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getUsersSitesFromAccess($access)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $this->checkAccessType($access);
 
@@ -266,7 +266,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getSitesAccessFromUser($userLogin)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $this->checkUserExists($userLogin);
         $this->checkUserIsNotConfigSuperUser($userLogin);
 
@@ -293,7 +293,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getUser($userLogin)
     {
-        Piwik::checkUserIsSuperUserOrTheUser($userLogin);
+        Piwik::checkUserHasSuperUserAccessOrIsTheUser($userLogin);
         $this->checkUserExists($userLogin);
         $this->checkUserIsNotConfigSuperUser($userLogin);
 
@@ -313,7 +313,7 @@ class API extends \Piwik\Plugin\API
      */
     public function getUserByEmail($userEmail)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $this->checkUserEmailExists($userEmail);
 
         $db = Db::get();
@@ -368,7 +368,7 @@ class API extends \Piwik\Plugin\API
      */
     public function addUser($userLogin, $password, $email, $alias = false)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $this->checkLogin($userLogin);
         $this->checkUserIsNotConfigSuperUser($userLogin);
@@ -408,7 +408,7 @@ class API extends \Piwik\Plugin\API
 
     public function setSuperUserAccess($userLogin, $hasSuperUserAccess)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $this->checkUserIsNotAnonymous($userLogin);
         $this->checkUserExists($userLogin);
 
@@ -425,7 +425,7 @@ class API extends \Piwik\Plugin\API
 
     public function getUsersLoginHavingSuperUserAccess()
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
 
         $db = Db::get();
         $users = $db->fetchAll("SELECT login
@@ -451,7 +451,7 @@ class API extends \Piwik\Plugin\API
     public function updateUser($userLogin, $password = false, $email = false, $alias = false,
                                $_isPasswordHashed = false)
     {
-        Piwik::checkUserIsSuperUserOrTheUser($userLogin);
+        Piwik::checkUserHasSuperUserAccessOrIsTheUser($userLogin);
         $this->checkUserIsNotAnonymous($userLogin);
         $this->checkUserIsNotConfigSuperUser($userLogin);
         $userInfo = $this->getUser($userLogin);
@@ -513,7 +513,7 @@ class API extends \Piwik\Plugin\API
      */
     public function deleteUser($userLogin)
     {
-        Piwik::checkUserIsSuperUser();
+        Piwik::checkUserHasSuperUserAccess();
         $this->checkUserIsNotAnonymous($userLogin);
         $this->checkUserIsNotConfigSuperUser($userLogin);
         if (!$this->userExists($userLogin)) {
diff --git a/plugins/UsersManager/Controller.php b/plugins/UsersManager/Controller.php
index 476848a589..6b26c168fa 100644
--- a/plugins/UsersManager/Controller.php
+++ b/plugins/UsersManager/Controller.php
@@ -206,7 +206,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
      */
     protected function initViewAnonymousUserSettings($view)
     {
-        if (!Piwik::isUserIsSuperUser()) {
+        if (!Piwik::hasUserSuperUserAccess()) {
             return;
         }
         $userLogin = 'anonymous';
@@ -249,7 +249,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
     {
         $response = new ResponseBuilder(Common::getRequestVar('format'));
         try {
-            Piwik::checkUserIsSuperUser();
+            Piwik::checkUserHasSuperUserAccess();
             $this->checkTokenInUrl();
 
             $anonymousDefaultReport = Common::getRequestVar('anonymousDefaultReport');
-- 
GitLab