public function changePasswordAction()
 {
     $form = new ChangePasswordForm();
     $user = $this->getUserManager()->getUserFromAuthenticator();
     $messages = [];
     if ($this->getRequest()->isPost()) {
         $form->setData($this->params()->fromPost());
         if ($form->isValid()) {
             $data = $form->getData();
             $adapter = $this->getAuthenticationService()->getAdapter();
             $adapter->setIdentity($user->getEmail());
             $adapter->setCredential($data['currentPassword']);
             $result = $adapter->authenticate();
             if ($result->isValid()) {
                 $user->setPassword($data['password']);
                 $this->getUserManager()->persist($user);
                 $this->getUserManager()->flush();
                 $this->flashmessenger()->addSuccessMessage('Your password has successfully been changed.');
                 return $this->redirect()->toRoute('user/me');
             }
             $messages = $result->getMessages();
         }
     }
     $view = new ViewModel(['user' => $user, 'form' => $form, 'messages' => $messages]);
     $view->setTemplate('authentication/change-password');
     return $view;
 }