/** * Checks if authenticated user has at least specified role. * @param int $iRole * @throws \System\Exceptions\AuroraApiException */ public static function checkUserRoleIsAtLeast($iRole) { $oUser = \CApi::getAuthenticatedUser(); $bUserRoleIsAtLeast = empty($oUser) && $iRole === \EUserRole::Anonymous || !empty($oUser) && $oUser->Role === \EUserRole::Customer && ($iRole === \EUserRole::Customer || $iRole === \EUserRole::Anonymous) || !empty($oUser) && $oUser->Role === \EUserRole::NormalUser && ($iRole === \EUserRole::NormalUser || $iRole === \EUserRole::Customer || $iRole === \EUserRole::Anonymous) || !empty($oUser) && $oUser->Role === \EUserRole::TenantAdmin && ($iRole === \EUserRole::TenantAdmin || $iRole === \EUserRole::NormalUser || $iRole === \EUserRole::Customer || $iRole === \EUserRole::Anonymous) || !empty($oUser) && $oUser->Role === \EUserRole::SuperAdmin && ($iRole === \EUserRole::SuperAdmin || $iRole === \EUserRole::TenantAdmin || $iRole === \EUserRole::NormalUser || $iRole === \EUserRole::Customer || $iRole === \EUserRole::Anonymous); if (!$bUserRoleIsAtLeast) { throw new \System\Exceptions\AuroraApiException(\System\Notifications::AccessDenied); } }
/** * @return array */ public function getThemeAndLanguage() { static $sLanguage = false; static $sTheme = false; static $sSiteName = false; if (false === $sLanguage && false === $sTheme && false === $sSiteName) { $oSettings =& CApi::GetSettings(); $sSiteName = $oSettings->GetConf('SiteName'); $sLanguage = $oSettings->GetConf('DefaultLanguage'); $sTheme = $oSettings->GetConf('DefaultSkin'); $oUser = \CApi::getAuthenticatedUser(); if ($oUser) { $sSiteName = ''; } else { } $sLanguage = $this->validatedLanguageValue($sLanguage); $this->setLoginLanguage($sLanguage); // todo: sash $sTheme = $this->validatedThemeValue($sTheme); } /*** temporary fix to the problems in mobile version in rtl mode ***/ /* @var $oApiCapability \CApiCapabilityManager */ $oApiCapability = \CApi::GetSystemManager('capability'); if (in_array($sLanguage, array('Arabic', 'Hebrew', 'Persian')) && $oApiCapability && $oApiCapability->isNotLite() && 1 === $this->isMobile()) { $sLanguage = 'English'; } /*** end of temporary fix to the problems in mobile version in rtl mode ***/ return array($sLanguage, $sTheme, $sSiteName); }