From 6f9664b2ad98df41b2135fc1c72c4f03e3e2eb80 Mon Sep 17 00:00:00 2001 From: Arthur Wambst Date: Sat, 21 Jun 2025 17:57:52 +0200 Subject: [PATCH] actions + authelia --- {.github => .gitea}/FUNDING.yml | 0 .../ISSUE_TEMPLATE/bug-report.yml | 0 {.github => .gitea}/ISSUE_TEMPLATE/config.yml | 0 {.github => .gitea}/workflows/build.yaml | 0 {.github => .gitea}/workflows/ci.yaml | 0 {.github => .gitea}/workflows/cla.yaml | 0 .../workflows/docker-publish.yml | 0 {.github => .gitea}/workflows/lint.yaml | 0 {.github => .gitea}/workflows/release.yaml | 0 .../OAuth/Providers/AutheliaProvider.php | 74 +++++++++++++++++++ app/Providers/AppServiceProvider.php | 19 ++--- app/Providers/EventServiceProvider.php | 4 +- 12 files changed, 82 insertions(+), 15 deletions(-) rename {.github => .gitea}/FUNDING.yml (100%) rename {.github => .gitea}/ISSUE_TEMPLATE/bug-report.yml (100%) rename {.github => .gitea}/ISSUE_TEMPLATE/config.yml (100%) rename {.github => .gitea}/workflows/build.yaml (100%) rename {.github => .gitea}/workflows/ci.yaml (100%) rename {.github => .gitea}/workflows/cla.yaml (100%) rename {.github => .gitea}/workflows/docker-publish.yml (100%) rename {.github => .gitea}/workflows/lint.yaml (100%) rename {.github => .gitea}/workflows/release.yaml (100%) create mode 100644 app/Extensions/OAuth/Providers/AutheliaProvider.php diff --git a/.github/FUNDING.yml b/.gitea/FUNDING.yml similarity index 100% rename from .github/FUNDING.yml rename to .gitea/FUNDING.yml diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.gitea/ISSUE_TEMPLATE/bug-report.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/bug-report.yml rename to .gitea/ISSUE_TEMPLATE/bug-report.yml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.gitea/ISSUE_TEMPLATE/config.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/config.yml rename to .gitea/ISSUE_TEMPLATE/config.yml diff --git a/.github/workflows/build.yaml b/.gitea/workflows/build.yaml similarity index 100% rename from .github/workflows/build.yaml rename to .gitea/workflows/build.yaml diff --git a/.github/workflows/ci.yaml b/.gitea/workflows/ci.yaml similarity index 100% rename from .github/workflows/ci.yaml rename to .gitea/workflows/ci.yaml diff --git a/.github/workflows/cla.yaml b/.gitea/workflows/cla.yaml similarity index 100% rename from .github/workflows/cla.yaml rename to .gitea/workflows/cla.yaml diff --git a/.github/workflows/docker-publish.yml b/.gitea/workflows/docker-publish.yml similarity index 100% rename from .github/workflows/docker-publish.yml rename to .gitea/workflows/docker-publish.yml diff --git a/.github/workflows/lint.yaml b/.gitea/workflows/lint.yaml similarity index 100% rename from .github/workflows/lint.yaml rename to .gitea/workflows/lint.yaml diff --git a/.github/workflows/release.yaml b/.gitea/workflows/release.yaml similarity index 100% rename from .github/workflows/release.yaml rename to .gitea/workflows/release.yaml diff --git a/app/Extensions/OAuth/Providers/AutheliaProvider.php b/app/Extensions/OAuth/Providers/AutheliaProvider.php new file mode 100644 index 000000000..8f67c29d7 --- /dev/null +++ b/app/Extensions/OAuth/Providers/AutheliaProvider.php @@ -0,0 +1,74 @@ + env('OAUTH_AUTHELIA_BASE_URL'), + 'client_id' => env('OAUTH_AUTHELIA_CLIENT_ID'), + 'client_secret' => env('OAUTH_AUTHELIA_CLIENT_SECRET'), + ]; + } + + public function getSettingsForm(): array + { + return array_merge(parent::getSettingsForm(), [ + TextInput::make('OAUTH_AUTHELIA_BASE_URL') + ->label('Base URL') + ->placeholder('Base URL') + ->columnSpan(2) + ->required() + ->url() + ->autocomplete(false) + ->default(env('OAUTH_AUTHELIA_BASE_URL')), + TextInput::make('OAUTH_AUTHELIA_DISPLAY_NAME') + ->label('Display Name') + ->placeholder('Display Name') + ->autocomplete(false) + ->default(env('OAUTH_AUTHELIA_DISPLAY_NAME', 'Authelia')), + ColorPicker::make('OAUTH_AUTHELIA_DISPLAY_COLOR') + ->label('Display Color') + ->placeholder('#b2c6fe') + ->default(env('OAUTH_AUTHELIA_DISPLAY_COLOR', '#b2c6fe')) + ->hex(), + ]); + } + + public function getName(): string + { + return env('OAUTH_AUTHELIA_DISPLAY_NAME', 'Authelia'); + } + + public function getHexColor(): string + { + return env('OAUTH_AUTHELIA_DISPLAY_COLOR', '#b2c6fe'); + } + + public static function register(Application $app): self + { + return new self($app); + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 4c3e7ea34..e31698247 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -11,15 +11,12 @@ use App\Checks\PanelVersionCheck; use App\Checks\ScheduleCheck; use App\Checks\UsedDiskSpaceCheck; use App\Extensions\Avatar\Providers\GravatarProvider; +use App\Extensions\Avatar\Providers\LocalAvatarProvider; use App\Extensions\Avatar\Providers\UiAvatarsProvider; use App\Extensions\OAuth\Providers\GitlabProvider; use App\Models; use App\Extensions\Captcha\Providers\TurnstileProvider; -use App\Extensions\Features\GSLToken; -use App\Extensions\Features\JavaVersion; -use App\Extensions\Features\MinecraftEula; -use App\Extensions\Features\PIDLimit; -use App\Extensions\Features\SteamDiskSpace; +use App\Extensions\OAuth\Providers\AutheliaProvider; use App\Extensions\OAuth\Providers\AuthentikProvider; use App\Extensions\OAuth\Providers\CommonProvider; use App\Extensions\OAuth\Providers\DiscordProvider; @@ -82,7 +79,6 @@ class AppServiceProvider extends ServiceProvider 'ssh_key' => Models\UserSSHKey::class, 'task' => Models\Task::class, 'user' => Models\User::class, - 'node' => Models\Node::class, ]); Http::macro( @@ -115,7 +111,8 @@ class AppServiceProvider extends ServiceProvider CommonProvider::register($app, 'bitbucket', null, 'tabler-brand-bitbucket-f', '#205081'); CommonProvider::register($app, 'slack', null, 'tabler-brand-slack', '#6ecadc'); - // Additional OAuth providers from socialiteproviders.com + // Additional OAuth providers from socialiteproviders.com + AutheliaProvider::register($app); AuthentikProvider::register($app); DiscordProvider::register($app); SteamProvider::register($app); @@ -126,13 +123,7 @@ class AppServiceProvider extends ServiceProvider // Default Avatar providers GravatarProvider::register(); UiAvatarsProvider::register(); - - // Default Feature providers - GSLToken::register($app); - JavaVersion::register($app); - MinecraftEula::register($app); - PIDLimit::register($app); - SteamDiskSpace::register($app); + LocalAvatarProvider::register(); FilamentColor::register([ 'danger' => Color::Red, diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 50a6e42cd..a2bf9c0d0 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -1,5 +1,4 @@ [DispatchWebhooks::class], 'eloquent.deleted*' => [DispatchWebhooks::class], 'eloquent.updated*' => [DispatchWebhooks::class], + \SocialiteProviders\Manager\SocialiteWasCalled::class => [ + \SocialiteProviders\Authelia\AutheliaExtendSocialite::class.'@handle', + ], ]; }