/** * Основной метод проверки доступа пользователя * * @param str $authType - тип авторизации * @param bool $assert - признак, ругаться ли при отсутствии доступа * @return boolean - признак авторизованности */ private static final function checkAccessImpl($authType, $assert) { $authorized = SessionArrayHelper::hasInt(SESSION_USER_PARAM); switch ($authType) { case self::AUTH_TYPE_NO_MATTER: return true; case self::AUTH_TYPE_AUTHORIZED: check_condition(!$assert || $authorized, 'Пользователь не авторизован'); return $authorized; case self::AUTH_TYPE_NOT_AUTHORIZED: check_condition(!$assert || !$authorized, 'Пользователь авторизован'); return !$authorized; case self::AUTH_TYPE_AUTHORIZED_AS_ADMIN: $authorizedAsAdmin = $authorized && UserBean::inst()->isAdmin(SessionArrayHelper::getInt(SESSION_USER_PARAM)); check_condition(!$assert || $authorizedAsAdmin, 'Ошибка доступа'); return $authorizedAsAdmin; } raise_error("Неизвестный тип авторизации: [{$authType}]"); }
public function __construct() { $this->loggedIn = SessionArrayHelper::hasInt(SESSION_USER_PARAM); $this->userId = $this->loggedIn ? SessionArrayHelper::getInt(SESSION_USER_PARAM) : null; $this->loggedInAsAdmin = $this->loggedIn ? UserBean::inst()->isAdmin($this->userId) : false; }