Merge pull request #2597 from addvanced/bugfix/oauth-login-creates-user
fix: OAuth Login creates new user and ignores "Registration Allowed"-setting
This commit is contained in:
commit
c6a1eac586
@ -2,8 +2,10 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\InstanceSettings;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||||
|
|
||||||
class OauthController extends Controller
|
class OauthController extends Controller
|
||||||
{
|
{
|
||||||
@ -20,6 +22,11 @@ public function callback(string $provider)
|
|||||||
$oauthUser = get_socialite_provider($provider)->user();
|
$oauthUser = get_socialite_provider($provider)->user();
|
||||||
$user = User::whereEmail($oauthUser->email)->first();
|
$user = User::whereEmail($oauthUser->email)->first();
|
||||||
if (! $user) {
|
if (! $user) {
|
||||||
|
$settings = InstanceSettings::get();
|
||||||
|
if (! $settings->is_registration_enabled) {
|
||||||
|
abort(403, 'Registration is disabled');
|
||||||
|
}
|
||||||
|
|
||||||
$user = User::create([
|
$user = User::create([
|
||||||
'name' => $oauthUser->name,
|
'name' => $oauthUser->name,
|
||||||
'email' => $oauthUser->email,
|
'email' => $oauthUser->email,
|
||||||
@ -31,7 +38,9 @@ public function callback(string $provider)
|
|||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
ray($e->getMessage());
|
ray($e->getMessage());
|
||||||
|
|
||||||
return redirect()->route('login')->withErrors([__('auth.failed.callback')]);
|
$errorCode = $e instanceof HttpException ? 'auth.failed' : 'auth.failed.callback';
|
||||||
|
|
||||||
|
return redirect()->route('login')->withErrors([__($errorCode)]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user