actions + authelia

This commit is contained in:
Arthur Wambst 2025-06-21 17:57:52 +02:00
parent c61b6920b9
commit 6f9664b2ad
12 changed files with 82 additions and 15 deletions

View File

@ -0,0 +1,74 @@
<?php
namespace App\Extensions\OAuth\Providers;
use Filament\Forms\Components\ColorPicker;
use Filament\Forms\Components\TextInput;
use Illuminate\Foundation\Application;
use SocialiteProviders\Authelia\Provider;
final class AutheliaProvider extends OAuthProvider
{
public function __construct(protected Application $app)
{
parent::__construct($app);
}
public function getId(): string
{
return 'authelia';
}
public function getProviderClass(): string
{
return Provider::class;
}
public function getServiceConfig(): array
{
return [
'base_url' => 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);
}
}

View File

@ -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,

View File

@ -1,5 +1,4 @@
<?php
namespace App\Providers;
use App\Listeners\DispatchWebhooks;
@ -15,5 +14,8 @@ class EventServiceProvider extends ServiceProvider
'eloquent.created*' => [DispatchWebhooks::class],
'eloquent.deleted*' => [DispatchWebhooks::class],
'eloquent.updated*' => [DispatchWebhooks::class],
\SocialiteProviders\Manager\SocialiteWasCalled::class => [
\SocialiteProviders\Authelia\AutheliaExtendSocialite::class.'@handle',
],
];
}