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 { public function login(array $request, MutableSessionHandle $session): HttpResponse {
$fails = []; $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); $account = $this->model->login($request['email'], $request['password'], $fails);
if (!empty($fails)) { if (!empty($fails)) {
return ViewHttpResponse::twig("display_login.html.twig", ['fails' => $fails]); return ViewHttpResponse::twig("display_login.html.twig", ['fails' => $fails]);

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

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

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

Loading…
Cancel
Save