public function registerPreValidateAction() { if ($this->request->isPost()) { if ($this->request->isAjax()) { $payload = array('error' => 0); $user = Users::findFirstByEmail($this->request->getPost('email')); if ($user) { $payload['error'] = 1; $payload['message'] = _('Esiste già un utente registrato con questa email'); } return $this->sendAjax($payload); } } return $this->forward('users', 'add'); }
public function forgotPassword($email) { $user = Users::findFirstByEmail($email); if ($user == false) { throw new Auth\Exception(null, 300); } $publicKey = Crypto::createNewRandomKey(); $privateKey = Crypto::createNewRandomKey(); $token = Crypto::encrypt($privateKey, $publicKey); $encodedPublicKey = rawurlencode($publicKey); $encodedToken = rawurlencode($token); $expire = date("Y-m-d H:i:s", time() + TIME_ONE_HOUR); // $forgot = new UsersForgotPassword(); $forgot->users_id = $user->id; $forgot->private_key = $privateKey; $forgot->token = $token; $forgot->expires = $expire; if ($forgot->save() == false) { foreach ($forgot->getMessages() as $message) { $this->flash->error($message); } return false; } // $this->mail->setTo([$email]); $this->mail->setSubject('reset password'); $this->mail->setBody(' <div> <a href="http:' . $this->url->getStaticBaseUri() . 'reset-password?k=' . $encodedPublicKey . '&t=' . $encodedToken . '">reset your passsword here</a> </div> '); $this->mail->send(); //echo '<a href="'.$this->url->getStaticBaseUri().'reset-password?k='.$encodedPublicKey.'&t='.$encodedToken.'">reset your passsword here</a>' ; if (empty($this->mail->getFailedRecipients())) { $this->flash->success('email sent. check your inbox'); } else { $this->flash->error('an error occured'); } }