Example #1
0
 function createInfoPage($title, $federation = -1)
 {
     $infopage = $this->myWriter->getCurrentSheet();
     $name = _utf("Information");
     $infopage->setName($this->normalizeSheetName($name));
     // titulo
     $this->myWriter->addRowsWithStyle([[$title], [""]], $this->titleStyle);
     // en caso de estar definido, informacion de Prueba, jornada, y en su caso federacion
     if ($this->prueba != null) {
         $this->myWriter->addRowWithStyle([_utf("Contest") . ":", $this->prueba['Nombre']], $this->rowHeaderStyle);
     }
     if ($this->jornada != null) {
         $this->myWriter->addRowWithStyle([_utf("Journey") . ":", $this->jornada['Nombre']], $this->rowHeaderStyle);
     }
     if ($federation >= 0) {
         $fed = Federations::getFederation(intval($federation));
         if ($fed == null) {
             $this->myLogger->trace("Invalid federation ID:{$federation}");
         } else {
             $this->myWriter->addRowWithStyle([_utf("Federation") . ":", $fed->get('Name')], $this->rowHeaderStyle);
             $this->federation = $fed;
         }
     }
     // informacion de la aplicacion
     $this->myWriter->addRows([[""], [_utf("Program info")], ["Application: ", $this->myConfig->getEnv("program_name")], ["Version:", $this->myConfig->getEnv("version_name")], ["Revision:", $this->myConfig->getEnv("version_date")]]);
     // informacion de licencia
     $am = new AuthManager($this->myFile);
     $ainfo = $am->getRegistrationInfo();
     $this->myWriter->addRows([[""], [_utf("License Info")], ["Serial Number:", $ainfo["Serial"]], ["User:"******"User"]], ["Club:", $ainfo["Club"]]]);
 }
 /**
  * Метод сбрасывает информацию по пользователю (вызывается после изменения пользователя).
  */
 public final function reset($userId)
 {
     $userId = AuthManager::validateUserId($userId);
     $this->CACHE->set($userId, null);
     $this->LOGGER->info('Reseting user: ' . $userId);
     return $userId;
 }
Example #3
0
 /**
  * Метод загружает события по переданному пользователю. Все эти события могут отражаться в маленьком личном кабинете пользователя.
  * 
  * @param PsUser $user
  */
 public function getCurrentUserEvents()
 {
     $events = array();
     if (AuthManager::isAuthorized()) {
         $this->profilerStart(__FUNCTION__);
         try {
             $this->LOGGER->info(' >> Запрошен список события для текущего пользователя');
             //Мы должны пробежаться по офисным страницам пользователя, которые поддерживают состояния, и запросить эти состояния
             foreach ($this->getUserAcessibleClassInstsFromList(self::LIST_OFFICE) as $office) {
                 if (!$office instanceof NumerableOfficePage) {
                     continue;
                 }
                 $state = $office->getNumericState();
                 if ($state) {
                     $events[$office->getIdent()] = $state;
                 }
             }
             $this->LOGGER->info(' << Список событий успешно загружен: ' . array_to_string($events, false));
         } catch (Exception $ex) {
             $this->LOGGER->info('Произошла ошибка: ' . $ex->getMessage());
             $this->profilerStop(false);
             throw $ex;
         }
         $this->profilerStop();
     }
     return $events;
 }
