3 namespace BookStack\Auth\Access;
5 use BookStack\Actions\ActivityType;
6 use BookStack\Auth\User;
7 use BookStack\Facades\Activity;
8 use BookStack\Facades\Theme;
9 use BookStack\Theming\ThemeEvents;
15 * Log the given user into the system.
17 public function login(User $user, string $method): void
20 Activity::add(ActivityType::AUTH_LOGIN, "{$method}; {$user->logDescriptor()}");
21 Theme::dispatch(ThemeEvents::AUTH_LOGIN, $method, $user);
23 // Authenticate on all session guards if a likely admin
24 if ($user->can('users-manage') && $user->can('user-roles-manage')) {
25 $guards = ['standard', 'ldap', 'saml2'];
26 foreach ($guards as $guard) {
27 auth($guard)->login($user);
34 * Attempt the login of a user using the given credentials.
35 * Meant to mirror laravel's default guard 'attempt' method
36 * but in a manner that always routes through our login system.
38 public function attempt(array $credentials, string $method, bool $remember = false): bool
40 $result = auth()->attempt($credentials, $remember);
42 $user = auth()->user();
44 $this->login($user, $method);