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\ScheduleCheck;
|
||||||
use App\Checks\UsedDiskSpaceCheck;
|
use App\Checks\UsedDiskSpaceCheck;
|
||||||
use App\Extensions\Avatar\Providers\GravatarProvider;
|
use App\Extensions\Avatar\Providers\GravatarProvider;
|
||||||
|
use App\Extensions\Avatar\Providers\LocalAvatarProvider;
|
||||||
use App\Extensions\Avatar\Providers\UiAvatarsProvider;
|
use App\Extensions\Avatar\Providers\UiAvatarsProvider;
|
||||||
use App\Extensions\OAuth\Providers\GitlabProvider;
|
use App\Extensions\OAuth\Providers\GitlabProvider;
|
||||||
use App\Models;
|
use App\Models;
|
||||||
use App\Extensions\Captcha\Providers\TurnstileProvider;
|
use App\Extensions\Captcha\Providers\TurnstileProvider;
|
||||||
use App\Extensions\Features\GSLToken;
|
use App\Extensions\OAuth\Providers\AutheliaProvider;
|
||||||
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\AuthentikProvider;
|
use App\Extensions\OAuth\Providers\AuthentikProvider;
|
||||||
use App\Extensions\OAuth\Providers\CommonProvider;
|
use App\Extensions\OAuth\Providers\CommonProvider;
|
||||||
use App\Extensions\OAuth\Providers\DiscordProvider;
|
use App\Extensions\OAuth\Providers\DiscordProvider;
|
||||||
@ -82,7 +79,6 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
'ssh_key' => Models\UserSSHKey::class,
|
'ssh_key' => Models\UserSSHKey::class,
|
||||||
'task' => Models\Task::class,
|
'task' => Models\Task::class,
|
||||||
'user' => Models\User::class,
|
'user' => Models\User::class,
|
||||||
'node' => Models\Node::class,
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
Http::macro(
|
Http::macro(
|
||||||
@ -115,7 +111,8 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
CommonProvider::register($app, 'bitbucket', null, 'tabler-brand-bitbucket-f', '#205081');
|
CommonProvider::register($app, 'bitbucket', null, 'tabler-brand-bitbucket-f', '#205081');
|
||||||
CommonProvider::register($app, 'slack', null, 'tabler-brand-slack', '#6ecadc');
|
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);
|
AuthentikProvider::register($app);
|
||||||
DiscordProvider::register($app);
|
DiscordProvider::register($app);
|
||||||
SteamProvider::register($app);
|
SteamProvider::register($app);
|
||||||
@ -126,13 +123,7 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
// Default Avatar providers
|
// Default Avatar providers
|
||||||
GravatarProvider::register();
|
GravatarProvider::register();
|
||||||
UiAvatarsProvider::register();
|
UiAvatarsProvider::register();
|
||||||
|
LocalAvatarProvider::register();
|
||||||
// Default Feature providers
|
|
||||||
GSLToken::register($app);
|
|
||||||
JavaVersion::register($app);
|
|
||||||
MinecraftEula::register($app);
|
|
||||||
PIDLimit::register($app);
|
|
||||||
SteamDiskSpace::register($app);
|
|
||||||
|
|
||||||
FilamentColor::register([
|
FilamentColor::register([
|
||||||
'danger' => Color::Red,
|
'danger' => Color::Red,
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Providers;
|
namespace App\Providers;
|
||||||
|
|
||||||
use App\Listeners\DispatchWebhooks;
|
use App\Listeners\DispatchWebhooks;
|
||||||
@ -15,5 +14,8 @@ class EventServiceProvider extends ServiceProvider
|
|||||||
'eloquent.created*' => [DispatchWebhooks::class],
|
'eloquent.created*' => [DispatchWebhooks::class],
|
||||||
'eloquent.deleted*' => [DispatchWebhooks::class],
|
'eloquent.deleted*' => [DispatchWebhooks::class],
|
||||||
'eloquent.updated*' => [DispatchWebhooks::class],
|
'eloquent.updated*' => [DispatchWebhooks::class],
|
||||||
|
\SocialiteProviders\Manager\SocialiteWasCalled::class => [
|
||||||
|
\SocialiteProviders\Authelia\AutheliaExtendSocialite::class.'@handle',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user