diff --git a/app/Extensions/OAuth/Providers/DiscordProvider.php b/app/Extensions/OAuth/Providers/DiscordProvider.php index 5156aa547..cf98f8a08 100644 --- a/app/Extensions/OAuth/Providers/DiscordProvider.php +++ b/app/Extensions/OAuth/Providers/DiscordProvider.php @@ -31,8 +31,9 @@ final class DiscordProvider extends OAuthProvider ->content(new HtmlString('
Visit the Discord Developer Portal and click on New Application. Enter a Name (e.g. your panel name) and click on Create.
Copy the Client ID and the Client Secret, you will need them in the final step.
')), Placeholder::make('') ->content(new HtmlString('Under Redirects add the below URL.
')), - TextInput::make('_noenv_redirect') + TextInput::make('_noenv_callback') ->label('Redirect URL') + ->dehydrated() ->disabled() ->hintAction(fn () => request()->isSecure() ? CopyAction::make() : null) ->formatStateUsing(fn () => config('app.url') . (Str::endsWith(config('app.url'), '/') ? '' : '/') . 'auth/oauth/callback/discord'), diff --git a/app/Extensions/OAuth/Providers/GithubProvider.php b/app/Extensions/OAuth/Providers/GithubProvider.php index 3565fc5e2..b8f4852b8 100644 --- a/app/Extensions/OAuth/Providers/GithubProvider.php +++ b/app/Extensions/OAuth/Providers/GithubProvider.php @@ -25,6 +25,7 @@ final class GithubProvider extends OAuthProvider ->content(new HtmlString('Visit the Github Developer Dashboard, go to OAuth Apps and click on New OAuth App.
Enter an Application name (e.g. your panel name), set Homepage URL to your panel url and enter the below url as Authorization callback URL.
')), TextInput::make('_noenv_callback') ->label('Authorization callback URL') + ->dehydrated() ->disabled() ->hintAction(fn () => request()->isSecure() ? CopyAction::make() : null) ->default(fn () => config('app.url') . (Str::endsWith(config('app.url'), '/') ? '' : '/') . 'auth/oauth/callback/github'), diff --git a/app/Filament/Admin/Pages/Settings.php b/app/Filament/Admin/Pages/Settings.php index cac2b4d1a..45416e708 100644 --- a/app/Filament/Admin/Pages/Settings.php +++ b/app/Filament/Admin/Pages/Settings.php @@ -513,8 +513,6 @@ class Settings extends Page implements HasForms "OAUTH_{$id}_ENABLED" => 'true', ], $data); - $data = array_filter($data, fn ($value) => !Str::startsWith($value, '_noenv')); - foreach ($data as $key => $value) { $set($key, $value); } diff --git a/app/Filament/Pages/Auth/EditProfile.php b/app/Filament/Pages/Auth/EditProfile.php index cae29f579..07c1f4ba5 100644 --- a/app/Filament/Pages/Auth/EditProfile.php +++ b/app/Filament/Pages/Auth/EditProfile.php @@ -61,6 +61,8 @@ class EditProfile extends BaseEditProfile protected function getForms(): array { + $oauthProviders = collect(OAuthProvider::get())->filter(fn (OAuthProvider $provider) => $provider->isEnabled())->all(); + return [ 'form' => $this->form( $this->makeForm() @@ -122,24 +124,11 @@ class EditProfile extends BaseEditProfile Tab::make(trans('profile.tabs.oauth')) ->icon('tabler-brand-oauth') - ->visible(function () { - $oauthProviders = OAuthProvider::get(); - foreach ($oauthProviders as $oauthProvider) { - if ($oauthProvider->isEnabled()) { - return true; - } - } - - return false; - }) - ->schema(function () { + ->visible(count($oauthProviders) > 0) + ->schema(function () use ($oauthProviders) { $actions = []; - $oauthProviders = OAuthProvider::get(); foreach ($oauthProviders as $oauthProvider) { - if (!$oauthProvider->isEnabled()) { - continue; - } $id = $oauthProvider->getId(); $name = $oauthProvider->getName(); diff --git a/app/Filament/Pages/Auth/Login.php b/app/Filament/Pages/Auth/Login.php index 681b0b598..5c1795779 100644 --- a/app/Filament/Pages/Auth/Login.php +++ b/app/Filament/Pages/Auth/Login.php @@ -58,11 +58,9 @@ class Login extends BaseLogin { $actions = []; - $oauthProviders = OAuthProvider::get(); + $oauthProviders = collect(OAuthProvider::get())->filter(fn (OAuthProvider $provider) => $provider->isEnabled())->all(); + foreach ($oauthProviders as $oauthProvider) { - if (!$oauthProvider->isEnabled()) { - continue; - } $id = $oauthProvider->getId();