Example #4
0
function smarty_modifier_post_meta(PostContentProvider $postCP, $news = false)
{
    $post = $postCP->getPost();
    $postId = $post->getId();
    $type = $post->getPostType();
    $pp = Handlers::getInstance()->getPostsProcessorByPostType($type);
    $rp = Handlers::getInstance()->getRubricsProcessorByPostType($type, false);
    $trStateToggle = null;
    $rubHref = null;
    $commentsHref = null;
    $name = null;
    if ($news) {
        $name = $post->getName();
        $name = "<span class=\"name\">{$name}</span>";
    }
    if (!$news && $post->getPostType() == POST_TYPE_TRAINING && AuthManager::isAuthorized()) {
        $trStateToggle = '<a href="#' . $postId . '" title="Изменить состояние урока" class="toggle">Пройден</a>';
    }
    $rubHref = $rp ? $rp->rubricHref($post->getRubricId(), null, 'rubric') : null;
    //    if (!$news) {
    $commentsCnt = $post->getCommentsCount();
    $commentsHref = $pp->postHref($post, "Комментариев: {$commentsCnt}", 'comments', array('class' => 'commentcount'));
    //    }
    if ($name || $trStateToggle || $rubHref || $commentsHref) {
        echo '<div class="post_meta">';
        echo "{$name}&nbsp;{$trStateToggle} {$rubHref} {$commentsHref}";
        echo '</div>';
    }
}
Example #5
0
 protected function executeImpl(ArrayAdapter $params)
 {
     $url = $params->str('url');
     $text = $params->str('text');
     $note = $params->str('note');
     if (!$url || !$text) {
         return 'Не передан url или текст';
     }
     /*
      * Если пользователь не просматривал эту страницу и это не администратор - игнорируем.
      */
     /*
      $wasOpened = PageOpenWatcher::isPageOpenedByUser($url, PsUser::instOrNull());
      if (!$wasOpened && !AuthManager::isAuthorizedAsAdmin()) {
      return 'Пользователь не открывал страницу'; //---
      }
     */
     $text = UserInputTools::safeShortText($text);
     $note = $note ? UserInputTools::safeLongText($note) : $note;
     $saved = UtilsBean::inst()->saveMisprint($url, $text, $note, AuthManager::getUserIdOrNull());
     if (!$saved) {
         return 'Запись не была сохранена';
         //---
     }
     return new AjaxSuccess();
 }
Example #6
0
 protected function processImpl(PostArrayAdapter $adapter, $button)
 {
     $pass = $adapter->str(FORM_PARAM_REG_PASS);
     $passConfirm = $adapter->str(FORM_PARAM_REG_PASS_CONF);
     $error = UserInputValidator::validatePass($pass, $passConfirm);
     if ($error) {
         return array(FORM_PARAM_REG_PASS => $error);
     }
     $error = UserInputValidator::validatePassConfirm($pass, $passConfirm);
     if ($error) {
         return array(FORM_PARAM_REG_PASS_CONF => $error);
     }
     /*
      * Код
      */
     $code = $adapter->str(REMIND_CODE_PARAM);
     if (!$code) {
         return 'Не передан код восстановления';
     }
     $user = PassRecoverManager::changePassWithCode($code, $pass);
     if ($user instanceof PsUser) {
         $authed = AuthManager::loginUser($user->getEmail(), $pass);
         if ($authed) {
             return new AjaxSuccess();
         } else {
             return 'Не удалось авторизоваться после смены пароля';
         }
     } else {
         //Описание - почему код не может быть использован
         return $user;
     }
 }
Example #7
0
 /** @return DateTimeZone */
 public function getCurrentDateTimeZone()
 {
     if (!isset($this->curTZ)) {
         $tzName = AuthManager::isAuthorized() ? PsUser::inst()->getTimezone() : null;
         $this->curTZ = $tzName ? $this->getDateTimeZone($tzName) : $this->getDateTimeZone();
     }
     return $this->curTZ;
 }
 /**
  * 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;
     }
 }
Example #9
0
 function checkAccess($methodName)
 {
     $result = true;
     $securedMethods = ["getGoods", "getAdminOrder", "updateGood", "getGood", "getGoodImages", "deleteGood", "getDescriptionKeys", "getGoodsKeys", "getNextGoodCode", "uploadImagesForGood", "updatePrices", "listBooklets", "getBooklet", "saveBooklet", "deleteBooklet", "getBookletBackgrounds", "saveOrder"];
     if (in_array($methodName, $securedMethods)) {
         $result = isset($_SERVER['HTTPS']) && SessionManager::sessionStart() && AuthManager::isAuth();
     }
     return $result;
 }
Example #10
0
 protected function processImpl(PostArrayAdapter $adapter, $button)
 {
     $FEEDBACK = FeedbackManager::inst();
     /*
      * Тема
      */
     $theme = $adapter->str(FORM_PARAM_THEME);
     $error = UserInputValidator::validateShortText($theme);
     if ($error) {
         return array(FORM_PARAM_THEME => $error);
     }
     $theme = UserInputTools::safeShortText($theme);
     /*
      * Комментарий
      */
     $text = $adapter->str(FORM_PARAM_COMMENT);
     $error = UserInputValidator::validateLongText($text);
     if ($error) {
         return array(FORM_PARAM_COMMENT => $error);
     }
     $text = UserInputTools::safeLongText($text);
     /*
      * АВТОРИЗОВАН - пользуемся стандартным механизмом добавления сообщения в тред.
      * Кодом треда, при этом, является сам пользователь.
      */
     if (AuthManager::isAuthorized()) {
         $msg = $FEEDBACK->saveMessage(PsUser::inst()->getId(), null, $text, $theme, PsUser::inst());
         return new AjaxSuccess($FEEDBACK->buildLeaf($msg));
     }
     /*
      * НЕ АВТОРИЗОВАН - сохраняем сообщение в таблицу анонимных пользователей.
      */
     if (!AuthManager::isAuthorized()) {
         /*
          * Имя пользователя
          */
         $name = $adapter->str(FORM_PARAM_NAME);
         $error = UserInputValidator::validateShortText($name);
         if ($error) {
             return array(FORM_PARAM_NAME => $error);
         }
         $name = UserInputTools::safeShortText($name);
         /*
          * Контакты
          */
         $contacts = $adapter->str(FORM_PARAM_REG_CONTACTS);
         if ($contacts) {
             $error = UserInputValidator::validateShortText($contacts, false);
             if ($error) {
                 return array(FORM_PARAM_REG_CONTACTS => $error);
             }
             $contacts = UserInputTools::safeShortText($contacts);
         }
         $FEEDBACK->saveAnonimousFeedback($name, $contacts, $theme, $text);
         return new AjaxSuccess();
     }
 }
