Skip to content

Commit 99ef619

Browse files
committed
fix: Improve domain check logic in SocialiteController callback method
1 parent d9b4079 commit 99ef619

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/app/Http/Controllers/SocialiteController.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,18 @@ public function login(string $driver): RedirectResponse
2525
public function callback(string $driver): RedirectResponse
2626
{
2727
$socialUser = Socialite::driver($driver)->user();
28+
$inAllowedDomains = in_array(Str::afterLast($socialUser->getEmail(), '@'), config('gemadigital.auto_admin_domains', []));
2829

2930
// Find user
3031
$user = User::query()
3132
->where('email', $socialUser->getEmail())
3233
->first();
3334

3435
if (! $user) {
35-
if (! config('gemadigital.registration_open')) {
36-
return redirect()->route('login')->with('error', 'Registration is closed');
36+
if (! config('gemadigital.registration_open') && ! $inAllowedDomains) {
37+
return redirect()
38+
->route(route(config('gemadigital.routes.list.login', 'backpack.auth.login')))
39+
->with('error', 'Registration is closed');
3740
}
3841

3942
$user = User::create([
@@ -57,7 +60,7 @@ public function callback(string $driver): RedirectResponse
5760
];
5861

5962
// Check user domain
60-
if (in_array(Str::afterLast($user->email, '@'), config('gemadigital.auto_admin_domains', []))) {
63+
if ($inAllowedDomains) {
6164
$user->is_admin = true;
6265
}
6366

0 commit comments

Comments
 (0)