mirror of
https://github.com/opensupports/opensupports.git
synced 2025-04-08 18:35:06 +02:00
(Guillermo) Add-email-sender-class
This commit is contained in:
parent
b9c7f44a3e
commit
533e34c395
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
20
server/models/SessionCookie.php
Normal file
20
server/models/SessionCookie.php
Normal 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();
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user