| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- /**
- * Created by PhpStorm.
- * User: giancarlo
- * Date: 28/06/2018
- * Time: 16:52
- */
- namespace OpenMind\Web;
- use OpenMind\System\User;
- class Login extends Controller
- {
- public function Login($f3)
- {
- if ($f3->exists('SESSION.user')) {
- $f3->reroute('/homemenu');
- return;
- }
- $f3->clear('SESSION.user');
- $f3->clear('COOKIE.username');
- $f3->set('CONTENT', 'login.tpl');
- echo \Template::instance()->render('masterpage.tpl');
- }
- /**
- * Check if login is valid
- *
- * @param string $username
- * @param string $password
- * @return int|\OpenMind\System\User
- */
- private function checkLogin(string $username, string $password): ?User
- {
- $user = new User(['username=?', $username]);
- if (!$user->dry()) {
- $exist = password_verify("{$username}|{$password}", $user->saltedpassword);
- if ($exist)
- return $user;
- }
- return null;
- }
- /**
- * Check if username and password are correct
- *
- * @param $f3
- * @throws \Exception
- */
- public function LoginForm($f3)
- {
- $accountData = $this->getSanitizedPostRequest();
- $user = $this->checkLogin($accountData['username'], $accountData['password']);
- if (is_null($user)) {
- $f3->clear('SESSION.user');
- $f3->clear('COOKIE.username');
- $f3->set('CONTENT', 'login.tpl');
- $f3->set('INFOTEXT', 'Dati di accesso non corretti');
- echo \Template::instance()->render('masterpage.tpl');
- return;
- /*http_response_code(500);
- throw new \Exception("Dati di accesso non corretti");*/
- }
- $user->Store();
- $f3->set('COOKIE.username', $accountData['username']);
- $f3->reroute('/homemenu');
- }
- public function Logout($f3)
- {
- $f3->clear('SESSION.user');
- $f3->clear('COOKIE.username');
- $f3->reroute('/');
- }
- }
|