From bf822708949ad2e57b3966ad2bf485588fe4b29d Mon Sep 17 00:00:00 2001 From: Adam Hassick Date: Mon, 4 Jan 2021 20:47:35 +0000 Subject: Fix issue where users are redirected to Jira login in LFID mode in certain cases Change-Id: If8a82d3a2628a7f55f902d321388be2419524c8b Signed-off-by: Adam Hassick Change-Id: Ieb9de968514b88a8c450967466d06c9860427d83 --- src/account/urls.py | 13 ++++++++++++- src/account/views.py | 5 +++++ src/dashboard/views.py | 4 ++-- src/laas_dashboard/settings.py | 4 +++- 4 files changed, 22 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/account/urls.py b/src/account/urls.py index 0c01ee0..97d8c77 100644 --- a/src/account/urls.py +++ b/src/account/urls.py @@ -32,6 +32,7 @@ from account.views import ( AccountSettingsView, JiraAuthenticatedView, JiraLoginView, + OIDCLoginView, JiraLogoutView, UserListView, account_resource_view, @@ -45,11 +46,21 @@ from account.views import ( configuration_delete_view ) +from laas_dashboard import settings + + +def get_login_view(): + if (settings.AUTH_SETTING == 'LFID'): + return OIDCLoginView.as_view() + else: + return JiraLoginView.as_view() + + app_name = "account" urlpatterns = [ url(r'^settings/', AccountSettingsView.as_view(), name='settings'), url(r'^authenticated/$', JiraAuthenticatedView.as_view(), name='authenticated'), - url(r'^login/$', JiraLoginView.as_view(), name='login'), + url(r'^login/$', get_login_view(), name='login'), url(r'^logout/$', JiraLogoutView.as_view(), name='logout'), url(r'^users/$', UserListView.as_view(), name='users'), url(r'^my/resources/$', account_resource_view, name="my-resources"), diff --git a/src/account/views.py b/src/account/views.py index 08da918..2e1ab94 100644 --- a/src/account/views.py +++ b/src/account/views.py @@ -128,6 +128,11 @@ class JiraLoginView(RedirectView): return url +class OIDCLoginView(RedirectView): + def get_redirect_url(self, *args, **kwargs): + return reverse('oidc_authentication_init') + + class JiraLogoutView(LoginRequiredMixin, RedirectView): def get_redirect_url(self, *args, **kwargs): logout(self.request) diff --git a/src/dashboard/views.py b/src/dashboard/views.py index 7c85250..ff26c64 100644 --- a/src/dashboard/views.py +++ b/src/dashboard/views.py @@ -22,7 +22,7 @@ from booking.models import Booking from resource_inventory.models import Image, ResourceProfile, ResourceQuery from workflow.workflow_manager import ManagerTracker -import os +from laas_dashboard import settings def lab_list_view(request): @@ -80,7 +80,7 @@ def landing_view(request): else: bookings = None - LFID = True if os.environ['AUTH_SETTING'] == 'LFID' else False + LFID = True if settings.AUTH_SETTING == 'LFID' else False return render( request, 'dashboard/landing.html', diff --git a/src/laas_dashboard/settings.py b/src/laas_dashboard/settings.py index a32b1c5..8f43a3d 100644 --- a/src/laas_dashboard/settings.py +++ b/src/laas_dashboard/settings.py @@ -53,7 +53,9 @@ MIDDLEWARE = [ 'account.middleware.TimezoneMiddleware', ] -if os.environ['AUTH_SETTING'] == 'LFID': +AUTH_SETTING = os.environ.get('AUTH_SETTING', 'JIRA') + +if AUTH_SETTING == 'LFID': AUTHENTICATION_BACKENDS = ['account.views.MyOIDCAB'] # OpenID Authentications -- cgit 1.2.3-korg