Ajoute la vue d'erreur et un validateur

This commit is contained in:
Colin FRIZOT
2022-12-06 08:48:21 +01:00
parent 4a59f41859
commit 8118cfe188
5 changed files with 66 additions and 28 deletions

View File

@@ -7,33 +7,37 @@ namespace Silex\Controller;
use Silex\DI\DI;
use Silex\Http\HttpResponse;
use Silex\Model\User;
use Silex\Validation\UserValidation;
class SecurityController
{
public function login(DI $di): HttpResponse
{
$fail = false;
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$errors = [];
if ($_SERVER['REQUEST_METHOD'] === 'POST' && UserValidation::isValidLogin($_POST,$errors)) {
$success = $di->getSecurity()->initLogin($_POST['login'], $_POST['password']);
if ($success) {
HttpResponse::redirect($di->getRouter()->url(''));
} else {
$errors[] = 'Login or password invalid';
}
$fail = !$success;
}
return HttpResponse::found('login', ['fail' => $fail]);
return HttpResponse::found('login', ['errors' => $errors]);
}
public function register(DI $di): HttpResponse
{
$fail = false;
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$errors = [];
if ($_SERVER['REQUEST_METHOD'] === 'POST' && UserValidation::isValidUser($_POST,$errors)) {
$user = $di->getSecurity()->register(User::fromRawPassword($_POST['login'], $_POST['password']));
if ($user !== null) {
HttpResponse::redirect($di->getRouter()->url(''));
}
$fail = $user === null;
if($user === null){
$errors[] = 'Login is already taken';
}
}
return HttpResponse::found('register', ['fail' => $fail]);
return HttpResponse::found('register', ['errors' => $errors]);
}
public function logout(DI $di): void