Example #11
0
 public function getUserPassedLessons()
 {
     $result = array();
     if (AuthManager::isAuthorized()) {
         foreach (TRBean::inst()->getPassedLessons(AuthManager::getUserId()) as $id) {
             $result["tr{$id}"] = true;
         }
     }
     return $result;
 }
Example #12
0
 public function login()
 {
     if (FORM_AdminLoginForm::getInstance()->isValid4Process()) {
         $data = FORM_AdminLoginForm::getInstance()->getData();
         $login = $data->getLogin();
         $passwd = $data->getPassword();
         AuthManager::loginAdmin($login, $passwd);
     }
     return AuthManager::isAuthorized();
 }
Example #13
0
 /**
  * Назначает аватар пользователю
  * 
  * @param int $userId - код пользователя
  * @param int $avatarId - код аватара (может быть null, если мы сбрасываем аватар)
  */
 public function setUserAvatar($userId, $avatarId = null)
 {
     //Валидируем входные параметры
     $avatarId = PsCheck::intOrNull($avatarId);
     $userId = AuthManager::validateUserId($userId);
     if (is_integer($avatarId) && !AvatarUploader::inst()->hasUploadedFile($avatarId, $userId)) {
         return false;
     }
     UserBean::inst()->setUserAvatar($userId, $avatarId);
     return true;
 }
Example #14
0
 public function getStructure()
 {
     $cacheId = AuthManager::isAuthorized() ? 'a' : 'na' . '_structure';
     $structure = PSCache::POSTS()->getFromCache($cacheId);
     if (!is_array($structure)) {
         PsProfiler::inst(__CLASS__)->start('Build structure');
         $structure = $this->getStructureImpl()->toArray();
         PsProfiler::inst(__CLASS__)->stop();
         PSCache::POSTS()->saveToCache($structure, $cacheId);
     }
     return $structure;
 }
Example #15
0
 private function jsCommon()
 {
     $params['url'] = PsUrl::current();
     $params['userId'] = AuthManager::getUserIdOrNull();
     $params['isAuthorized'] = AuthManager::isAuthorized();
     $params['isDOA'] = PsSettings::DEVMODE_OR_ADMIN();
     $params['isLogging'] = PsSettings::DEVMODE_OR_ADMIN();
     $params['currentSubmitTimeout'] = ActivityWatcher::getWaitTime();
     $params['tzOffset'] = PsTimeZone::inst()->getCurrentDateTimeZone()->getOffset(new DateTime());
     $params['marker'] = AuthManager::getUserSessoinMarker();
     $params['foldings'] = FoldedStorage::listEntitiesRel();
     return $params;
 }
Example #16
0
 protected function doProcess(PageContext $ctxt, RequestArrayAdapter $requestParams, ArrayAdapter $buildParams)
 {
     $this->authed = AuthManager::isAuthorizedAsAdmin();
     if ($this->authed) {
         $this->adminPage = AdminPagesManager::getInstance()->getCurrentPage();
     } else {
         if (FORM_AdminLoginForm::getInstance()->isValid4Process()) {
             if (AdminAuthManager::getInstance()->login()) {
                 WebPages::reloadCurPage();
             }
         }
     }
 }
