/** * Change Security Question * * Displays user change security question form * * @return Zend\View\Model\ViewModel */ public function changeSecurityQuestionAction() { if (!($user = $this->identity())) { return $this->redirect()->toRoute($this->getOptions()->getLoginRedirectRoute()); } $form = $this->getUserFormHelper()->createUserForm($user, 'ChangeSecurityQuestion'); $message = null; if ($this->getRequest()->isPost()) { $currentPassword = $user->getPassword(); $form->setValidationGroup('password', 'question', 'answer', 'csrf'); $form->setData($this->getRequest()->getPost()); if ($form->isValid()) { $data = $form->getData(); $user->setPassword($currentPassword); if (UserCredentialsService::verifyHashedPassword($user, $this->params()->fromPost('password'))) { $entityManager = $this->getEntityManager(); $entityManager->persist($user); $entityManager->flush(); $viewModel = new ViewModel(array('navMenu' => $this->getOptions()->getNavMenu())); $viewModel->setTemplate('csn-user/registration/change-security-question-success'); return $viewModel; } else { $message = $this->getTranslatorHelper()->translate('Your password is wrong. Please provide the correct password.'); } } } return new ViewModel(array('form' => $form, 'navMenu' => $this->getOptions()->getNavMenu(), 'message' => $message, 'questionSelectedId' => $user->getQuestion()->getId())); }