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