|
|
|
@ -3,10 +3,15 @@
|
|
|
|
|
namespace App\Controller;
|
|
|
|
|
|
|
|
|
|
use App\Gateway\AuthGateway;
|
|
|
|
|
use App\Http\HttpRequest;
|
|
|
|
|
use App\Http\HttpResponse;
|
|
|
|
|
use App\Http\ViewHttpResponse;
|
|
|
|
|
use App\Model\AuthModel;
|
|
|
|
|
use App\Validation\FieldValidationFail;
|
|
|
|
|
use App\Validation\Validators;
|
|
|
|
|
use Twig\Environment;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AuthController {
|
|
|
|
|
private AuthModel $model;
|
|
|
|
|
|
|
|
|
@ -17,42 +22,45 @@ class AuthController {
|
|
|
|
|
$this->model = $model;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function displayRegister() {
|
|
|
|
|
echo $this->twig->render("display_register.html.twig", []);
|
|
|
|
|
public function displayRegister(): HttpResponse {
|
|
|
|
|
return ViewHttpResponse::twig("display_register.html.twig", []);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function confirmRegister(array $request): HttpResponse {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (isset($request['username']) && isset($request['password']) && isset($request['confirmpassword']) && isset($request['email'])) {
|
|
|
|
|
$errors = $this->model->validationRegister($request['username'],$request["password"], $request['confirmpassword'],$request['email']);
|
|
|
|
|
|
|
|
|
|
if (empty($errors)) {
|
|
|
|
|
echo $this->twig->render("display_register_confirm.html.twig", [$request]);
|
|
|
|
|
} else {
|
|
|
|
|
$bad_fields = [];
|
|
|
|
|
$fails = [];
|
|
|
|
|
$request = HttpRequest::from($request, $fails, [
|
|
|
|
|
"username" => [Validators::name(), Validators::lenBetween(0, 32)],
|
|
|
|
|
"password" => [Validators::lenBetween(0, 256)],
|
|
|
|
|
"confirmpassword" => [Validators::lenBetween(0, 256)],
|
|
|
|
|
"email" => [Validators::regex("/@/")]
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
foreach ($errors as $error_code) {
|
|
|
|
|
switch ($error_code) {
|
|
|
|
|
case AuthModel::PASSWORD_CONFIRM_NOT_EQUALS:
|
|
|
|
|
$bad_fields[] = "password";
|
|
|
|
|
$bad_fields[] = "confirmpassword";
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (!empty($fails)) {
|
|
|
|
|
$bad_fields = [];
|
|
|
|
|
foreach ($fails as $err){
|
|
|
|
|
if ($err instanceof FieldValidationFail){
|
|
|
|
|
$bad_fields[] = $err->getFieldName();
|
|
|
|
|
}
|
|
|
|
|
echo $this->twig->render("display_register.html.twig", ['bad_fields' => $bad_fields]);
|
|
|
|
|
}
|
|
|
|
|
return ViewHttpResponse::twig("display_register.html.twig", ['bad_fields' => $bad_fields]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return ;
|
|
|
|
|
$fails = $this->model->validationRegister($request['username'], $request["password"], $request['confirmpassword'], $request['email']);
|
|
|
|
|
if (empty($fails)) {
|
|
|
|
|
$results = $this->model->getUserFields($request['email']);
|
|
|
|
|
return ViewHttpResponse::twig("display_register_confirm.html.twig", ['results' => $results]);
|
|
|
|
|
}
|
|
|
|
|
// Invalid request shape
|
|
|
|
|
|
|
|
|
|
http_response_code(400);
|
|
|
|
|
echo "la requêtte est invalide";
|
|
|
|
|
$bad_fields = [];
|
|
|
|
|
foreach ($fails as $err){
|
|
|
|
|
if ($err instanceof FieldValidationFail){
|
|
|
|
|
$bad_fields[] = $err->getFieldName();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return ViewHttpResponse::twig("display_register.html.twig", ['bad_fields' => $bad_fields]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//GARDER LES EMAIL ET USERNAME ET REGLER SURLIGNAGE DES MDP QUAND CA VA PAS
|
|
|
|
|
|
|
|
|
|
}
|