Skip to content

Commit 7bf2d2e

Browse files
committed
Add settings for form login / oidc connect / social login
1 parent 6c52f42 commit 7bf2d2e

21 files changed

Lines changed: 720 additions & 54 deletions

File tree

.env.example

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ TWITTER_CLIENT_CALLBACK="${APP_URL}/oauth/callback/twitter"
7575

7676
# This example is based on Keycloak as an OIDC provider
7777
# Make sure you change it based on your own OIDC provider
78-
OIDC_IS_ENABLED=true
7978
OIDC_CLIENT_ID=
8079
OIDC_CLIENT_SECRET=
8180
OIDC_DISCOVERY_ENDPOINT=
@@ -86,3 +85,5 @@ OIDC_URL_ACCESS_TOKEN="${OIDC_DISCOVERY_ENDPOINT}/realms/${OIDC_REALM}/protocol/
8685
OIDC_URL_RESOURCE_OWNER_DETAILS="${OIDC_DISCOVERY_ENDPOINT}/realms/${OIDC_REALM}/protocol/openid-connect/userinfo"
8786
OIDC_SCOPE="openid"
8887

88+
LOGIN_FORM_ENABLED=true
89+
SOCIAL_LOGIN_ENABLED=true

app/Filament/Pages/ManageGeneralSettings.php

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Filament\Forms\Components\Grid;
1111
use Filament\Forms\Components\Select;
1212
use Filament\Forms\Components\TextInput;
13+
use Filament\Forms\Components\Toggle;
1314
use Filament\Pages\Actions\Action;
1415
use Filament\Pages\SettingsPage;
1516
use Illuminate\Contracts\Support\Htmlable;
@@ -63,15 +64,21 @@ protected function getFormSchema(): array
6364
->default(fn() => config('app.name'))
6465
->required(),
6566

