Works for now...
This commit is contained in:
parent
bcd610f36a
commit
ad26410ae7
@ -1,29 +1,66 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
// TODO: ...
|
// TODO: this stinks...
|
||||||
class User
|
class User
|
||||||
{
|
{
|
||||||
private Session $session;
|
private Session $session;
|
||||||
|
|
||||||
public ?bool $loggedIn;
|
public bool $loggedIn;
|
||||||
public ?string $username;
|
public string $username;
|
||||||
|
public string $password;
|
||||||
|
|
||||||
public function __construct(Session $session)
|
public function __construct(Session $session)
|
||||||
{
|
{
|
||||||
$this->session = $session;
|
$this->session = $session;
|
||||||
|
$this->setProperties();
|
||||||
$this->loggedIn = $this->session->get('loggedIn');
|
|
||||||
$this->username = $this->session->get('username');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function setProperties(): void
|
||||||
|
{
|
||||||
|
if ($this->session->get('loggedIn'))
|
||||||
|
{
|
||||||
|
$this->loggedIn = $this->session->get('loggedIn');
|
||||||
|
$this->username = $this->session->get('username');
|
||||||
|
$this->password = $this->session->get('password');
|
||||||
|
|
||||||
|
if (!$this->authenticate($this->username, $this->password)) {
|
||||||
|
$this->logout();
|
||||||
|
$this->session->flash('Kontodetaljer endret, vennligst logg inn igjen', 'warning');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$this->loggedIn = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set session if user and password match
|
||||||
public function login(string $username, string $password): bool
|
public function login(string $username, string $password): bool
|
||||||
{
|
{
|
||||||
if ($username === 'William' && $password === 'William')
|
if ($this->authenticate($username, $password))
|
||||||
{
|
{
|
||||||
$this->session->set('loggedIn', TRUE);
|
$this->session->set('loggedIn', TRUE);
|
||||||
$this->session->set('username', 'William');
|
$this->session->set('username', $username);
|
||||||
|
$this->session->set('password', $password);
|
||||||
|
$this->setProperties();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check if user and pass match
|
||||||
|
private function authenticate(string $username, string $password): bool
|
||||||
|
{
|
||||||
|
if ($username === 'Willaiam' && $password === 'William')
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function logout(): void
|
||||||
|
{
|
||||||
|
$this->session->set('loggedIn', FALSE);
|
||||||
|
$this->session->remove('username', FALSE);
|
||||||
|
$this->session->remove('password', FALSE);
|
||||||
|
$this->setProperties();
|
||||||
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user