Beispiel #1
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();
             }
         }
     }
 }
Beispiel #2
0
 /**
  * Обработка действия формы создания/изменения/удаления записи
  */
 private function processForm(RecEditFormData $data)
 {
     $table = $data->getTable();
     $action = $data->getAction();
     $rec = $data->getRec();
     /*
      * Сначала выполним действия с фолдингом, так как они более багоёмки
      */
     if ($data->isProcessFolding()) {
         $foldingEntity = $table->getFoldingEntity4DbRecAnyway($rec);
         check_condition($foldingEntity, 'Не удалось определить фолдинг для редактируемой сущности.');
         $folding = $foldingEntity->getFolding();
         $fident = $foldingEntity->getIdent();
         /**
          * Если мы создавали или модифицировали запись, то фолдинг нужно создать.
          * Если удаляли - то фолдинг нужно удалить.
          */
         switch ($action) {
             case PS_ACTION_CREATE:
             case PS_ACTION_EDIT:
                 $folding->createEntity($fident);
                 break;
             case PS_ACTION_DELETE:
                 $folding->deleteEntity($fident);
                 break;
         }
     }
     /*
      * Сохраним изменения в БД
      */
     $table->saveRec($rec, $action);
     if ($action == PS_ACTION_EDIT) {
         PsUtil::redirectToSelf();
     } else {
         PsUtil::redirectTo(self::urlTableRows($table));
     }
 }