facut pana la video 7

This commit is contained in:
Cerbu Andrei Mihnea
2023-05-10 00:47:48 +03:00
parent 1abdc313f4
commit 90f12ab916
40 changed files with 1644 additions and 41 deletions
@@ -0,0 +1,71 @@
<?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()){
Application::$app->session->setFlash('success', 'Thanks for registering');
$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');
}
}
@@ -0,0 +1,32 @@
<?php
namespace app\controllers;
use app\core\Controller;
use app\core\Request;
class SiteController extends Controller{
public function handleContact(Request $request){
$body = $request->getBody();
return 'handling requested data';
}
public function contact(){
return $this->render('contact');
}
public function home(){
$params = [
'name' => "TheCodeholic"
];
return $this->render('home', $params);
}
public function profile(){
return $this->render('profile');
}
public function _404(){
return $this->render('_404');
}
}