Example #17
0
 protected function doProcess(PageContext $ctxt, RequestArrayAdapter $requestParams, ArrayAdapter $buildParams)
 {
     $this->authed = AuthManager::isAuthorizedAsAdmin();
     if ($this->authed) {
         $this->adminPage = AdminPagesManager::getInstance()->getCurrentPage();
     } else {
         //Показываем форму авторизации админа только если используем базовый провайдер безопасности
         if (PsSecurity::isBasic() && FORM_AdminLoginForm::getInstance()->isValid4Process()) {
             if (AdminAuthManager::getInstance()->login()) {
                 PsUtil::redirectToSelf();
             }
         }
     }
 }
 /**
  * Afficher les informations de connexion (avec un lien pour quitter)
  *
  * @return string
  */
 public static function afficherInformationsConnexion()
 {
     $auth = AuthManager::getInstance();
     $authInfos = "<div id=\"boxMembre\">\n";
     $authInfos .= "<div id=\"infosConnexion\">\n";
     $authInfos .= "{$auth->getPrenom()} {$auth->getNom()}<br />\n";
     $authInfos .= "Vous êtes {$auth->getStatut()}\n";
     $authInfos .= "</div>\n";
     $authInfos .= "<div id=\"quitter\">\n";
     $authInfos .= "<a href=\"index.php?t=auth&amp;a=quitter\">Quitter</a>\n";
     $authInfos .= "</div>\n";
     $authInfos .= "</div>\n";
     return $authInfos;
 }
 public function testAbstractAuthenticationProvider()
 {
     $provider = $this->getMockForAbstractClass(AbstractAuthenticationProvider::class);
     $providerPriv = \TestingAccessWrapper::newFromObject($provider);
     $obj = $this->getMockForAbstractClass('Psr\\Log\\LoggerInterface');
     $provider->setLogger($obj);
     $this->assertSame($obj, $providerPriv->logger, 'setLogger');
     $obj = AuthManager::singleton();
     $provider->setManager($obj);
     $this->assertSame($obj, $providerPriv->manager, 'setManager');
     $obj = $this->getMockForAbstractClass('Config');
     $provider->setConfig($obj);
     $this->assertSame($obj, $providerPriv->config, 'setConfig');
     $this->assertType('string', $provider->getUniqueId(), 'getUniqueId');
 }
Example #20
0
 /**
  * Сохранение картинок галлерей в БД
  */
 public function saveGallery($gallery, $name, array $images)
 {
     AuthManager::checkAdminAccess();
     $cnt = $this->getCnt('select count(1) as cnt from ps_gallery where v_dir=?', $gallery);
     if ($cnt == 0) {
         $this->insert('insert into ps_gallery (v_dir, v_name) VALUES (?, ?)', array($gallery, $name));
     } else {
         $this->update('update ps_gallery set v_name=? where v_dir=?', array($name, $gallery));
     }
     $this->update('delete from ps_gallery_images where v_dir=?', $gallery);
     $order = 0;
     foreach ($images as $img) {
         $this->saveImg($gallery, $img, ++$order);
     }
 }
Example #21
0
 protected function processImpl(PostArrayAdapter $adapter, $button)
 {
     $data = new RegFormData();
     /*
      * Имя пользователя
      */
     $name = $adapter->str(FORM_PARAM_REG_NAME);
     $error = UserInputValidator::validateShortText($name);
     if ($error) {
         return array(FORM_PARAM_REG_NAME => $error);
     }
     $name = UserInputTools::safeShortText($name);
     $data->setUserName($name);
     /*
      * e-mail
      */
     $mail = $adapter->str(FORM_PARAM_REG_MAIL);
     $error = UserInputValidator::validateEmail($mail);
     if ($error) {
         return array(FORM_PARAM_REG_MAIL => $error);
     }
     $data->setUserMail($mail);
     /*
      * Пол
      */
     $sex = $adapter->int(FORM_PARAM_REG_SEX);
     $error = UserInputValidator::validateSex($sex);
     if ($error) {
         return array(FORM_PARAM_REG_SEX => $error);
     }
     $data->setSex($sex);
     /*
      * Пароль
      */
     $pass = $adapter->str(FORM_PARAM_REG_PASS);
     $passConfirm = $adapter->str(FORM_PARAM_REG_PASS_CONF);
     $error = UserInputValidator::validatePass($pass, $passConfirm);
     if ($error) {
         return array(FORM_PARAM_REG_PASS => $error);
     }
     $error = UserInputValidator::validatePassConfirm($pass, $passConfirm);
     if ($error) {
         return array(FORM_PARAM_REG_PASS_CONF => $error);
     }
     $data->setPassword($pass);
     AuthManager::createUser($data);
     return new AjaxSuccess();
 }
