1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-07-28 17:02:04 +03:00

Checked over and aligned registration option behavior across all auth options

- Added tests to cover
This commit is contained in:
Dan Brown
2020-02-02 17:31:00 +00:00
parent e6c6de0848
commit 3991fbe726
20 changed files with 200 additions and 178 deletions

View File

@ -5,6 +5,7 @@ namespace BookStack\Http\Controllers\Auth;
use BookStack\Auth\Access\SocialAuthService;
use BookStack\Exceptions\LoginAttemptEmailNeededException;
use BookStack\Exceptions\LoginAttemptException;
use BookStack\Exceptions\UserRegistrationException;
use BookStack\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;

View File

@ -74,7 +74,7 @@ class RegisterController extends Controller
*/
public function getRegister()
{
$this->registrationService->checkRegistrationAllowed();
$this->registrationService->ensureRegistrationAllowed();
$socialDrivers = $this->socialAuthService->getActiveDrivers();
return view('auth.register', [
'socialDrivers' => $socialDrivers,
@ -87,12 +87,13 @@ class RegisterController extends Controller
*/
public function postRegister(Request $request)
{
$this->registrationService->checkRegistrationAllowed();
$this->registrationService->ensureRegistrationAllowed();
$this->validator($request->all())->validate();
$userData = $request->all();
try {
$this->registrationService->registerUser($userData);
$user = $this->registrationService->registerUser($userData);
auth()->login($user);
} catch (UserRegistrationException $exception) {
if ($exception->getMessage()) {
$this->showErrorNotification($exception->getMessage());

View File

@ -81,7 +81,6 @@ class Saml2Controller extends Controller
return redirect('/login');
}
session()->put('last_login_type', 'saml2');
return redirect()->intended();
}

View File

@ -49,7 +49,7 @@ class SocialController extends Controller
*/
public function socialRegister(string $socialDriver)
{
$this->registrationService->checkRegistrationAllowed();
$this->registrationService->ensureRegistrationAllowed();
session()->put('social-callback', 'register');
return $this->socialAuthService->startRegister($socialDriver);
}
@ -78,7 +78,7 @@ class SocialController extends Controller
// Attempt login or fall-back to register if allowed.
$socialUser = $this->socialAuthService->getSocialUser($socialDriver);
if ($action == 'login') {
if ($action === 'login') {
try {
return $this->socialAuthService->handleLoginCallback($socialDriver, $socialUser);
} catch (SocialSignInAccountNotUsed $exception) {
@ -89,7 +89,7 @@ class SocialController extends Controller
}
}
if ($action == 'register') {
if ($action === 'register') {
return $this->socialRegisterCallback($socialDriver, $socialUser);
}
@ -108,7 +108,6 @@ class SocialController extends Controller
/**
* Register a new user after a registration callback.
* @return RedirectResponse|Redirector
* @throws UserRegistrationException
*/
protected function socialRegisterCallback(string $socialDriver, SocialUser $socialUser)
@ -121,17 +120,11 @@ class SocialController extends Controller
$userData = [
'name' => $socialUser->getName(),
'email' => $socialUser->getEmail(),
'password' => Str::random(30)
'password' => Str::random(32)
];
try {
$this->registrationService->registerUser($userData, $socialAccount, $emailVerified);
} catch (UserRegistrationException $exception) {
if ($exception->getMessage()) {
$this->showErrorNotification($exception->getMessage());
}
return redirect($exception->redirectLocation);
}
$user = $this->registrationService->registerUser($userData, $socialAccount, $emailVerified);
auth()->login($user);
$this->showSuccessNotification(trans('auth.register_success'));
return redirect('/');