protected function processImpl(PostArrayAdapter $adapter, $button)
 {
     if (!$adapter->hasAllNoEmpty('folding', self::PARAM_NEW_FOLDING_IDENT)) {
         return 'Не переданы все необходимые параметры.';
     }
     $funique = $adapter->str('folding');
     $fident = check_condition($adapter->str(self::PARAM_NEW_FOLDING_IDENT), 'Пустой идентификатор фолдинга');
     $folding = Handlers::getInstance()->getFoldingByUnique($funique);
     $folding->assertNotExistsEntity($fident);
     switch ($button) {
         case self::BUTTON_SAVE_DB:
             $action = PS_ACTION_CREATE;
             $table = TableExporter::inst()->getTable($folding);
             //Проставим руками идентификатор фолдинга для колонки из базы
             $adapter->set($folding->getTableColumnIdent(), $fident);
             $rec = $table->fetchRowFromForm($adapter->getData(), $action);
             if (!is_array($rec)) {
                 //Данные для создания записи в БД не прошли валидацию
                 return $rec;
             }
             $table->saveRec($rec, $action);
             //createFoldingDbRec($folding, $ident);
         //createFoldingDbRec($folding, $ident);
         case self::BUTTON_SAVE:
             $folding->createEntity($fident);
             break;
     }
     return new AjaxSuccess(array('url' => AP_APFoldingEdit::urlFoldingEdit($folding->getFoldedEntity($fident))));
 }
Beispiel #2
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;
     }
 }
 protected function processImpl(PostArrayAdapter $adapter, $button)
 {
     $entity = Handlers::getInstance()->getFoldedEntityByUnique($adapter->str('fentity'));
     $tpl = $entity->getFolding()->getInfoTpl($entity->getIdent(), $adapter->str('ftpl'));
     $content = $adapter->str('tpl');
     $tpl->getDirItem()->writeLineToFile($content, true);
     return new AjaxSuccess();
 }
Beispiel #4
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();
     }
 }
Beispiel #5
0
 public function processImpl(PostArrayAdapter $paa, $button)
 {
     $login = $paa->str(FORM_PARAM_LOGIN);
     if (!$login) {
         return 'Укажите e-mail';
     }
     if (!PsCheck::isEmail($login)) {
         return 'E-mail должен быть корректным';
     }
     $password = $paa->str(FORM_PARAM_PASS);
     if (!$password) {
         return 'Нужно указать пароль';
     }
     return new AdminLoginFormData($login, $password);
 }
Beispiel #6
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();
 }
Beispiel #7
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() : 'В доступе отказано';
 }
Beispiel #8
0
 protected function processImpl(PostArrayAdapter $adapter, $button)
 {
     $text = $adapter->str('text');
     if (!$text) {
         return array('text', 'required');
     }
     return new AjaxSuccess();
 }
 protected function processImpl(PostArrayAdapter $adapter, $button)
 {
     //return print_r($adapter->data, true);
     if (!$adapter->hasAllNoEmpty(array('ftype', 'fident'))) {
         return 'Не переданы все необходимые параметры.';
     }
     $ftype = $adapter->str('ftype');
     $fsubtype = $adapter->str('fsubtype');
     $ident = $adapter->str('fident');
     $folding = FoldedStorageInsts::byTypeStype($ftype, $fsubtype);
     $fEntity = $folding->getFoldedEntity($ident, true);
     $result = 'OK';
     switch ($button) {
         case self::BUTTON_SAVE:
             /*
              * На всякий случай убедимся, что нам передали все данные с формы
              */
             check_condition($adapter->hasAll($folding->getAllowedResourceTypes()), 'Переданы не все типы данных для фолдинга');
             //Основим обложку, если фолдинг с ней работает
             if ($folding->isImagesFactoryEnabled()) {
                 $cover = SimpleUploader::inst()->saveUploadedFile(false);
                 if ($cover) {
                     $folding->updateEntityCover($ident, $cover);
                     $cover->remove();
                 }
             }
             //Обновим остальные параемтры
             $folding->editEntity($ident, $adapter);
             break;
         case self::BUTTON_DELETE_ALL:
             //Удаляем строку из базы
             //TODO - выкинуто
             //TableExporter::inst()->getTable($folding->getTableName())->deleteFoldingDbRec($folding, $ident);
         //Удаляем строку из базы
         //TODO - выкинуто
         //TableExporter::inst()->getTable($folding->getTableName())->deleteFoldingDbRec($folding, $ident);
         case self::BUTTON_DELETE:
             $folding->deleteEntity($ident);
             $result = AP_APFoldingEdit::urlFoldingEntitys($folding);
             break;
     }
     return new AjaxSuccess($result);
 }
Beispiel #10
0
 protected function processImpl(PostArrayAdapter $aa, $button)
 {
     $action = $this->getFormAction();
     $table = TableExporter::inst()->getTable($aa->str('table'));
     $rec = $table->fetchRowFromForm($aa->getData(), $action);
     if (!is_array($rec)) {
         return $rec;
     }
     return new RecEditFormData($table, $action, $this->isSubmittedByButton(array(self::BUTTON_CREATEF, self::BUTTON_EDITF, self::BUTTON_DELETEF)), $rec);
 }
