Пример #1
0
 public function ajaxChangePasswordAction()
 {
     /**
      * @var UserManager $rUserDao
      * @var \DDD\Domain\User\User $rUser
      */
     $request = $this->getRequest();
     $result = ['status' => 'success', 'msg' => TextConstants::SUCCESS_UPDATE];
     try {
         if ($request->isXmlHttpRequest()) {
             $form = new ProfilePasswordForm('changePassword');
             $messages = '';
             $data = $request->getPost();
             $form->setInputFilter(new ProfilePasswordFilter());
             if ($request->isPost()) {
                 /**
                  * @var \DDD\Service\User $userService
                  */
                 $userService = $this->getServiceLocator()->get('service_user');
                 $filter = $form->getInputFilter();
                 $form->setInputFilter($filter);
                 $rUserDao = $this->getServiceLocator()->get('dao_user_user_manager');
                 $rUser = $rUserDao->findUserById((int) $data['userId']);
                 if (!Helper::bCryptVerifyPassword($data['currentPassword'], $rUser->getPassword())) {
                     return new JsonModel(['status' => 'error', 'msg' => 'Current password is wrong.']);
                 }
                 $form->setData($data);
                 if ($form->isValid()) {
                     $userService->changePassword($data);
                     Helper::setFlashMessage(['success' => TextConstants::SUCCESS_UPDATE]);
                 } else {
                     $errors = $form->getMessages();
                     foreach ($errors as $key => $row) {
                         if (!empty($row)) {
                             $messages .= ucfirst($key) . ' ';
                             $messages_sub = '';
                             foreach ($row as $keyer => $rower) {
                                 $messages_sub .= $rower;
                             }
                             $messages .= $messages_sub . '<br>';
                         }
                     }
                     $result['status'] = 'error';
                     $result['msg'] = $messages;
                 }
             }
         }
     } catch (\Exception $e) {
         echo $e->getMessage();
         $result['status'] = 'error';
         $result['msg'] = TextConstants::SERVER_ERROR;
     }
     return new JsonModel($result);
 }