namespace BookStack\Http\Controllers\Auth;
use BookStack\Exceptions\ConfirmationEmailException;
+use BookStack\Exceptions\SocialSignInException;
use BookStack\Exceptions\UserRegistrationException;
use BookStack\Repos\UserRepo;
use BookStack\Services\EmailConfirmationService;
use BookStack\Services\SocialAuthService;
use BookStack\User;
+use Exception;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Validator;
*/
public function __construct(SocialAuthService $socialAuthService, EmailConfirmationService $emailConfirmationService, UserRepo $userRepo)
{
- $this->middleware('guest');
+ $this->middleware('guest')->except(['socialCallback', 'detachSocialAccount']);
$this->socialAuthService = $socialAuthService;
$this->emailConfirmationService = $emailConfirmationService;
$this->userRepo = $userRepo;
$this->redirectTo = baseUrl('/');
$this->redirectPath = baseUrl('/');
- $this->username = config('auth.method') === 'standard' ? 'email' : 'username';
parent::__construct();
}
protected function checkRegistrationAllowed()
{
if (!setting('registration-enabled')) {
- throw new UserRegistrationException('Registrations are currently disabled.', '/login');
+ throw new UserRegistrationException(trans('auth.registrations_disabled'), '/login');
}
}
$restrictedEmailDomains = explode(',', str_replace(' ', '', setting('registration-restrict')));
$userEmailDomain = $domain = substr(strrchr($userData['email'], "@"), 1);
if (!in_array($userEmailDomain, $restrictedEmailDomains)) {
- throw new UserRegistrationException('That email domain does not have access to this application', '/register');
+ throw new UserRegistrationException(trans('auth.registration_email_domain_invalid'), '/register');
}
}
if (setting('registration-confirmation') || setting('registration-restrict')) {
$newUser->save();
- $this->emailConfirmationService->sendConfirmation($newUser);
+
+ try {
+ $this->emailConfirmationService->sendConfirmation($newUser);
+ } catch (Exception $e) {
+ session()->flash('error', trans('auth.email_confirm_send_error'));
+ }
+
return redirect('/register/confirm');
}
auth()->login($newUser);
- session()->flash('success', 'Thanks for signing up! You are now registered and signed in.');
+ session()->flash('success', trans('auth.register_success'));
return redirect($this->redirectPath());
}
$user->email_confirmed = true;
$user->save();
auth()->login($user);
- session()->flash('success', 'Your email has been confirmed!');
+ session()->flash('success', trans('auth.email_confirm_success'));
$this->emailConfirmationService->deleteConfirmationsByUser($user);
return redirect($this->redirectPath);
}
'email' => 'required|email|exists:users,email'
]);
$user = $this->userRepo->getByEmail($request->get('email'));
+
+ try {
+ $this->emailConfirmationService->sendConfirmation($user);
+ } catch (Exception $e) {
+ session()->flash('error', trans('auth.email_confirm_send_error'));
+ return redirect('/register/confirm');
+ }
+
$this->emailConfirmationService->sendConfirmation($user);
- session()->flash('success', 'Confirmation email resent, Please check your inbox.');
+ session()->flash('success', trans('auth.email_confirm_resent'));
return redirect('/register/confirm');
}
return $this->socialRegisterCallback($socialDriver);
}
} else {
- throw new SocialSignInException('No action defined', '/login');
+ throw new SocialSignInException(trans('errors.social_no_action_defined'), '/login');
}
return redirect()->back();
}
return $this->registerUser($userData, $socialAccount);
}
-
}
\ No newline at end of file