Beispiel #11
0
 protected function processImpl(PostArrayAdapter $adapter, $button)
 {
     $oldPass = $adapter->str(FORM_PARAM_REG_OLD_PASS);
     $newPass = $adapter->str(FORM_PARAM_REG_PASS);
     $newPassConfirm = $adapter->str(FORM_PARAM_REG_PASS_CONF);
     $error = UserInputValidator::validateOldPass($oldPass);
     if ($error) {
         return array(FORM_PARAM_REG_OLD_PASS => $error);
     }
     $error = UserInputValidator::validatePass($newPass, $newPassConfirm);
     if ($error) {
         return array(FORM_PARAM_REG_PASS => $error);
     }
     $error = UserInputValidator::validatePassConfirm($newPass, $newPassConfirm);
     if ($error) {
         return array(FORM_PARAM_REG_PASS_CONF => $error);
     }
     PsUser::inst()->changePassword($oldPass, $newPass);
     return new AjaxSuccess();
 }
Beispiel #12
0
 protected function processImpl(PostArrayAdapter $adapter, $button)
 {
     PsDefines::assertProductionOff(__CLASS__);
     $text = $adapter->str('text');
     if (!$text) {
         return array('text', 'required');
     }
     $mtime = $adapter->int('mtime');
     ToDoFile::inst()->save($text, $mtime);
     return new AjaxSuccess();
 }
Beispiel #13
0
 protected function processStock(BaseStock $stock, PostArrayAdapter $adapter, $button)
 {
     //ОБРАБОТАЕМ КОММЕНТАРИЙ
     $comment = $adapter->str(FORM_PARAM_COMMENT);
     $error = UserInputValidator::validateShortText($comment, true, MOSAIC_ANS_MAX_LEN);
     if ($error) {
         return array(FORM_PARAM_COMMENT => $error);
     }
     $comment = UserInputTools::safeShortText($comment);
     //ВЫЗОВЕМ ДЕЙСТВИЕ ДЛЯ АКЦИИ
     return $stock->formSaveAnswer($comment);
 }
Beispiel #14
0
 protected function processImpl(PostArrayAdapter $adapter, $button)
 {
     $tzName = $adapter->str(FORM_PARAM_TIMEZONE);
     if (!$tzName) {
         return array(FORM_PARAM_TIMEZONE => 'required');
     }
     if (!PsTimeZone::inst()->isTimeZoneExists($tzName)) {
         return array(FORM_PARAM_TIMEZONE => "Временная зона [{$tzName}] не существует");
     }
     PsUser::inst()->updateTimezone($tzName);
     return new AjaxSuccess();
 }
 protected function processImpl(PostArrayAdapter $adapter, $button)
 {
     $clear = $adapter->bool(FORM_PARAM_YES_NO);
     $folding = Handlers::getInstance()->getFoldingByUnique($adapter->str('folding'));
     $uploadedZip = SimpleUploader::inst()->saveUploadedFile();
     try {
         $fentity = $folding->imporFromZip($uploadedZip, $clear);
     } catch (Exception $ex) {
         $uploadedZip->remove();
         throw $ex;
     }
     return new AjaxSuccess(array('url' => AP_APFoldingEdit::url($fentity)));
 }
Beispiel #16
0
 protected function processImpl(PostArrayAdapter $adapter, $button)
 {
     /*
      * e-mail
      */
     $mail = $adapter->str(FORM_PARAM_REG_MAIL);
     $error = UserInputValidator::validateEmail($mail, true);
     if ($error) {
         return array(FORM_PARAM_REG_MAIL => $error);
     }
     PassRecoverManager::sendRecoverCode($mail);
     return new AjaxSuccess();
 }
Beispiel #17
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);
     /*
      * Пол
      */
     $sex = $adapter->int(FORM_PARAM_REG_SEX);
     $error = UserInputValidator::validateSex($sex);
     if ($error) {
         return array(FORM_PARAM_REG_SEX => $error);
     }
     $data->setSex($sex);
     /*
      * Обо мне
      */
     $about = $adapter->str(FORM_PARAM_REG_ABOUT);
     if ($about) {
         $error = UserInputValidator::validateLongText($about, false);
         if ($error) {
             return array(FORM_PARAM_REG_ABOUT => $error);
         }
         $data->setAboutSrc($about);
         $data->setAbout(UserInputTools::safeLongText($about));
     }
     /*
      * Контакты
      */
     $contacts = $adapter->str(FORM_PARAM_REG_CONTACTS);
     if ($contacts) {
         $error = UserInputValidator::validateLongText($contacts, false);
         if ($error) {
             return array(FORM_PARAM_REG_CONTACTS => $error);
         }
         $data->setContactsSrc($contacts);
         $data->setContacts(UserInputTools::safeLongText($contacts));
     }
     /*
      * Цитата
      */
     $msg = $adapter->str(FORM_PARAM_REG_MSG);
     if ($msg) {
         $error = UserInputValidator::validateLongText($msg, false);
         if ($error) {
             return array(FORM_PARAM_REG_MSG => $error);
         }
         $data->setMsgSrc($msg);
         $data->setMsg(UserInputTools::safeLongText($msg));
     }
     PsUser::inst()->updateInfo($data);
     return new AjaxSuccess();
 }