Example #22
0
 protected function processImpl(PostArrayAdapter $adapter, $button)
 {
     $login = $adapter->str(FORM_PARAM_LOGIN);
     if (!$login) {
         return array(FORM_PARAM_LOGIN, 'required');
     }
     if (!PsCheck::isEmail($login)) {
         return array(FORM_PARAM_LOGIN, 'email');
     }
     $password = $adapter->str(FORM_PARAM_PASS);
     if (!$password) {
         return array(FORM_PARAM_PASS, 'required');
     }
     $loggedIn = AuthManager::loginUser($login, $password);
     return $loggedIn ? new AjaxSuccess() : 'В доступе отказано';
 }
Example #23
0
 /**
  * Основной метод, выполняющий обновление пользователя
  * 
  * @param type $userId
  * @param array $whatAssoc
  * @param array $whereAssoc
  * @return type
  */
 private function updateUser($userId, array $whatAssoc, array $whereAssoc = array())
 {
     //Сразу валидируем код пользователя
     $userId = AuthManager::validateUserId($userId);
     //В апдейте можно использовать только ассоциативные параметры
     Query::assertOnlyAssocParams($whatAssoc);
     //Получим список обновляемых колонок
     $columns = check_condition(array_keys($whatAssoc), 'Не переданы параметры обновления пользователя');
     //Проверим на наличие запрещённых полей
     $denyColumns = array_intersect(self::$UPDATE_DENY_FIELDS, $columns);
     if ($denyColumns) {
         raise_error('Cледующие параметры пользователя не могут быть обновлены: ' . array_to_string(array_values($denyColumns)));
     }
     //Проверим на наличие неизвестных полей
     $unknownColumns = array_diff($columns, self::getColumns());
     if ($unknownColumns) {
         raise_error('Попытка обновить недопустимые параметры пользователя: ' . array_to_string(array_values($unknownColumns)));
     }
     //Загружаем текущее состояние, на всякий случай предварительно сбросив кеш
     $OLD = $this->getUserDataById($this->reset($userId));
     //Сбрасываем кеш и выполняем обновление
     $whereAssoc[self::FIELD_ID] = $this->reset($userId);
     $updated = $this->update(Query::update('users', $whatAssoc, $whereAssoc));
     if ($updated <= 0) {
         return;
         //---
     }
     //Загружаем новое состояние
     $NEW = $this->getUserDataById($this->reset($userId));
     //Сравним и запишем аудит
     $DIF = array();
     foreach ($OLD as $column => $oldValue) {
         if (in_array($column, self::$SKIP_AUDIT_ON_UPDATE_FIELDS)) {
             continue;
             //---
         }
         $newValue = $NEW[$column];
         if (strcmp(trim($oldValue), trim($newValue)) != 0) {
             $DIF[$column] = $newValue;
         }
     }
     if (empty($DIF)) {
         return;
         //---
     }
     UserAudit::inst()->onUpdate($userId, $DIF);
 }
