(Guillermo) Add-email-sender-class

This commit is contained in:
AntonyAntonio 2016-07-13 20:20:22 -03:00
parent b9c7f44a3e
commit 533e34c395
2 changed files with 46 additions and 2 deletions

View File

@ -5,6 +5,7 @@ class LoginController extends Controller {
private $userInstance;
private $session;
private $remembertoken;
public function validations() {
return [
@ -19,8 +20,9 @@ class LoginController extends Controller {
return;
}
if ($this->areCredentialsValid()) {
if ($this->areCredentialsValid() || $this->isTokenValid()) {
$this->createUserSession();
$this->createSessionCookie();
Response::respondSuccess($this->getUserData());
} else {
@ -46,7 +48,8 @@ class LoginController extends Controller {
return array(
'userId' => $userInstance->id,
'userEmail' => $userInstance->email,
'token' => $this->getSession()->getToken()
'token' => $this->getSession()->getToken(),
'rememberToken' => $this->remembertoken
);
}
@ -68,4 +71,25 @@ class LoginController extends Controller {
return $this->session;
}
private function isTokenValid(){
$sessioncookie = SessionCookie::getDataStore(Controller::request('rememberToken'),'token');
if($sessioncookie !== null){
$this->userInstance = $sessioncookie->user;
return true;
}
}
private function createSessionCookie(){
$remember = Controller::request('remember');
if($remember){
$this->remembertoken = md5(uniqid(rand()));
$sessioncookie = new SessionCookie();
$sessioncookie->setProperties(array(
'user' => $this->userInstance->getBeanInstance(),
'token' => $this->remembertoken
));
$sessioncookie->store();
}
}
}

View File

@ -0,0 +1,20 @@
<?php
class SessionCookie extends DataStore {
const TABLE = 'session';
public static function getProps() {
return array (
'user',
'token',
'ip',
'creationDate',
'expirationDate'
);
}
protected function getDefaultProps() {
return array();
}
}