예제 #1
0
 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');
 }
예제 #2
0
파일: Auth.php 프로젝트: skullab/area51
    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');
        }
    }