diff --git a/app/Http/Controllers/Auth/PasswordController.php b/app/Http/Controllers/Auth/PasswordController.php index 6916409..56112b8 100644 --- a/app/Http/Controllers/Auth/PasswordController.php +++ b/app/Http/Controllers/Auth/PasswordController.php @@ -15,6 +15,20 @@ class PasswordController extends Controller */ public function update(Request $request): RedirectResponse { + // If user logged in with Discord and has not yet a password, allow to set password + if ($request->user()->discord_id && is_null($request->user()->password)) + { + $validated = $request->validateWithBag('updatePassword', [ + 'password' => ['required', Password::defaults(), 'confirmed'], + ]); + + $request->user()->update([ + 'password' => Hash::make($validated['password']), + ]); + + return back()->with('status', 'password-updated'); + } + $validated = $request->validateWithBag('updatePassword', [ 'current_password' => ['required', 'current_password'], 'password' => ['required', Password::defaults(), 'confirmed'], diff --git a/resources/views/profile/partials/update-password-form.blade.php b/resources/views/profile/partials/update-password-form.blade.php index acd200d..5172eff 100644 --- a/resources/views/profile/partials/update-password-form.blade.php +++ b/resources/views/profile/partials/update-password-form.blade.php @@ -7,17 +7,33 @@
{{ __('Ensure your account is using a long, random password to stay secure.') }}
+ + @if ($user->discord_id && is_null($user->password)) ++ {{ __('You currently don\'t have a password set, as you use Discord authentication. You can set a password to be able to login with email & password.') }} +
++ {{ __('Both Discord and email login are enabled.') }} +
+