/** * doSave * * @param DataInterface $data * * @return bool * * @throws ValidateFailException * @throws \Exception */ protected function doSave(DataInterface $data) { $email = $this->input->getEmail('email'); if (!$email) { throw new ValidateFailException(Translator::translate($this->langPrefix . 'message.user.not.found')); } $view = $this->getView(); $user = User::get(array('email' => $email)); if ($user->isNull()) { throw new ValidateFailException(Translator::translate($this->langPrefix . 'message.user.not.found')); } $token = UserHelper::getToken($user->email); $link = $this->router->route('forget_confirm', array('token' => $token, 'email' => $email), CoreRouter::TYPE_FULL); $password = new Password(); $user->reset_token = $password->create($token); $user->last_reset = DateTime::create()->toSql(); User::save($user); $view['user'] = $user; $view['token'] = $token; $view['link'] = $link; $body = $this->getMailBody($view); $this->sendEmail($user->email, $body); return true; }
/** * prepareExecute * * @return void */ protected function prepareExecute() { if (UserHelper::isLogin()) { $warder = WarderHelper::getPackage(); $this->redirect($this->router->route($warder->get('frontend.redirect.login', 'home'))); return; } parent::prepareExecute(); $this->token = UserHelper::getToken($this->data['email']); $this->data['activation'] = UserHelper::hashPassword($this->token); }