fix bugs and requests of PO : less informations for login and view #62

Merged
samuel.berion merged 2 commits from connection into master 1 year ago

@ -64,14 +64,6 @@ class AuthController {
*/
public function login(array $request, MutableSessionHandle $session): HttpResponse {
$fails = [];
$request = HttpRequest::from($request, $fails, [
"password" => [Validators::lenBetween(6, 256)],
"email" => [Validators::email(), Validators::lenBetween(5, 256)],
]);
if (!empty($fails)) {
return ViewHttpResponse::twig("display_login.html.twig", ['fails' => $fails]);
}
$account = $this->model->login($request['email'], $request['password'], $fails);
if (!empty($fails)) {
return ViewHttpResponse::twig("display_login.html.twig", ['fails' => $fails]);

@ -57,14 +57,13 @@
}
{% endfor %}
.inscr{
.inscr {
font-size: small;
text-align: right;
}
#buttons{
display: flex;
justify-content: space-between;
justify-content: center;
padding: 10px 20px;
}
@ -90,22 +89,19 @@
<div class="form-group">
{% for name in fails %}
<label class="error-messages"> {{ name.getFieldName() }} : {{ name.getMessage() }} </label>
<label class="error-messages"> {{ name.getMessage() }} </label>
{% endfor %}
<label for="email">Email :</label>
<input type="text" id="email" name="email" required>
<label for="password">Mot de passe :</label>
<input type="password" id="password" name="password" required>
<p class = "inscr">Vous n'avez pas de compte ?</p>
</div>
<div id = "buttons">
<input class = "button" type="submit" value="S'identifier">
<button class = "button" onclick="location.pathname='{{ path('/register') }}'" >S'inscrire</button>
</div>
<a href="{{ path('/register') }}" class="inscr">Vous n'avez pas de compte ?</a>
<br><br>
<div id = "buttons">
<input class = "button" type="submit" value="Se connecter">
</div>
</form>
</div>
</body>
</html>

@ -64,7 +64,7 @@
#buttons{
display: flex;
justify-content: space-between;
justify-content: center;
padding: 10px 20px;
}
@ -102,11 +102,11 @@
<input type="password" id="confirmpassword" name="confirmpassword" required>
<label for="email">Email :</label>
<input type="text" id="email" name="email" required>
<p class = "inscr">Vous avez déja un compte ?</p>
<a href="{{ path('/login') }}" class="inscr">Vous avez déjà un compte ?</a>
</div>
<div id = "buttons">
<input class = "button" type="submit" value="S'identifier">
<button class = "button" onclick="location.pathname='{{ path('/login') }}'" >Se connecter</button>
<input class = "button" type="submit" value="Créer votre compte">
</div>
</form>
</div>

@ -63,16 +63,10 @@ class AuthModel {
*/
public function login(string $email, string $password, array &$failures): ?Account {
$hash = $this->gateway->getHash($email);
if ($hash == null) {
$failures[] = new FieldValidationFail("email", "l'addresse email n'est pas connue.");
if ($hash == null or (!password_verify($password, $hash))) {
$failures[] = new ValidationFail("email","Adresse email ou mot de passe invalide");
return null;
}
if (!password_verify($password, $hash)) {
$failures[] = new FieldValidationFail("password", "Mot de passe invalide.");
return null;
}
return $this->gateway->getAccountFromMail($email);
}

Loading…
Cancel
Save