/** * Checks permission to perform action * @return boolean */ function checkAccess() { if (AuthManager::checkAccess($this->user, $this->sAction)) { return true; } else { $this->errors[] = 'Access Denied ;)'; return false; } }
/** * Основной метод, выполняющий выполнение Ajax действия. * * @return AjaxSuccess */ public final function execute() { $id = get_called_class(); check_condition(!$this->processed, "Действие [{$id}] уже выполнено."); $this->processed = true; //Не будем портить глобальный массив $_REQUEST, создав копию адаптера $params = RequestArrayAdapter::inst()->copy(); check_condition($params->str(AJAX_ACTION_PARAM) == $id, "Действие [{$id}] не может быть выполнено."); $params->remove(AJAX_ACTION_PARAM); $params->remove(AJAX_ACTION_GROUP_PARAM); //Проверка доступа AuthManager::checkAccess($this->getAuthType()); //Если пользователь зарегистрирован, как администратор - подключим ресурсы админа //ps_admin_on(); //Проверка обязательных параметров foreach (to_array($this->getRequiredParamKeys()) as $key) { if (!$params->has($key)) { return "Не передан обязательный параметр [{$key}]."; } } //Проверка активности if ($this->isCheckActivity() && !ActivityWatcher::isCanMakeAction()) { return 'Таймаут не закончился.'; } //Вызываем обработку данных PsProfiler::inst('AjaxProfiler')->start($id); $result = $this->executeImpl($params); PsProfiler::inst('AjaxProfiler')->stop(); if (isEmpty($result)) { return "Действие [{$id}] выполнено некорректно - возвращён пустой результат."; } if (is_object($result) && $result instanceof AjaxSuccess) { //SUCCESS //Зарегистрируем активноcть пользователя (только в случае успеха, так как пользователь мог просто ошибиться в воде данных) if ($this->isCheckActivity()) { ActivityWatcher::registerActivity(); } } return $result; }
/** Метод проверяет, имеет ли авторизованный пользователь поступ к этому классу */ protected final function checkAccess() { AuthManager::checkAccess($this->getAuthType()); }
/** * Если в качестве $userId передан null, то будет возвращён код авторизованного * сейчас пользователя. Также будет проверен уровень доступа к работе с файлами. */ private function checkUserId($userId) { AuthManager::checkAccess($this->getAuthType()); return AuthManager::extractUserId4AuthType($userId, $this->getAuthType()); }