actions + authelia
This commit is contained in:
parent
c61b6920b9
commit
6f9664b2ad
74
app/Extensions/OAuth/Providers/AutheliaProvider.php
Normal file
74
app/Extensions/OAuth/Providers/AutheliaProvider.php
Normal 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);
|
||||
}
|
||||
}
|
@ -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,
|
||||
|
@ -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',
|
||||
],
|
||||
];
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user