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); }