add login, logout, dashboard methods to user controller
This commit is contained in:
parent
175bd3734b
commit
20cc34ca1e
1 changed files with 54 additions and 0 deletions
|
|
@ -5,15 +5,69 @@ namespace DigiWill\Controllers;
|
|||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
use Psr\Http\Message\RequestInterface as Request;
|
||||
use Slim\Views\Twig;
|
||||
use DigiWill\Repositories\UserRepository;
|
||||
|
||||
class UserController
|
||||
{
|
||||
public function __construct(
|
||||
private UserRepository $userRepo
|
||||
) {}
|
||||
|
||||
public function home(Request $request, Response $response): Response
|
||||
{
|
||||
$this->userRepo->find(1);
|
||||
$view = Twig::fromRequest($request);
|
||||
|
||||
return $view->render($response, 'home.html.twig', [
|
||||
'name' => '',
|
||||
]);
|
||||
}
|
||||
|
||||
public function login(Request $request, Response $response): Response
|
||||
{
|
||||
$view = Twig::fromRequest($request);
|
||||
|
||||
return $view->render($response, 'login.html.twig', [
|
||||
'name' => '',
|
||||
]);
|
||||
}
|
||||
|
||||
public function doLogin(Request $request, Response $response): Response
|
||||
{
|
||||
$_SESSION['user_id'] = 1;
|
||||
$_SESSION['user'] = ['id' => 1, 'email' => 'email@email.com'];
|
||||
|
||||
return $response->withHeader('Location', '/dashboard')->withStatus(302);
|
||||
}
|
||||
|
||||
public function dashboard(Request $request, Response $response): Response
|
||||
{
|
||||
$view = Twig::fromRequest($request);
|
||||
|
||||
return $view->render($response, 'dashboard.html.twig', [
|
||||
'name' => '',
|
||||
]);
|
||||
}
|
||||
|
||||
public function logout(Request $request, Response $response): Response
|
||||
{
|
||||
$_SESSION = [];
|
||||
if (ini_get('session.use_cookies')) {
|
||||
$params = session_get_cookie_params();
|
||||
setcookie(
|
||||
session_name(),
|
||||
'',
|
||||
time() - 42000,
|
||||
$params['path'],
|
||||
$params['domain'],
|
||||
$params['secure'],
|
||||
$params['httponly']
|
||||
);
|
||||
}
|
||||
session_destroy();
|
||||
|
||||
return $response
|
||||
->withHeader('Location', '/')
|
||||
->withStatus(302);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue