Compare commits

...

6 Commits

Author SHA1 Message Date
Martin Gross
39115152a6 Update src/pretix/base/customersso/oidc.py
Co-authored-by: Mira <weller@rami.io>
2025-01-30 13:39:22 +01:00
Martin Gross
7ce790dbb9 Actually fix indentation... 2025-01-30 13:02:49 +01:00
Martin Gross
9a4a0df625 isort 2025-01-30 12:39:46 +01:00
Martin Gross
a8376b9a79 Add missing imports; fix indentation 2025-01-30 12:38:12 +01:00
Martin Gross
b21041a833 Apply suggestions from code review
Co-authored-by: Mira <weller@rami.io>
2025-01-30 12:35:58 +01:00
Martin Gross
e8a716273e OIDC: Allow to add query parameters to Authorization UR 2025-01-29 11:55:12 +01:00
2 changed files with 19 additions and 1 deletions

View File

@@ -24,7 +24,7 @@ import hashlib
import logging
import time
from datetime import datetime
from urllib.parse import urlencode, urljoin
from urllib.parse import parse_qsl, urlencode, urljoin
import jwt
import requests
@@ -139,6 +139,11 @@ def oidc_validate_and_complete_config(config):
)
)
if "query_parameters" in config and config["query_parameters"]:
config["query_parameters"] = urlencode(
parse_qsl(config["query_parameters"])
)
config['provider_config'] = provider_config
return config
@@ -154,6 +159,10 @@ def oidc_authorize_url(provider, state, redirect_uri):
'state': state,
'redirect_uri': redirect_uri,
}
if "query_parameters" in provider.configuration and provider.configuration["query_parameters"]:
params.update(parse_qsl(provider.configuration["query_parameters"]))
return endpoint + '?' + urlencode(params)

View File

@@ -1043,6 +1043,15 @@ class SSOProviderForm(I18nModelForm):
label=pgettext_lazy('sso_oidc', 'Phone field'),
required=False,
)
config_oidc_query_parameters = forms.CharField(
label=pgettext_lazy('sso_oidc', 'Query parameters'),
help_text=pgettext_lazy('sso_oidc', 'Optional query parameters, that will be added to calls to '
'the authorization endpoint. Enter as: {example}'.format(
example='<code>param1=value1&amp;param2=value2</code>'
),
),
required=False,
)
class Meta:
model = CustomerSSOProvider