MAPG-69 login user when trying to sign up

This commit is contained in:
Bence Pőcze 2020-06-21 13:40:36 +02:00
parent 10b7766458
commit 285f2dd0ac
3 changed files with 22 additions and 11 deletions

View File

@ -10,6 +10,11 @@
MapGuesser.httpRequest('POST', form.action, function () { MapGuesser.httpRequest('POST', form.action, function () {
if (this.response.error) { if (this.response.error) {
if (this.response.error === 'user_found') {
window.location.replace('/');
return;
}
var errorText; var errorText;
switch (this.response.error) { switch (this.response.error) {
case 'email_not_valid': case 'email_not_valid':
@ -21,12 +26,12 @@
case 'passwords_not_match': case 'passwords_not_match':
errorText = 'The given passwords do not match.' errorText = 'The given passwords do not match.'
break; break;
case 'user_found': case 'user_found_user_not_active':
errorText = 'There is a user already registered with the given email address. Please <a href="/login" title="Login">login here</a>!';
break;
case 'not_active_user_found':
errorText = 'There is a user already registered with the given email address. Please check your email and click on the activation link!'; errorText = 'There is a user already registered with the given email address. Please check your email and click on the activation link!';
break; break;
case 'user_found_password_not_match':
errorText = 'There is a user already registered with the given email address, but the given password is wrong.'
break;
} }
document.getElementById('loading').style.visibility = 'hidden'; document.getElementById('loading').style.visibility = 'hidden';

View File

@ -190,22 +190,28 @@ class LoginController
return new JsonContent($data); return new JsonContent($data);
} }
if (filter_var($this->request->post('email'), FILTER_VALIDATE_EMAIL) === false) {
$data = ['error' => 'email_not_valid'];
return new JsonContent($data);
}
$user = $this->userRepository->getByEmail($this->request->post('email')); $user = $this->userRepository->getByEmail($this->request->post('email'));
if ($user !== null) { if ($user !== null) {
if ($user->getActive()) { if ($user->getActive()) {
if (!$user->checkPassword($this->request->post('password'))) {
$data = ['error' => 'user_found_password_not_match'];
return new JsonContent($data);
}
$this->request->setUser($user);
$data = ['error' => 'user_found']; $data = ['error' => 'user_found'];
} else { } else {
$data = ['error' => 'not_active_user_found']; $data = ['error' => 'user_found_user_not_active'];
} }
return new JsonContent($data); return new JsonContent($data);
} }
if (filter_var($this->request->post('email'), FILTER_VALIDATE_EMAIL) === false) {
$data = ['error' => 'email_not_valid'];
return new JsonContent($data);
}
if ($this->request->session()->has('tmp_user_data')) { if ($this->request->session()->has('tmp_user_data')) {
$tmpUserData = $this->request->session()->get('tmp_user_data'); $tmpUserData = $this->request->session()->get('tmp_user_data');

View File

@ -16,7 +16,7 @@ $jsFiles = [
<?php else: ?> <?php else: ?>
<input class="big fullWidth" type="email" name="email" placeholder="Email address" required autofocus> <input class="big fullWidth" type="email" name="email" placeholder="Email address" required autofocus>
<input class="big fullWidth marginTop" type="password" name="password" placeholder="Password" required minlength="6"> <input class="big fullWidth marginTop" type="password" name="password" placeholder="Password" required minlength="6">
<input class="big fullWidth marginTop" type="password" name="password_confirm" placeholder="Password confirmation" required minlength="6"> <input class="big fullWidth marginTop" type="password" name="password_confirm" placeholder="Password confirmation" minlength="6">
<?php endif; ?> <?php endif; ?>
<p id="signupFormError" class="formError justify marginTop"></p> <p id="signupFormError" class="formError justify marginTop"></p>
<div class="right marginTop"> <div class="right marginTop">