Fix issue where users are redirected to Jira login in LFID mode in certain cases 67/71767/3
authorAdam Hassick <ahassick@iol.unh.edu>
Mon, 4 Jan 2021 20:47:35 +0000 (20:47 +0000)
committerAdam Hassick <ahassick@iol.unh.edu>
Mon, 4 Jan 2021 21:10:08 +0000 (16:10 -0500)
Change-Id: If8a82d3a2628a7f55f902d321388be2419524c8b

Signed-off-by: Adam Hassick <ahassick@iol.unh.edu>
Change-Id: Ieb9de968514b88a8c450967466d06c9860427d83

src/account/urls.py
src/account/views.py
src/dashboard/views.py
src/laas_dashboard/settings.py

index 0c01ee0..97d8c77 100644 (file)
@@ -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"),
index 08da918..2e1ab94 100644 (file)
@@ -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)
index 7c85250..ff26c64 100644 (file)
@@ -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',
index a32b1c5..8f43a3d 100644 (file)
@@ -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