예제 #1
0
 /**
  * Основной метод проверки доступа пользователя
  * 
  * @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;
 }