Exemplo n.º 1
0
 public function change()
 {
     $old_password = '';
     $password = '';
     // Если установлена проверка старого пароля
     if ($this->register->get('front-end')->ignore_password_field->value == 0) {
         $password = !empty($_POST['password']) ? $_POST['password'] : '';
         $old_password = !empty($_POST['old_password']) ? $_POST['old_password'] : '';
     } else {
         $old_password = $this->aProfile->password->getValue();
     }
     if (!empty($_POST['password'])) {
         $password = $_POST['password'];
         try {
             $this->changePassword($old_password, $password);
             UsersLogin::login($this->aProfile->login->getValue(), $password);
             $this->reloadCurrentSession();
         } catch (Exception $e) {
             UsersLogin::logout();
             $this->addAlert('Ошибка при изменении пароля');
             $this->jump(Login::getUrl());
         }
         // Для того, чтобы смена пароля отработала корректно
         $old_password = $password;
     }
     // Если передан email, то заменяем его
     if (!empty($_POST['email'])) {
         $this->changeEmail($old_password, $_POST['email']);
     }
     if (!empty($_POST['login'])) {
         $this->changeLogin($old_password, $_POST['login']);
     }
     $oUser = UsersLogin::getCurrentSession();
     // Получаем список полей, которые запрещены к обновлению
     $fields = $this->register->get('front-end')->blocked_fields->value;
     $fields = explode(',', $fields);
     foreach ($_POST as $key => $row) {
         try {
             if (!in_array($key, $fields)) {
                 $oUser->{$key}->setValue($row);
             }
         } catch (Exception $e) {
         }
     }
     if (!empty($_FILES)) {
         foreach ($_FILES as $key => $row) {
             try {
                 $oUser->{$key}->setValue('');
             } catch (Exception $e) {
             }
         }
     }
     $oUser->update();
     EventController::callEvent('users_after_update_profile', $oUser, $_POST);
     $this->addSuccess('updateProfile');
     if (!empty($_POST['redirectTo'])) {
         $this->jump($_POST['redirectTo']);
     }
     $this->jump('./');
 }
Exemplo n.º 2
0
 public function __construct($urlInfo = array())
 {
     parent::__construct($urlInfo);
     if (!UsersLogin::isLogined()) {
         /**
          * @todo Исправить проблему с зависимостью от MessageDictionary
          */
         $this->addError(\plugins\MessageDictionary\Plugin::getMessage(self::MessageKey));
         $this->jump(Login::getUrl());
     }
     $this->reloadCurrentSession();
 }