mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
#9962 add next param to sso url
This commit is contained in:
@ -39,12 +39,12 @@ class LoginView(View):
|
|||||||
def dispatch(self, *args, **kwargs):
|
def dispatch(self, *args, **kwargs):
|
||||||
return super().dispatch(*args, **kwargs)
|
return super().dispatch(*args, **kwargs)
|
||||||
|
|
||||||
def gen_auth_data(self, name, url):
|
def gen_auth_data(self, name, url, params):
|
||||||
display_name, icon_name = get_auth_backend_display(name)
|
display_name, icon_name = get_auth_backend_display(name)
|
||||||
return {
|
return {
|
||||||
'display_name': display_name,
|
'display_name': display_name,
|
||||||
'icon_name': icon_name,
|
'icon_name': icon_name,
|
||||||
'url': url,
|
'url': f'{url}?{urlencode(params)}',
|
||||||
}
|
}
|
||||||
|
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
@ -58,15 +58,18 @@ class LoginView(View):
|
|||||||
saml_idps = get_saml_idps()
|
saml_idps = get_saml_idps()
|
||||||
for name in load_backends(settings.AUTHENTICATION_BACKENDS).keys():
|
for name in load_backends(settings.AUTHENTICATION_BACKENDS).keys():
|
||||||
url = reverse('social:begin', args=[name, ])
|
url = reverse('social:begin', args=[name, ])
|
||||||
|
params = {}
|
||||||
|
next = request.GET.get('next')
|
||||||
|
if next:
|
||||||
|
params['next'] = next
|
||||||
if name.lower() == 'saml' and saml_idps:
|
if name.lower() == 'saml' and saml_idps:
|
||||||
for idp in saml_idps:
|
for idp in saml_idps:
|
||||||
params = {'idp': idp}
|
params['idp'] = idp
|
||||||
idp_url = f'{url}?{urlencode(params)}'
|
data = self.gen_auth_data(name, url, params)
|
||||||
data = self.gen_auth_data(name, idp_url)
|
|
||||||
data['display_name'] = f'{data["display_name"]} ({idp})'
|
data['display_name'] = f'{data["display_name"]} ({idp})'
|
||||||
auth_backends.append(data)
|
auth_backends.append(data)
|
||||||
else:
|
else:
|
||||||
auth_backends.append(self.gen_auth_data(name, url))
|
auth_backends.append(self.gen_auth_data(name, url, params))
|
||||||
|
|
||||||
return render(request, self.template_name, {
|
return render(request, self.template_name, {
|
||||||
'form': form,
|
'form': form,
|
||||||
|
Reference in New Issue
Block a user