浏览代码

Added a dispatcher to redirect staff user and non-staff user in different urls

Mohidul Islam 4 年之前
父节点
当前提交
ff1ce5087e
共有 3 个文件被更改,包括 17 次插入1 次删除
  1. 1 1
      review_automation/settings/base.py
  2. 2 0
      user/urls.py
  3. 14 0
      user/views.py

+ 1 - 1
review_automation/settings/base.py

@@ -86,7 +86,7 @@ STATIC_URL = '/static/'
 STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')
 
 LOGIN_URL = '/user/login'
-LOGIN_REDIRECT_URL = '/'
+LOGIN_REDIRECT_URL = 'login-redirect'
 CRISPY_TEMPLATE_PACK = 'bootstrap4'
 
 

+ 2 - 0
user/urls.py

@@ -9,12 +9,14 @@ from .views import (
     ChartDataAllPlatform,
     StaffLeaderBoard,
     SyncStaffLeaderBoard,
+    LoginRedirectURL,
 )
 
 urlpatterns = [
     path('login/', auth_views.LoginView.as_view(template_name='login.html'), name='login'),
     path('logout/', auth_views.LogoutView.as_view(template_name='logout.html'), name='logout'),
     path('signup', RegistrationView.as_view(), name='registration'),
+    path('login-redirect-url', LoginRedirectURL.as_view(), name='login-redirect'),
     path('analytics', LocationAnalytics.as_view(), name='location-analytics'),
     path('reviews/<platform>', ReviewListLocationWise.as_view(), name='location-wise-review-list'),
     path('api/analytics', ChartDataThisMonth.as_view(), name='location-api-analytics'),

+ 14 - 0
user/views.py

@@ -1,5 +1,7 @@
 from django.http import Http404
 from django.shortcuts import render, redirect
+from django.utils.decorators import method_decorator
+from django.contrib.auth.decorators import login_required
 from django.views.generic import View
 from django.contrib import messages
 from .forms import UserRegisterForm, StaffRegistrationForm, StaffSheetDateForm
@@ -48,6 +50,18 @@ class RegistrationView(View):
         return render(request, 'signup.html', {'form': form})
 
 
+@method_decorator([login_required], name='dispatch')
+class LoginRedirectURL(View):
+
+    def dispatch(self, request, *args, **kwargs):
+        if not request.user.is_authenticated:
+            return redirect('login')
+        elif request.user.is_staff:
+            return redirect('un-replied-review')
+        else:
+            return redirect('location-analytics')
+
+
 class LocationAnalytics(LoginRequiredMixin, View):
     def get(self, request, *args, **kwargs):
         # print(dir(request.user))