66-
Checkbox::make('enable_registration')
67+
Toggle::make('enable_registration')
6768
->label(__('Enable registration?'))
68-
->helperText(__('If enabled, any user can create an account in this platform.
69-
But an administration need to give them permissions.')),
69+
->helperText(__('If enabled, any user can create an account in this platform. But an administration need to give them permissions.')),
7070

71-
Checkbox::make('enable_social_login')
71+
Toggle::make('enable_social_login')
7272
->label(__('Enable social login?'))
73-
->helperText(__('If enabled, configured users can login via their
74-
social accounts.')),
73+
->helperText(__('If enabled, configured users can login via their social accounts.')),
74+
75+
Toggle::make('enable_login_form')
76+
->label(__('Enable form login?'))
77+
->helperText(__('If enabled, a login form will be visible on the login page.')),
78+
79+
Toggle::make('enable_oidc_login')
80+
->label(__('Enable OIDC login?'))
81+
->helperText(__('If enabled, an OIDC Connect button will be visible on the login page.')),
7582

7683
Select::make('site_language')
7784
->label(__('Site language'))

app/Providers/AppServiceProvider.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ private function configureApp(): void
8585
Config::set('filament-breezy.enable_registration', $settings->enable_registration ?? false);
8686
Config::set('filament-socialite.registration', $settings->enable_registration ?? false);
8787
Config::set('filament-socialite.enabled', $settings->enable_social_login ?? false);
88+
Config::set('system.login_form.is_enabled', $settings->enable_login_form ?? false);
89+
Config::set('services.oidc.is_enabled', $settings->enable_oidc_login ?? false);
8890
} catch (QueryException $e) {
8991
// Error: No database configured yet
9092
}

app/Settings/GeneralSettings.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ class GeneralSettings extends Settings
1313
public string|null $enable_social_login;
1414
public string|null $site_language;
1515
public string|null $default_role;
16+
public string|null $enable_login_form;
17+
public string|null $enable_oidc_login;
1618

1719
public static function group(): string
1820
{

config/services.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
],
5757

5858
'oidc' => [
59-
'is_enabled' => env('OIDC_IS_ENABLED'),
59+
'is_enabled' => true,
6060
'client_id' => env('OIDC_CLIENT_ID'),
6161
'client_secret' => env('OIDC_CLIENT_SECRET'),
6262
'discovery_endpoint' => env('OIDC_DISCOVERY_ENDPOINT'),

config/system.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
return [
44

5+
// Login form
6+
'login_form' => [
7+
8+
// Enabled
9+
'is_enabled' => true
10+
11+
],
12+
513
// Locales
614
'locales' => [
715

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
use Spatie\LaravelSettings\Migrations\SettingsMigration;
4+
5+
class AddLoginFormOidcEnabledFlagsToGeneralSettings extends SettingsMigration
6+
{
7+
public function up(): void
8+
{
9+
$this->migrator->add('general.enable_login_form', config('system.login_form.is_enabled'));
10+
$this->migrator->add('general.enable_oidc_login', config('services.oidc.is_enabled'));
11+
}
12+
}

lang/fr.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,5 +261,11 @@
261261
"The platform default role (used mainly in OIDC Connect).": "Le rôle par défaut de la plateforme (utilisé principal par la connexion OIDC).",
262262
"OIDC Connect error": "Erreur de connection OIDC",
263263
"Invalid account!": "Compte incorrect !",
264-
"OIDC Connect": "Connexion OIDC"
264+
"OIDC Connect": "Connexion OIDC",
265+
"Enable form login?": "Activer la connexion avec formulaire ?",
266+
"Enable OIDC login?": "Activer la connexion avec OIDC ?",
267+
"If enabled, any user can create an account in this platform. But an administration need to give them permissions.": "Si activé, n'importe quel utilisateur peut créer un compte sur cette plateforme. Mais une administration doit leur donner des autorisations.",
268+
"If enabled, configured users can login via their social accounts.": "Si activé, les utilisateurs configurés peuvent se connecter via leurs comptes sociaux.",
269+
"If enabled, a login form will be visible on the login page.": "Si activé, un formulaire de connexion sera visible sur la page de connexion.",
270+
"If enabled, an OIDC Connect button will be visible on the login page.": "S'il est activé, un bouton OIDC Connect sera visible sur la page de connexion."
265271
}

lang/sv.json

Lines changed: 57 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
"If checked, this type will be automatically affected to new tickets": "Om det är markerat kommer denna typ automatiskt att påverkas av nya biljetter",
5252
"If custom type selected, you need to configure project specific statuses": "Om anpassad typ väljs måste du konfigurera projektspecifika statusar",
5353
"If not selected, an image will be generated based on the project name": "Om det inte är valt kommer en bild att genereras baserat på projektnamnet",
54-
"Include not affected tickets": "Inkludera ej berörda biljetter",
54+
"Show only not affected tickets": "Visa endast ej berörda biljetter",
5555
"Kanban": "Kanban",
5656
"Kanban board updated": "Kanban-tavlan uppdaterad",
5757
"Last update": "Senaste uppdateringen",
@@ -206,5 +206,60 @@
206206
"Sprints": "Sprintar",
207207
"Export hours": "Export timmar",
208208
"Sprint": "Sprinta",
209-
"The creation of a new Sprint will create a linked Epic into to the Road Map": "Skapandet av en ny Sprint kommer att skapa en länkad Epic till vägkartan"
209+
"The creation of a new Sprint will create a linked Epic into to the Road Map": "Skapandet av en ny Sprint kommer att skapa en länkad Epic till vägkartan",
210+
"Board": "Styrelse",
211+
"Choose a project to show it's board": "Välj ett projekt för att visa dess tavla",
212+
"Search": "Sök",
213+
"Back to board": "Tillbaka till brädet",
214+
"Y-m-d": "Å-m-d",
215+
"Scrum board": "Scrum board",
216+
"Kanban board": "Kanban styrelse",
217+
"Important:": "Viktig:",
218+
"Choose tickets to associate to this sprint": "Välj biljetter att associera till denna sprint",
219+
"Tickets associated with sprint": "Biljetter i samband med sprint",
220+
"Associated tickets": "Tillhörande biljetter",
221+
"days": "dagar",
222+
"In this section you can choose one of your projects to show it's Scrum or Kanban board": "I det här avsnittet kan du välja ett av dina projekt för att visa dess Scrum- eller Kanban-bräda",
223+
"No active sprint for this project!": "Ingen aktiv sprint för detta projekt!",
224+
"Manage sprints": "Hantera spurter",
225+
"Click the below button to manage project's sprints": "Klicka på knappen nedan för att hantera projektets sprints",
226+
"Remaining": "Återstående",
227+
"Remaining:": "Återstående:",
228+
"If you think a sprint should be started, please contact an administrator": "Om du tycker att en sprint bör startas, kontakta en administratör",
229+
"in": "i",
230+
"Next sprint:": "Nästa sprint:",
231+
"Sprint ended at": "Sprinten slutade kl",
232+
"Sprint started at": "Sprint startade kl",
233+
"Started at:": "Började på:",
234+
"Jira import": "Jira import",
235+
"Jira login": "Jira inloggning",
236+
"Jira projects": "Jira-projekt",
237+
"Jira tickets": "Jira biljetter",
238+
"Username": "Användarnamn",
239+
"Password": "Lösenord",
240+
"Your jira account username": "Ditt jira-konto användarnamn",
241+
"Your jira account password": "Ditt lösenord för jira-kontot",
242+
"Important: Your jira credentials are only used to communicate with jira REST API, and will not be stored in this application": "Viktigt: Dina jira-uppgifter används endast för att kommunicera med jira REST API och kommer inte att lagras i denna applikation",
243+
"Use this section to login into your jira account and import tickets to this application": "Använd det här avsnittet för att logga in på ditt jira-konto och importera biljetter till denna applikation",
244+
"Host": "Värd",
245+
"The url used to access your jira account": "Den URL som används för att komma åt ditt jira-konto",
246+
"Your jira credentials are incorrect, please go to previous step and re-enter your jira credentials": "Dina jira-uppgifter är felaktiga, gå till föregående steg och ange dina jira-uppgifter igen",
247+
"Loading jira projects, please wait...": "Laddar jira-projekt, vänta...",
248+
"Choose your jira projects to import": "Välj dina jira-projekt att importera",
249+
"No tickets found!": "Inga biljetter hittades!",
250+
"Tickets for the project:": "Biljetter till projektet:",
251+
"Import": "Importera",
252+
"Loading projects, please wait...": "Laddar projekt, vänta...",
253+
"Loading tickets, please wait...": "Laddar biljetter, vänta...",
254+
"Please choose at least a jira ticket to import": "Välj minst en jirabiljett att importera",
255+
"The importation job is started, when finished you will be notified": "Importjobbet påbörjas, när det är klart kommer du att meddelas",
256+
"Jira importation": "Jira import",
257+
"Jira tickets successfully imported": "Jira-biljetter har importerats",
258+
"Before you can import jira tickets you need to have all the referentials configured": "Innan du kan importera jira-biljetter måste du ha alla referenser konfigurerade",
259+
"No content found in jira ticket": "Inget innehåll hittades i jira-biljetten",
260+
"Default role": "Standardroll",
261+
"The platform default role (used mainly in OIDC Connect).": "Plattformens standardroll (används huvudsakligen i OIDC Connect).",
262+
"OIDC Connect error": "OIDC Connect fel",
263+
"Invalid account!": "Ogiltigt konto!",
264+
"OIDC Connect": "OIDC Connect"
210265
}

lang/sw.json

Lines changed: 57 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
"If checked, this type will be automatically affected to new tickets": "Ikichaguliwa, aina hii itaathiriwa kiotomatiki kwa tiketi mpya",
5252
"If custom type selected, you need to configure project specific statuses": "Ikiwa aina maalum imechaguliwa, unahitaji kusanidi hali mahususi za mradi",
5353
"If not selected, an image will be generated based on the project name": "Ikiwa haijachaguliwa, picha itatolewa kulingana na jina la mradi",
54-
"Include not affected tickets": "Jumuisha tiketi ambazo hazijaathiriwa",
54+
"Show only not affected tickets": "Onyesha tu tikiti ambazo hazijaathiriwa",
5555
"Kanban": "Kanban",
5656
"Kanban board updated": "Bodi ya Kanban imesasishwa",
5757
"Last update": "Sasisho la mwisho",
@@ -206,5 +206,60 @@
206206
"Sprints": "Sprints",
207207
"Export hours": "Saa za kuuza nje",
208208
"Sprint": "Sprint",
209-
"The creation of a new Sprint will create a linked Epic into to the Road Map": "Kuundwa kwa Sprint mpya kutaunda Epic iliyounganishwa kwenye Ramani ya Barabara"
209+
"The creation of a new Sprint will create a linked Epic into to the Road Map": "Kuundwa kwa Sprint mpya kutaunda Epic iliyounganishwa kwenye Ramani ya Barabara",
210+
"Board": "Bodi",
211+
"Choose a project to show it's board": "Chagua mradi ili kuonyesha ubao wake",
212+
"Search": "Tafuta",
213+
"Back to board": "Rudi kwenye ubao",
214+
"Y-m-d": "Y-m-d",
215+
"Scrum board": "Ubao wa Scrum",
216+
"Kanban board": "Bodi ya Kanban",
217+
"Important:": "Muhimu:",
218+
"Choose tickets to associate to this sprint": "Chagua tikiti za kuhusishwa na mbio hizi za mbio",
219+
"Tickets associated with sprint": "Tikiti zinazohusiana na sprint",
220+
"Associated tickets": "Tikiti zinazohusiana",
221+
"days": "siku",
222+
"In this section you can choose one of your projects to show it's Scrum or Kanban board": "Katika sehemu hii unaweza kuchagua moja ya miradi yako kuonyesha ni Scrum au bodi ya Kanban",
223+
"No active sprint for this project!": "Hakuna mbio fupi za mradi huu!",
224+
"Manage sprints": "Dhibiti sprints",
225+
"Click the below button to manage project's sprints": "Bofya kitufe kilicho hapa chini ili kudhibiti mbio za mradi",
226+
"Remaining": "Iliyosalia",
227+
"Remaining:": "Zilizosalia:",
228+
"If you think a sprint should be started, please contact an administrator": "Ikiwa unafikiri mbio za kukimbia zinapaswa kuanzishwa, tafadhali wasiliana na msimamizi",
229+
"in": "katika",
230+
"Next sprint:": "Mbio zinazofuata:",
231+
"Sprint ended at": "Sprint iliisha saa",
232+
"Sprint started at": "Sprint ilianza saa",
233+
"Started at:": "Ilianza saa:",
234+
"Jira import": "Jira kuagiza",
235+
"Jira login": "Jira ingia",
236+
"Jira projects": "Miradi ya Jira",
237+
"Jira tickets": "Tikiti za Jira",
238+
"Username": "Jina la mtumiaji",
239+
"Password": "Nenosiri",
240+
"Your jira account username": "Jina la mtumiaji la akaunti yako ya jira",
241+
"Your jira account password": "Nenosiri lako la akaunti ya jira",
242+
"Important: Your jira credentials are only used to communicate with jira REST API, and will not be stored in this application": "Muhimu: Vitambulisho vyako vya jira vinatumika tu kuwasiliana na jira REST API, na hazitahifadhiwa katika programu hii.",
243+
"Use this section to login into your jira account and import tickets to this application": "Tumia sehemu hii kuingia katika akaunti yako ya jira na kuleta tikiti kwa programu hii",
244+
"Host": "Mwenyeji",
245+
"The url used to access your jira account": "Url iliyotumiwa kufikia akaunti yako ya jira",
246+
"Your jira credentials are incorrect, please go to previous step and re-enter your jira credentials": "Kitambulisho chako cha jira si sahihi, tafadhali nenda kwa hatua iliyotangulia na uweke tena kitambulisho chako cha jira",
247+
"Loading jira projects, please wait...": "Inapakia miradi ya jira, tafadhali subiri...",
248+
"Choose your jira projects to import": "Chagua miradi yako ya jira ya kuagiza",
249+
"No tickets found!": "Hakuna tikiti zilizopatikana!",
250+
"Tickets for the project:": "Tikiti za mradi:",
251+
"Import": "Ingiza",
252+
"Loading projects, please wait...": "Inapakia miradi, tafadhali subiri...",
253+
"Loading tickets, please wait...": "Inapakia tikiti, tafadhali subiri...",
254+
"Please choose at least a jira ticket to import": "Tafadhali chagua angalau tikiti ya jira ya kuagiza",
255+
"The importation job is started, when finished you will be notified": "Kazi ya uagizaji imeanza, ikikamilika utajulishwa",
256+
"Jira importation": "Uagizaji wa Jira",
257+
"Jira tickets successfully imported": "Tikiti za Jira zimeingizwa kwa mafanikio",
258+
"Before you can import jira tickets you need to have all the referentials configured": "Kabla ya kuingiza tikiti za jira unahitaji kuwa na marejeleo yote yamesanidiwa",
259+
"No content found in jira ticket": "Hakuna maudhui yaliyopatikana katika tikiti ya jira",
260+
"Default role": "Jukumu chaguomsingi",
261+
"The platform default role (used mainly in OIDC Connect).": "Jukumu chaguo-msingi la jukwaa (hutumiwa hasa katika OIDC Connect).",
262+
"OIDC Connect error": "Hitilafu ya OIDC Connect",
263+
"Invalid account!": "Akaunti batili!",
264+
"OIDC Connect": "Unganisha OIDC"
210265
}

0 commit comments

Comments
 (0)