From 52abd959eb39a37690fe7bddcc1b2645b1e8a7fe Mon Sep 17 00:00:00 2001 From: Jens Langhammer Date: Sat, 17 Apr 2021 21:13:33 +0200 Subject: [PATCH] sources/oauth: save null instead of empty string for sources without configurable URLs Signed-off-by: Jens Langhammer --- authentik/sources/oauth/clients/base.py | 6 +- authentik/sources/oauth/clients/oauth1.py | 12 +-- authentik/sources/oauth/clients/oauth2.py | 6 +- .../migrations/0004_auto_20210417_1900.py | 79 +++++++++++++++++++ authentik/sources/oauth/models.py | 8 +- swagger.yaml | 8 ++ web/src/locales/en.po | 52 ++++++------ web/src/locales/pseudo-LOCALE.po | 52 ++++++------ .../pages/sources/oauth/OAuthSourceForm.ts | 27 +++++-- 9 files changed, 176 insertions(+), 74 deletions(-) create mode 100644 authentik/sources/oauth/migrations/0004_auto_20210417_1900.py diff --git a/authentik/sources/oauth/clients/base.py b/authentik/sources/oauth/clients/base.py index 0f4be42b1..533411ad0 100644 --- a/authentik/sources/oauth/clients/base.py +++ b/authentik/sources/oauth/clients/base.py @@ -60,9 +60,9 @@ class BaseOAuthClient: args.update(additional) params = urlencode(args) LOGGER.info("redirect args", **args) - base_url = self.source.authorization_url - if not self.source.type.urls_customizable: - base_url = self.source.type.authorization_url + base_url = self.source.type.authorization_url + if self.source.authorization_url: + base_url = self.source.authorization_url if base_url == "": Event.new( EventAction.CONFIGURATION_ERROR, diff --git a/authentik/sources/oauth/clients/oauth1.py b/authentik/sources/oauth/clients/oauth1.py index 1c8fec181..5be26c5cc 100644 --- a/authentik/sources/oauth/clients/oauth1.py +++ b/authentik/sources/oauth/clients/oauth1.py @@ -28,9 +28,9 @@ class OAuthClient(BaseOAuthClient): if raw_token is not None and verifier is not None: token = self.parse_raw_token(raw_token) try: - access_token_url: str = self.source.access_token_url - if not self.source.type.urls_customizable: - access_token_url = self.source.type.access_token_url or "" + access_token_url: str = self.source.type.access_token_url or "" + if self.source.access_token_url: + access_token_url = self.source.access_token_url response = self.do_request( "post", access_token_url, @@ -51,9 +51,9 @@ class OAuthClient(BaseOAuthClient): "Fetch the OAuth request token. Only required for OAuth 1.0." callback = self.request.build_absolute_uri(self.callback) try: - request_token_url: str = self.source.request_token_url - if not self.source.type.urls_customizable: - request_token_url = self.source.type.request_token_url or "" + request_token_url: str = self.source.type.request_token_url or "" + if self.source.request_token_url: + request_token_url = self.source.request_token_url response = self.do_request( "post", request_token_url, diff --git a/authentik/sources/oauth/clients/oauth2.py b/authentik/sources/oauth/clients/oauth2.py index 92dd34039..c6a6f4248 100644 --- a/authentik/sources/oauth/clients/oauth2.py +++ b/authentik/sources/oauth/clients/oauth2.py @@ -56,9 +56,9 @@ class OAuth2Client(BaseOAuthClient): LOGGER.warning("No code returned by the source") return None try: - access_token_url = self.source.access_token_url - if not self.source.type.urls_customizable: - access_token_url = self.source.type.access_token_url or "" + access_token_url = self.source.type.access_token_url or "" + if self.source.access_token_url: + access_token_url = self.source.access_token_url response = self.session.request( "post", access_token_url, diff --git a/authentik/sources/oauth/migrations/0004_auto_20210417_1900.py b/authentik/sources/oauth/migrations/0004_auto_20210417_1900.py new file mode 100644 index 000000000..a63f479c2 --- /dev/null +++ b/authentik/sources/oauth/migrations/0004_auto_20210417_1900.py @@ -0,0 +1,79 @@ +# Generated by Django 3.2 on 2021-04-17 19:00 +from django.apps.registry import Apps +from django.db import migrations, models +from django.db.backends.base.schema import BaseDatabaseSchemaEditor + + +def update_empty_urls(apps: Apps, schema_editor: BaseDatabaseSchemaEditor): + OAuthSource = apps.get_model("authentik_sources_oauth", "oauthsource") + + db_alias = schema_editor.connection.alias + + for source in OAuthSource.objects.using(db_alias).all(): + changed = False + if source.access_token_url == "": + source.access_token_url = None + changed = True + if source.authorization_url == "": + source.authorization_url = None + changed = True + if source.profile_url == "": + source.profile_url = None + changed = True + if source.request_token_url == "": + source.request_token_url = None + changed = True + + if changed: + source.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ("authentik_sources_oauth", "0003_auto_20210416_0726"), + ] + + operations = [ + migrations.AlterField( + model_name="oauthsource", + name="access_token_url", + field=models.CharField( + help_text="URL used by authentik to retrive tokens.", + max_length=255, + null=True, + verbose_name="Access Token URL", + ), + ), + migrations.AlterField( + model_name="oauthsource", + name="authorization_url", + field=models.CharField( + help_text="URL the user is redirect to to conest the flow.", + max_length=255, + null=True, + verbose_name="Authorization URL", + ), + ), + migrations.AlterField( + model_name="oauthsource", + name="profile_url", + field=models.CharField( + help_text="URL used by authentik to get user information.", + max_length=255, + null=True, + verbose_name="Profile URL", + ), + ), + migrations.AlterField( + model_name="oauthsource", + name="request_token_url", + field=models.CharField( + help_text="URL used to request the initial token. This URL is only required for OAuth 1.", + max_length=255, + null=True, + verbose_name="Request Token URL", + ), + ), + migrations.RunPython(update_empty_urls), + ] diff --git a/authentik/sources/oauth/models.py b/authentik/sources/oauth/models.py index b011f72be..c14caa43f 100644 --- a/authentik/sources/oauth/models.py +++ b/authentik/sources/oauth/models.py @@ -19,7 +19,7 @@ class OAuthSource(Source): provider_type = models.CharField(max_length=255) request_token_url = models.CharField( - blank=True, + null=True, max_length=255, verbose_name=_("Request Token URL"), help_text=_( @@ -28,19 +28,19 @@ class OAuthSource(Source): ) authorization_url = models.CharField( max_length=255, - blank=True, + null=True, verbose_name=_("Authorization URL"), help_text=_("URL the user is redirect to to conest the flow."), ) access_token_url = models.CharField( max_length=255, - blank=True, + null=True, verbose_name=_("Access Token URL"), help_text=_("URL used by authentik to retrive tokens."), ) profile_url = models.CharField( max_length=255, - blank=True, + null=True, verbose_name=_("Profile URL"), help_text=_("URL used by authentik to get user information."), ) diff --git a/swagger.yaml b/swagger.yaml index 6c5ccd504..887c61ff7 100755 --- a/swagger.yaml +++ b/swagger.yaml @@ -17034,21 +17034,29 @@ definitions: for OAuth 1. type: string maxLength: 255 + minLength: 1 + x-nullable: true authorization_url: title: Authorization URL description: URL the user is redirect to to conest the flow. type: string maxLength: 255 + minLength: 1 + x-nullable: true access_token_url: title: Access Token URL description: URL used by authentik to retrive tokens. type: string maxLength: 255 + minLength: 1 + x-nullable: true profile_url: title: Profile URL description: URL used by authentik to get user information. type: string maxLength: 255 + minLength: 1 + x-nullable: true consumer_key: title: Consumer key type: string diff --git a/web/src/locales/en.po b/web/src/locales/en.po index 21a72ddfa..6a2cda5e0 100644 --- a/web/src/locales/en.po +++ b/web/src/locales/en.po @@ -68,7 +68,7 @@ msgstr "API request failed" msgid "Access Key" msgstr "Access Key" -#: src/pages/sources/oauth/OAuthSourceForm.ts:72 +#: src/pages/sources/oauth/OAuthSourceForm.ts:73 msgid "Access token URL" msgstr "Access token URL" @@ -274,7 +274,7 @@ msgstr "Audience" msgid "Authentication" msgstr "Authentication" -#: src/pages/sources/oauth/OAuthSourceForm.ts:175 +#: src/pages/sources/oauth/OAuthSourceForm.ts:189 #: src/pages/sources/saml/SAMLSourceForm.ts:245 msgid "Authentication flow" msgstr "Authentication flow" @@ -292,7 +292,7 @@ msgstr "Authorization" msgid "Authorization Code" msgstr "Authorization Code" -#: src/pages/sources/oauth/OAuthSourceForm.ts:65 +#: src/pages/sources/oauth/OAuthSourceForm.ts:66 #: src/pages/sources/oauth/OAuthSourceViewPage.ts:95 msgid "Authorization URL" msgstr "Authorization URL" @@ -649,11 +649,11 @@ msgstr "Consider Objects matching this filter to be Groups." msgid "Consider Objects matching this filter to be Users." msgstr "Consider Objects matching this filter to be Users." -#: src/pages/sources/oauth/OAuthSourceForm.ts:124 +#: src/pages/sources/oauth/OAuthSourceForm.ts:126 msgid "Consumer key" msgstr "Consumer key" -#: src/pages/sources/oauth/OAuthSourceForm.ts:130 +#: src/pages/sources/oauth/OAuthSourceForm.ts:132 msgid "Consumer secret" msgstr "Consumer secret" @@ -1107,7 +1107,7 @@ msgstr "Enable TOTP" #: src/pages/policies/BoundPoliciesList.ts:37 #: src/pages/policies/PolicyBindingForm.ts:198 #: src/pages/sources/ldap/LDAPSourceForm.ts:69 -#: src/pages/sources/oauth/OAuthSourceForm.ts:113 +#: src/pages/sources/oauth/OAuthSourceForm.ts:115 #: src/pages/sources/saml/SAMLSourceForm.ts:69 msgid "Enabled" msgstr "Enabled" @@ -1116,7 +1116,7 @@ msgstr "Enabled" msgid "Enrollment" msgstr "Enrollment" -#: src/pages/sources/oauth/OAuthSourceForm.ts:196 +#: src/pages/sources/oauth/OAuthSourceForm.ts:210 #: src/pages/sources/saml/SAMLSourceForm.ts:266 #: src/pages/stages/identification/IdentificationStageForm.ts:107 msgid "Enrollment flow" @@ -1328,17 +1328,17 @@ msgstr "Flow" msgid "Flow Overview" msgstr "Flow Overview" -#: src/pages/sources/oauth/OAuthSourceForm.ts:171 +#: src/pages/sources/oauth/OAuthSourceForm.ts:185 #: src/pages/sources/saml/SAMLSourceForm.ts:220 msgid "Flow settings" msgstr "Flow settings" -#: src/pages/sources/oauth/OAuthSourceForm.ts:193 +#: src/pages/sources/oauth/OAuthSourceForm.ts:207 #: src/pages/sources/saml/SAMLSourceForm.ts:263 msgid "Flow to use when authenticating existing users." msgstr "Flow to use when authenticating existing users." -#: src/pages/sources/oauth/OAuthSourceForm.ts:214 +#: src/pages/sources/oauth/OAuthSourceForm.ts:228 #: src/pages/sources/saml/SAMLSourceForm.ts:284 msgid "Flow to use when enrolling new users." msgstr "Flow to use when enrolling new users." @@ -1718,9 +1718,9 @@ msgstr "Loading" #: src/pages/providers/saml/SAMLProviderImportForm.ts:55 #: src/pages/sources/ldap/LDAPSourceForm.ts:164 #: src/pages/sources/ldap/LDAPSourceForm.ts:190 -#: src/pages/sources/oauth/OAuthSourceForm.ts:163 -#: src/pages/sources/oauth/OAuthSourceForm.ts:191 -#: src/pages/sources/oauth/OAuthSourceForm.ts:212 +#: src/pages/sources/oauth/OAuthSourceForm.ts:177 +#: src/pages/sources/oauth/OAuthSourceForm.ts:205 +#: src/pages/sources/oauth/OAuthSourceForm.ts:226 #: src/pages/sources/saml/SAMLSourceForm.ts:126 #: src/pages/sources/saml/SAMLSourceForm.ts:240 #: src/pages/sources/saml/SAMLSourceForm.ts:261 @@ -1887,7 +1887,7 @@ msgstr "Monitor" #: src/pages/sources/SourcesListPage.ts:51 #: src/pages/sources/ldap/LDAPSourceForm.ts:54 #: src/pages/sources/ldap/LDAPSourceViewPage.ts:64 -#: src/pages/sources/oauth/OAuthSourceForm.ts:98 +#: src/pages/sources/oauth/OAuthSourceForm.ts:100 #: src/pages/sources/oauth/OAuthSourceViewPage.ts:63 #: src/pages/sources/saml/SAMLSourceForm.ts:54 #: src/pages/sources/saml/SAMLSourceViewPage.ts:66 @@ -2338,7 +2338,7 @@ msgstr "Private key available?" msgid "Private key, acquired from https://www.google.com/recaptcha/intro/v3.html." msgstr "Private key, acquired from https://www.google.com/recaptcha/intro/v3.html." -#: src/pages/sources/oauth/OAuthSourceForm.ts:79 +#: src/pages/sources/oauth/OAuthSourceForm.ts:80 msgid "Profile URL" msgstr "Profile URL" @@ -2380,7 +2380,7 @@ msgstr "Property mappings used to user creation." #: src/pages/providers/oauth2/OAuth2ProviderForm.ts:81 #: src/pages/providers/proxy/ProxyProviderForm.ts:99 #: src/pages/providers/saml/SAMLProviderForm.ts:78 -#: src/pages/sources/oauth/OAuthSourceForm.ts:120 +#: src/pages/sources/oauth/OAuthSourceForm.ts:122 #: src/pages/sources/saml/SAMLSourceForm.ts:76 msgid "Protocol settings" msgstr "Protocol settings" @@ -2403,7 +2403,7 @@ msgstr "Provider" msgid "Provider Type" msgstr "Provider Type" -#: src/pages/sources/oauth/OAuthSourceForm.ts:136 +#: src/pages/sources/oauth/OAuthSourceForm.ts:138 msgid "Provider type" msgstr "Provider type" @@ -2529,7 +2529,7 @@ msgstr "Request" msgid "Request has been denied." msgstr "Request has been denied." -#: src/pages/sources/oauth/OAuthSourceForm.ts:86 +#: src/pages/sources/oauth/OAuthSourceForm.ts:87 msgid "Request token URL" msgstr "Request token URL" @@ -2808,7 +2808,7 @@ msgstr "Skip path regex" #: src/pages/applications/ApplicationListPage.ts:58 #: src/pages/flows/FlowForm.ts:94 #: src/pages/sources/ldap/LDAPSourceForm.ts:60 -#: src/pages/sources/oauth/OAuthSourceForm.ts:104 +#: src/pages/sources/oauth/OAuthSourceForm.ts:106 #: src/pages/sources/saml/SAMLSourceForm.ts:60 msgid "Slug" msgstr "Slug" @@ -3027,7 +3027,7 @@ msgid "Successfully created service-connection." msgstr "Successfully created service-connection." #: src/pages/sources/ldap/LDAPSourceForm.ts:47 -#: src/pages/sources/oauth/OAuthSourceForm.ts:50 +#: src/pages/sources/oauth/OAuthSourceForm.ts:51 #: src/pages/sources/saml/SAMLSourceForm.ts:47 msgid "Successfully created source." msgstr "Successfully created source." @@ -3163,7 +3163,7 @@ msgid "Successfully updated service-connection." msgstr "Successfully updated service-connection." #: src/pages/sources/ldap/LDAPSourceForm.ts:44 -#: src/pages/sources/oauth/OAuthSourceForm.ts:47 +#: src/pages/sources/oauth/OAuthSourceForm.ts:48 #: src/pages/sources/saml/SAMLSourceForm.ts:44 msgid "Successfully updated source." msgstr "Successfully updated source." @@ -3425,7 +3425,7 @@ msgstr "UI settings" msgid "UID" msgstr "UID" -#: src/pages/sources/oauth/OAuthSourceForm.ts:61 +#: src/pages/sources/oauth/OAuthSourceForm.ts:62 msgid "URL settings" msgstr "URL settings" @@ -3433,19 +3433,19 @@ msgstr "URL settings" msgid "URL that the initial Login request is sent to." msgstr "URL that the initial Login request is sent to." -#: src/pages/sources/oauth/OAuthSourceForm.ts:69 +#: src/pages/sources/oauth/OAuthSourceForm.ts:70 msgid "URL the user is redirect to to consent the authorization." msgstr "URL the user is redirect to to consent the authorization." -#: src/pages/sources/oauth/OAuthSourceForm.ts:83 +#: src/pages/sources/oauth/OAuthSourceForm.ts:84 msgid "URL used by authentik to get user information." msgstr "URL used by authentik to get user information." -#: src/pages/sources/oauth/OAuthSourceForm.ts:76 +#: src/pages/sources/oauth/OAuthSourceForm.ts:77 msgid "URL used by authentik to retrieve tokens." msgstr "URL used by authentik to retrieve tokens." -#: src/pages/sources/oauth/OAuthSourceForm.ts:89 +#: src/pages/sources/oauth/OAuthSourceForm.ts:90 msgid "URL used to request the initial token. This URL is only required for OAuth 1." msgstr "URL used to request the initial token. This URL is only required for OAuth 1." diff --git a/web/src/locales/pseudo-LOCALE.po b/web/src/locales/pseudo-LOCALE.po index 3ced76723..aa6bae279 100644 --- a/web/src/locales/pseudo-LOCALE.po +++ b/web/src/locales/pseudo-LOCALE.po @@ -68,7 +68,7 @@ msgstr "" msgid "Access Key" msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:72 +#: src/pages/sources/oauth/OAuthSourceForm.ts:73 msgid "Access token URL" msgstr "" @@ -270,7 +270,7 @@ msgstr "" msgid "Authentication" msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:175 +#: src/pages/sources/oauth/OAuthSourceForm.ts:189 #: src/pages/sources/saml/SAMLSourceForm.ts:245 msgid "Authentication flow" msgstr "" @@ -288,7 +288,7 @@ msgstr "" msgid "Authorization Code" msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:65 +#: src/pages/sources/oauth/OAuthSourceForm.ts:66 #: src/pages/sources/oauth/OAuthSourceViewPage.ts:95 msgid "Authorization URL" msgstr "" @@ -643,11 +643,11 @@ msgstr "" msgid "Consider Objects matching this filter to be Users." msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:124 +#: src/pages/sources/oauth/OAuthSourceForm.ts:126 msgid "Consumer key" msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:130 +#: src/pages/sources/oauth/OAuthSourceForm.ts:132 msgid "Consumer secret" msgstr "" @@ -1099,7 +1099,7 @@ msgstr "" #: src/pages/policies/BoundPoliciesList.ts:37 #: src/pages/policies/PolicyBindingForm.ts:198 #: src/pages/sources/ldap/LDAPSourceForm.ts:69 -#: src/pages/sources/oauth/OAuthSourceForm.ts:113 +#: src/pages/sources/oauth/OAuthSourceForm.ts:115 #: src/pages/sources/saml/SAMLSourceForm.ts:69 msgid "Enabled" msgstr "" @@ -1108,7 +1108,7 @@ msgstr "" msgid "Enrollment" msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:196 +#: src/pages/sources/oauth/OAuthSourceForm.ts:210 #: src/pages/sources/saml/SAMLSourceForm.ts:266 #: src/pages/stages/identification/IdentificationStageForm.ts:107 msgid "Enrollment flow" @@ -1320,17 +1320,17 @@ msgstr "" msgid "Flow Overview" msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:171 +#: src/pages/sources/oauth/OAuthSourceForm.ts:185 #: src/pages/sources/saml/SAMLSourceForm.ts:220 msgid "Flow settings" msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:193 +#: src/pages/sources/oauth/OAuthSourceForm.ts:207 #: src/pages/sources/saml/SAMLSourceForm.ts:263 msgid "Flow to use when authenticating existing users." msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:214 +#: src/pages/sources/oauth/OAuthSourceForm.ts:228 #: src/pages/sources/saml/SAMLSourceForm.ts:284 msgid "Flow to use when enrolling new users." msgstr "" @@ -1710,9 +1710,9 @@ msgstr "" #: src/pages/providers/saml/SAMLProviderImportForm.ts:55 #: src/pages/sources/ldap/LDAPSourceForm.ts:164 #: src/pages/sources/ldap/LDAPSourceForm.ts:190 -#: src/pages/sources/oauth/OAuthSourceForm.ts:163 -#: src/pages/sources/oauth/OAuthSourceForm.ts:191 -#: src/pages/sources/oauth/OAuthSourceForm.ts:212 +#: src/pages/sources/oauth/OAuthSourceForm.ts:177 +#: src/pages/sources/oauth/OAuthSourceForm.ts:205 +#: src/pages/sources/oauth/OAuthSourceForm.ts:226 #: src/pages/sources/saml/SAMLSourceForm.ts:126 #: src/pages/sources/saml/SAMLSourceForm.ts:240 #: src/pages/sources/saml/SAMLSourceForm.ts:261 @@ -1879,7 +1879,7 @@ msgstr "" #: src/pages/sources/SourcesListPage.ts:51 #: src/pages/sources/ldap/LDAPSourceForm.ts:54 #: src/pages/sources/ldap/LDAPSourceViewPage.ts:64 -#: src/pages/sources/oauth/OAuthSourceForm.ts:98 +#: src/pages/sources/oauth/OAuthSourceForm.ts:100 #: src/pages/sources/oauth/OAuthSourceViewPage.ts:63 #: src/pages/sources/saml/SAMLSourceForm.ts:54 #: src/pages/sources/saml/SAMLSourceViewPage.ts:66 @@ -2330,7 +2330,7 @@ msgstr "" msgid "Private key, acquired from https://www.google.com/recaptcha/intro/v3.html." msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:79 +#: src/pages/sources/oauth/OAuthSourceForm.ts:80 msgid "Profile URL" msgstr "" @@ -2372,7 +2372,7 @@ msgstr "" #: src/pages/providers/oauth2/OAuth2ProviderForm.ts:81 #: src/pages/providers/proxy/ProxyProviderForm.ts:99 #: src/pages/providers/saml/SAMLProviderForm.ts:78 -#: src/pages/sources/oauth/OAuthSourceForm.ts:120 +#: src/pages/sources/oauth/OAuthSourceForm.ts:122 #: src/pages/sources/saml/SAMLSourceForm.ts:76 msgid "Protocol settings" msgstr "" @@ -2395,7 +2395,7 @@ msgstr "" msgid "Provider Type" msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:136 +#: src/pages/sources/oauth/OAuthSourceForm.ts:138 msgid "Provider type" msgstr "" @@ -2521,7 +2521,7 @@ msgstr "" msgid "Request has been denied." msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:86 +#: src/pages/sources/oauth/OAuthSourceForm.ts:87 msgid "Request token URL" msgstr "" @@ -2800,7 +2800,7 @@ msgstr "" #: src/pages/applications/ApplicationListPage.ts:58 #: src/pages/flows/FlowForm.ts:94 #: src/pages/sources/ldap/LDAPSourceForm.ts:60 -#: src/pages/sources/oauth/OAuthSourceForm.ts:104 +#: src/pages/sources/oauth/OAuthSourceForm.ts:106 #: src/pages/sources/saml/SAMLSourceForm.ts:60 msgid "Slug" msgstr "" @@ -3019,7 +3019,7 @@ msgid "Successfully created service-connection." msgstr "" #: src/pages/sources/ldap/LDAPSourceForm.ts:47 -#: src/pages/sources/oauth/OAuthSourceForm.ts:50 +#: src/pages/sources/oauth/OAuthSourceForm.ts:51 #: src/pages/sources/saml/SAMLSourceForm.ts:47 msgid "Successfully created source." msgstr "" @@ -3155,7 +3155,7 @@ msgid "Successfully updated service-connection." msgstr "" #: src/pages/sources/ldap/LDAPSourceForm.ts:44 -#: src/pages/sources/oauth/OAuthSourceForm.ts:47 +#: src/pages/sources/oauth/OAuthSourceForm.ts:48 #: src/pages/sources/saml/SAMLSourceForm.ts:44 msgid "Successfully updated source." msgstr "" @@ -3415,7 +3415,7 @@ msgstr "" msgid "UID" msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:61 +#: src/pages/sources/oauth/OAuthSourceForm.ts:62 msgid "URL settings" msgstr "" @@ -3423,19 +3423,19 @@ msgstr "" msgid "URL that the initial Login request is sent to." msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:69 +#: src/pages/sources/oauth/OAuthSourceForm.ts:70 msgid "URL the user is redirect to to consent the authorization." msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:83 +#: src/pages/sources/oauth/OAuthSourceForm.ts:84 msgid "URL used by authentik to get user information." msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:76 +#: src/pages/sources/oauth/OAuthSourceForm.ts:77 msgid "URL used by authentik to retrieve tokens." msgstr "" -#: src/pages/sources/oauth/OAuthSourceForm.ts:89 +#: src/pages/sources/oauth/OAuthSourceForm.ts:90 msgid "URL used to request the initial token. This URL is only required for OAuth 1." msgstr "" diff --git a/web/src/pages/sources/oauth/OAuthSourceForm.ts b/web/src/pages/sources/oauth/OAuthSourceForm.ts index c78a88254..ff3201a79 100644 --- a/web/src/pages/sources/oauth/OAuthSourceForm.ts +++ b/web/src/pages/sources/oauth/OAuthSourceForm.ts @@ -31,6 +31,9 @@ export class OAuthSourceForm extends Form { @property({type: Boolean}) showUrlOptions = false; + @property({type: Boolean}) + showRequestTokenURL = false; + getSuccessMessage(): string { if (this.source) { return t`Successfully updated source.`; @@ -66,29 +69,30 @@ export class OAuthSourceForm extends Form { label=${t`Authorization URL`} ?required=${true} name="authorizationUrl"> - +

${t`URL the user is redirect to to consent the authorization.`}

- +

${t`URL used by authentik to retrieve tokens.`}

- +

${t`URL used by authentik to get user information.`}

- - +

${t`URL used to request the initial token. This URL is only required for OAuth 1.`}

+ ` : html``} `; } @@ -144,6 +148,11 @@ export class OAuthSourceForm extends Form { } else { this.showUrlOptions = false; } + if ("data-request-token" in selected.attributes) { + this.showRequestTokenURL = true; + } else { + this.showRequestTokenURL = false; + } if (!this.source) { this.source = {} as OAuthSource; } @@ -157,7 +166,13 @@ export class OAuthSourceForm extends Form { selected = true; } } - return html``; + return html``; }); }), html``)}