mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-04-16 17:47:52 +00:00
Updated flow to ensure /register/confirm route is used where needed
Was accidentally skipped during previous updates. Will now be used on saml, ldap & standard registration where required. Uses session to know if the email was just sent and, if so, show the confirmation route.
This commit is contained in:
parent
c029741a17
commit
ff1ee2d71f
5 changed files with 18 additions and 2 deletions
app
tests/Auth
|
@ -74,6 +74,7 @@ class RegistrationService
|
|||
|
||||
try {
|
||||
$this->emailConfirmationService->sendConfirmation($newUser);
|
||||
session()->flash('sent-email-confirmation', true);
|
||||
} catch (Exception $e) {
|
||||
$message = trans('auth.email_confirm_send_error');
|
||||
throw new UserRegistrationException($message, '/register/confirm');
|
||||
|
|
|
@ -44,6 +44,10 @@ class Authenticate
|
|||
], 401);
|
||||
}
|
||||
|
||||
if (session()->get('sent-email-confirmation') === true) {
|
||||
return redirect('/register/confirm');
|
||||
}
|
||||
|
||||
return redirect('/register/confirm/awaiting');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -170,6 +170,11 @@ class AuthTest extends BrowserKitTest
|
|||
->seePageIs('/register/confirm')
|
||||
->seeInDatabase('users', ['name' => $user->name, 'email' => $user->email, 'email_confirmed' => false]);
|
||||
|
||||
$this->visit('/')
|
||||
->seePageIs('/register/confirm/awaiting');
|
||||
|
||||
auth()->logout();
|
||||
|
||||
$this->visit('/')->seePageIs('/login')
|
||||
->type($user->email, '#email')
|
||||
->type($user->password, '#password')
|
||||
|
@ -202,6 +207,10 @@ class AuthTest extends BrowserKitTest
|
|||
->seePageIs('/register/confirm')
|
||||
->seeInDatabase('users', ['name' => $user->name, 'email' => $user->email, 'email_confirmed' => false]);
|
||||
|
||||
$this->visit('/')
|
||||
->seePageIs('/register/confirm/awaiting');
|
||||
|
||||
auth()->logout();
|
||||
$this->visit('/')->seePageIs('/login')
|
||||
->type($user->email, '#email')
|
||||
->type($user->password, '#password')
|
||||
|
|
|
@ -620,7 +620,7 @@ class LdapTest extends BrowserKitTest
|
|||
]
|
||||
]]);
|
||||
|
||||
$this->mockUserLogin()->seePageIs('/register/confirm/awaiting');
|
||||
$this->mockUserLogin()->seePageIs('/register/confirm');
|
||||
$this->seeInDatabase('users', [
|
||||
'email' => $user->email,
|
||||
'email_confirmed' => false,
|
||||
|
|
|
@ -304,7 +304,9 @@ class Saml2Test extends TestCase
|
|||
|
||||
$this->withPost(['SAMLResponse' => $this->acsPostData], function () use ($memberRole, $adminRole) {
|
||||
$acsPost = $this->followingRedirects()->post('/saml2/acs');
|
||||
$acsPost->assertSee('Your email address has not yet been confirmed');
|
||||
|
||||
$this->assertEquals('http://localhost/register/confirm', url()->current());
|
||||
$acsPost->assertSee('Please check your email and click the confirmation button to access BookStack.');
|
||||
$user = User::query()->where('external_auth_id', '=', 'user')->first();
|
||||
|
||||
$userRoleIds = $user->roles()->pluck('id');
|
||||
|
|
Loading…
Add table
Reference in a new issue