mirror of
https://github.com/opensupports/opensupports.git
synced 2025-07-31 01:35:15 +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 $userInstance;
|
||||||
private $session;
|
private $session;
|
||||||
|
private $remembertoken;
|
||||||
|
|
||||||
public function validations() {
|
public function validations() {
|
||||||
return [
|
return [
|
||||||
@ -19,8 +20,9 @@ class LoginController extends Controller {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->areCredentialsValid()) {
|
if ($this->areCredentialsValid() || $this->isTokenValid()) {
|
||||||
$this->createUserSession();
|
$this->createUserSession();
|
||||||
|
$this->createSessionCookie();
|
||||||
|
|
||||||
Response::respondSuccess($this->getUserData());
|
Response::respondSuccess($this->getUserData());
|
||||||
} else {
|
} else {
|
||||||
@ -46,7 +48,8 @@ class LoginController extends Controller {
|
|||||||
return array(
|
return array(
|
||||||
'userId' => $userInstance->id,
|
'userId' => $userInstance->id,
|
||||||
'userEmail' => $userInstance->email,
|
'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;
|
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