Example #1
0
 /**
  * Change password ajax action
  *
  * @param \thebuggenie\core\framework\Request $request
  */
 public function runAccountChangePassword(framework\Request $request)
 {
     $this->forward403unless($this->getUser()->hasPageAccess('account'));
     if ($request->isPost()) {
         if ($this->getUser()->canChangePassword() == false) {
             $this->getResponse()->setHttpStatus(400);
             return $this->renderJSON(array('error' => framework\Context::getI18n()->__("You're not allowed to change your password.")));
         }
         if (!$request->hasParameter('current_password') || !$request['current_password']) {
             $this->getResponse()->setHttpStatus(400);
             return $this->renderJSON(array('error' => framework\Context::getI18n()->__('Please enter your current password')));
         }
         if (!$request->hasParameter('new_password_1') || !$request['new_password_1']) {
             $this->getResponse()->setHttpStatus(400);
             return $this->renderJSON(array('error' => framework\Context::getI18n()->__('Please enter a new password')));
         }
         if (!$request->hasParameter('new_password_2') || !$request['new_password_2']) {
             $this->getResponse()->setHttpStatus(400);
             return $this->renderJSON(array('error' => framework\Context::getI18n()->__('Please enter the new password twice')));
         }
         if (!$this->getUser()->hasPassword($request['current_password'])) {
             $this->getResponse()->setHttpStatus(400);
             return $this->renderJSON(array('error' => framework\Context::getI18n()->__('Please enter your current password')));
         }
         if ($request['new_password_1'] != $request['new_password_2']) {
             $this->getResponse()->setHttpStatus(400);
             return $this->renderJSON(array('error' => framework\Context::getI18n()->__('Please enter the new password twice')));
         }
         $this->getUser()->changePassword($request['new_password_1']);
         $this->getUser()->save();
         framework\Context::clearMessage('auto_password');
         $this->getResponse()->setCookie('tbg3_password', $this->getUser()->getHashPassword());
         return $this->renderJSON(array('title' => framework\Context::getI18n()->__('Your new password has been saved')));
     }
 }