70 lines
1.7 KiB
PHP
70 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace app\controllers;
|
|
use app\core\middlewares\AuthMiddleware;
|
|
use app\core\Application;
|
|
use app\core\Controller;
|
|
use app\core\Request;
|
|
use app\core\Response;
|
|
use app\models\LoginForm;
|
|
use app\models\User;
|
|
|
|
class AuthController extends Controller{
|
|
public function __construct(){
|
|
$this->registerMiddleware(new AuthMiddleware(['profile']));
|
|
}
|
|
|
|
public function login(Request $request, Response $response){
|
|
$loginForm = new LoginForm();
|
|
|
|
if($request->isPost()){
|
|
$loginForm->loadData($request->getBody());
|
|
if($loginForm->validate() && $loginForm->login()){
|
|
$response->redirect('home');
|
|
exit;
|
|
}
|
|
|
|
$this->setLayout('auth');
|
|
return $this->render('login', [
|
|
'model' => $loginForm
|
|
]);
|
|
}
|
|
|
|
$this->setLayout('auth');
|
|
return $this->render('login', [
|
|
'model' => $loginForm
|
|
]);
|
|
}
|
|
|
|
public function register(Request $request, $response){
|
|
$user = new User();
|
|
|
|
if($request->isPost()){
|
|
$user->loadData($request->getBody());
|
|
|
|
if($user->validate() && $user->save()){
|
|
$response->redirect('home');
|
|
exit;
|
|
}
|
|
|
|
$this->setLayout('auth');
|
|
return $this->render('register', [
|
|
'model'=>$user
|
|
]);
|
|
}
|
|
|
|
$this->setLayout('auth');
|
|
return $this->render('register', [
|
|
'model'=>$user
|
|
]);
|
|
}
|
|
|
|
public function logout($request, $response){
|
|
Application::$app->logout();
|
|
$response->redirect('/');
|
|
}
|
|
|
|
public function profile(){
|
|
return $this->render('profile');
|
|
}
|
|
} |