Ejemplo n.º 1
0
 /**
  * Приём анкеты Сити банка
  */
 public function executeCitiCashBackApplication(sfRequest $request)
 {
     $form = new CitiBankApplicationForm();
     $form->bind($request->getPostParameters());
     if ($form->isValid()) {
         $this->_sendEmail($form->getValues());
         return $this->renderJsonSuccess('Анкета успешно отправлена');
     }
     $errors = $form->getErrorSchema()->getErrors();
     $errorMessages = array();
     //TODO: refactor: все сообщения русским языком должны создаваться на клиенте,
     //сервер должен слать только код поля (например, "email") и сообщение валидатора
     $humanFieldNames = array("email" => "Email", "birthday" => "Дата рождения", "name" => "Имя", "patronymic" => "Отчество", "surname" => "Фамилия", "mobile_phone" => "Мобильный телефон");
     foreach ($errors as $fieldName => $error) {
         $errorMessages[] = sprintf("%s", $humanFieldNames[$fieldName]);
     }
     return $this->renderJsonError("Пожалуйста, исправьте заполнение полей: \n" . implode(', ', $errorMessages));
 }
Ejemplo n.º 2
0
 /**
  * Сохранить профиль пользователя
  */
 public function executeSave(sfRequest $request)
 {
     $user = $this->getUser()->getUserRecord();
     $this->form = new UserProfileForm($user);
     $this->getResponse()->setHttpHeader('Content-Type', 'application/json; charset=utf-8');
     $postParameters = $request->getPostParameters();
     $formParameters = array();
     // default fields
     $fields = array('mailIntegration' => 'user_service_mail', 'nickname' => 'name');
     // грязный хак для (от) Рамблёра
     if (strpos($_SERVER['HTTP_HOST'], 'rambler') === false) {
         $fields = array_merge(array('login' => 'user_login', 'mail' => 'user_mail', 'pass' => 'password', 'newpass' => 'password_new', 'getNotify' => 'notify'), $fields);
     }
     foreach ($fields as $parameter => $field) {
         if (array_key_exists($parameter, $postParameters)) {
             $formParameters[$field] = $postParameters[$parameter];
         }
     }
     $this->form->bind($formParameters, array());
     if ($this->form->isValid()) {
         $this->form->save();
         return $this->renderText(json_encode(array('result' => array('text' => 'Данные успешно сохранены'))));
     }
     $err = $this->form->getErrorSchema();
     $string = '';
     foreach ($err as $errors) {
         if ($errors instanceof sfValidatorErrorSchema) {
             foreach ($errors as $code => $message) {
                 $string .= $message->getMessage() . "<br /><br />\n";
             }
         } elseif ($errors instanceof sfValidatorError) {
             $string .= $errors->getMessage() . "<br /><br />\n";
         } else {
             $string .= $errors . "<br /><br />\n";
         }
     }
     return $this->renderText(json_encode(array('error' => array('text' => $string))));
 }
 /**
  * Авторизация пользователя
  */
 public function executeLogin(sfRequest $request)
 {
     $this->setLayout("layout");
     $user = $this->getUser();
     if ($user->isAuthenticated()) {
         return $this->redirect('@homepage');
     }
     // Запрос на авторизацию
     if ($request->isMethod('post')) {
         $this->form = new myAuthForm();
         $params = $request->getPostParameters();
         $this->form->bind($params['auth']);
         if ($this->form->isValid()) {
             $values = $this->form->getValues();
             $remember = array_key_exists('remember', $values) ? $values['remember'] : false;
             $user->signIn($this->form->getUser(), $remember);
             return $this->redirect('@homepage');
         }
         // Форвард из других контроллеров
     } else {
         $this->form = new myAuthForm();
     }
     return sfView::SUCCESS;
 }
Ejemplo n.º 4
0
 /**
  * Авторизация пользователя / сообщение о неавторизованности
  */
 public function executeLogin(sfRequest $request)
 {
     $this->setLayout("layout");
     $user = $this->getUser();
     if (!$user->isAuthenticated()) {
         if ($request->isMethod('post')) {
             $form = new myAuthForm();
             $form->bind($request->getPostParameters());
             if ($form->isValid()) {
                 $userRecord = $form->getUser();
             } else {
                 return $this->raiseError($form->getErrorSchema());
             }
         } else {
             return $this->raiseError('Authentification required');
         }
         $user->signIn($userRecord);
     }
     if (!$this->checkSubscription()) {
         $user->signOut();
         return $this->raiseError('Payment required', 402);
     }
     return sfView::SUCCESS;
 }