Example #24
0
 private function jsCommon(PageContext $ctxt)
 {
     $params['url'] = $ctxt->getRequestUrl();
     $params['isPopup'] = $ctxt->isPopupPage();
     $params['userId'] = AuthManager::getUserIdOrNull();
     $params['isAuthorized'] = AuthManager::isAuthorized();
     $params['isDOA'] = PsSettings::DEVMODE_OR_ADMIN();
     $params['isLogging'] = PsSettings::DEVMODE_OR_ADMIN();
     $params['currentSubmitTimeout'] = ActivityWatcher::getWaitTime();
     $params['tzOffset'] = PsTimeZone::inst()->getCurrentDateTimeZone()->getOffset(new DateTime());
     $params['marker'] = AuthManager::getUserSessoinMarker();
     /* @var $folding FoldedResources */
     foreach (Handlers::getInstance()->getFoldingsIndexed() as $unique => $folding) {
         $params['foldings'][$unique] = $folding->getResourcesDm()->relDirPath();
     }
     return $params;
 }
 /**
  * Основной метод, выполняющий выполнение 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;
 }
Example #26
0
 /**
  * Список методов, доступных для вызова
  */
 public static function getMethodsList()
 {
     if (!AuthManager::isAuthorizedAsAdmin() || PsDefines::isProduction()) {
         return array();
     }
     if (!is_array(self::$METHODS)) {
         self::$METHODS = array();
         $methodNames = PsUtil::getClassMethods(TestManager::inst(), true, false, true, true);
         foreach ($methodNames as $name) {
             $method = new ReflectionMethod(TestManager::inst(), $name);
             $params['name'] = $name;
             $params['descr'] = implode("\n", StringUtils::parseMultiLineComments($method->getDocComment()));
             $params['params'] = array();
             /* @var $param ReflectionParameter */
             foreach ($method->getParameters() as $param) {
                 $params['params'][] = array('name' => $param->getName(), 'dflt' => $param->isDefaultValueAvailable() ? var_export($param->getDefaultValue(), true) : null);
             }
             self::$METHODS[$name] = $params;
         }
     }
     return self::$METHODS;
 }
Example #27
0
 public function toAttay()
 {
     $REQULT = array();
     if ($this->query && AuthManager::isAuthorizedAsAdmin()) {
         $REQULT['query'] = $this->query->build($params);
         $REQULT['params'] = array_to_string($params);
     }
     if (!$this->data) {
         return $REQULT;
     }
     //Добавим стандартные обработчики для колонок
     foreach ($this->columns as $column) {
         if (starts_with($column, 'dt_')) {
             $this->addSetting($column, self::COL_DATE);
             $this->addSetting($column, self::COL_NOWRAP);
         }
     }
     $REQULT['data'] = $this->data;
     $REQULT['columns'] = $this->columns;
     $REQULT['settings'] = $this->settings;
     return $REQULT;
 }
Example #28
0
 /**
  * Метод удаляет неиспользованные коды, высланные пользователю
  */
 public function dropUnusedCodes($type, $userId)
 {
     $this->update('delete from ps_user_codes where v_type=? and id_user=? and n_status!=?', array($type, AuthManager::validateUserId($userId), self::CODE_STATUS_USED));
 }
Example #29
0
 /** Метод проверяет, имеет ли авторизованный пользователь поступ к этому классу */
 protected final function checkAccess()
 {
     AuthManager::checkAccess($this->getAuthType());
 }
Example #30
0
 public static function getRelatedFromPolicy(Policy $policy)
 {
     $ret = array();
     $authm = new AuthManager();
     $apim = new ApiManager();
     $allAuths = $authm->getAllAuths(true);
     $relatedAuthIds = array();
     $relatedAuths = array();
     $authPropsArr = array();
     $allApis = $apim->getAllApis(true);
     $relatedApiIds = array();
     $relatedApis = array();
     $apiPropsArr = array();
     foreach ($allAuths as $auth) {
         /**
          * @var $auth Auth
          */
         foreach ($policy->getAuthIds() as $authBucket) {
             if ($authBucket->getAuthIds() && in_array($auth->getId(), $authBucket->getAuthIds())) {
                 $relatedAuths[] = $auth;
             }
         }
     }
     foreach ($relatedAuths as $auth) {
         $props = $auth->getProperties();
         if (!empty($props)) {
             $authPropsArr[$auth->getId()] = array_keys($props);
         }
     }
     $relatedApiIds = $policy->getApiIds();
     foreach ($allApis as $api) {
         /**
          * @var $api Api
          */
         if (in_array($api->getId(), $relatedApiIds)) {
             $relatedApis[] = $api;
         }
     }
     foreach ($relatedApis as $api) {
         $props = $api->getProperties();
         if (!empty($props)) {
             if ($api->getDisplayName()) {
                 $apiPropsArr[$api->getDisplayName()] = array_keys($props);
             } else {
                 $apiPropsArr[$api->getId()] = array_keys($props);
             }
         }
     }
     if (!empty($authPropsArr)) {
         $ret["auth"] = $authPropsArr;
     }
     if (!empty($apiPropsArr)) {
         $ret["api"] = $apiPropsArr;
     }
     return json_encode($ret);
 }