From c188a62c55b4eb2f8b6c5178be7bff58b7ba75a1 Mon Sep 17 00:00:00 2001
From: Tomas <tomasysh@gmail.com>
Date: 星期三, 24 八月 2022 10:58:34 +0800
Subject: [PATCH] refactor: isLoginAuthGrad

---
 PAMapp/middleware/isLogin.ts |   26 +++++++++++++++++---------
 1 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/PAMapp/middleware/isLogin.ts b/PAMapp/middleware/isLogin.ts
index 2224a14..8534e53 100644
--- a/PAMapp/middleware/isLogin.ts
+++ b/PAMapp/middleware/isLogin.ts
@@ -3,6 +3,7 @@
 const isLogin: Middleware = (context) => {
     const isUserLogin = context.store.getters['localStorage/isUserLogin'];
     const isAdminLogin = context.store.getters['localStorage/isAdminLogin'];
+    const isGuest = !isUserLogin && !isAdminLogin;
     const currentRouteName = context.route.name;
     const noNeedLoginFunctionList = [
         'index', 'login',
@@ -13,21 +14,28 @@
         'questionnaire-agentNo' // NOTE: �ㄐ���銝� authGuard ����嚗迨 route ��撌梁��靘�� login��
     ];
 
-    if (!isUserLogin && !isAdminLogin) {
-        const routeNeedLogin = !(noNeedLoginFunctionList.some((routeName) => routeName === currentRouteName));
-        if (routeNeedLogin) {
+    if (isGuest) {
+        const guestCannotAccess = !(noNeedLoginFunctionList.includes(currentRouteName!));
+        if (guestCannotAccess) {
             context.redirect('/');
         } 
     } else if(isUserLogin) {
-        const userFunctions = ['notification', 'satisfactionList', 'accountSetting', 'userReviews', 'userReviewsRecord', ...noNeedLoginFunctionList];
-        const routeNeedUserLogin = !(userFunctions.some((routeName) => routeName === currentRouteName));
-        if (routeNeedUserLogin) {
+        const userFunctions = [
+            'notification', 'satisfactionList', 'accountSetting',
+            'userReviews', 'userReviewsRecord',
+            ...noNeedLoginFunctionList];
+        const userCannotAccess = !(userFunctions.includes(currentRouteName!));
+        if (userCannotAccess) {
             context.redirect('/');
         }
     } else if(isAdminLogin) {
-        const agentFunctions = ['notification', 'agentInfo-agentNo', 'agentInfo-edit-agentNo', 'record', 'myAppointmentList-appointmentList', 'myAppointmentList-contactedList', 'myAppointmentList-closedList', 'appointment-appointmentId', 'appointment-appointmentId-close', 'appointment-appointmentId-interview-new', ...noNeedLoginFunctionList];
-        const routeNeedAgentLogin = !(agentFunctions.some((routeName) => routeName === currentRouteName));
-        if (routeNeedAgentLogin) {
+        const agentFunctions = [
+            'notification', 'agentInfo-agentNo', 'agentInfo-edit-agentNo', 'record',
+            'myAppointmentList-appointmentList', 'myAppointmentList-contactedList', 'myAppointmentList-closedList', 
+            'appointment-appointmentId', 'appointment-appointmentId-close', 'appointment-appointmentId-interview-new',
+            ...noNeedLoginFunctionList];
+        const agentCannotAccess = !(agentFunctions.includes(currentRouteName!));
+        if (agentCannotAccess) {
             context.redirect('/');
         }
     }

--
Gitblit v1.8.0