From 74e563da7fa6886449fd2be5933e2d4ca5c85f48 Mon Sep 17 00:00:00 2001
From: jack <jack.su@pollex.com.tw>
Date: 星期二, 12 九月 2023 11:25:52 +0800
Subject: [PATCH] [UPDATE] 解決弱點Se: Incorrect definition of Serializable class [UPDATE] 解決弱點Information exposure to log file [UPDATE] 解決弱點Use of hard-coded password

---
 PAMapp/store/localStorage.ts |  143 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 134 insertions(+), 9 deletions(-)

diff --git a/PAMapp/store/localStorage.ts b/PAMapp/store/localStorage.ts
index bafde21..d1fd32c 100644
--- a/PAMapp/store/localStorage.ts
+++ b/PAMapp/store/localStorage.ts
@@ -1,17 +1,66 @@
-import { Module, Mutation, VuexModule } from 'vuex-module-decorators';
-
+import { Module, Mutation, VuexModule ,Action } from 'vuex-module-decorators';
+import { ContactType } from '~/shared/models/enum/ContactType';
+import { Role } from '~/shared/models/enum/Role';
+import { Selected } from '~/shared/models/quick-filter.model';
+import { RegisterInfo } from '~/shared/models/registerInfo';
+import { StrictQueryParams } from '~/shared/models/strict-query.model';
 @Module
 export default class LocalStorage extends VuexModule {
   id_token = localStorage.getItem('id_token');
-  role_State= localStorage.getItem('current_role');
+  current_role= localStorage.getItem('current_role');
+  consultant_id = localStorage.getItem('consultant_id');
+  userInfo = JSON.parse(localStorage.getItem('userInfo')!);
+  quickFilterSelectedItem = localStorage.getItem('quickFilter');
+  recommendConsultantItem = localStorage.getItem('recommendConsultantItem');
+  appointmentIdFromMsg = localStorage.getItem('appointmentIdFromMsg');
+  satisfactionIdFromMsg = localStorage.getItem('satisfactionIdFromMsg');
+  notContactAppointmentIdFromMsg = localStorage.getItem('notContactAppointmentIdFromMsg');
 
   get idToken(): string|null {
     return this.id_token;
   };
 
   get currentRole(): string|null {
-    return this.role_State;
+    return this.current_role;
   };
+
+  get consultantId():string|null{
+    return this.consultant_id;
+  }
+
+  get isPrimaryContactTypeEmail(): boolean {
+    return this.userInfo.contactType === ContactType.EMAIL;
+  }
+
+
+  get quickFilterSelectedData(): Selected[] {
+    return JSON.parse(this.quickFilterSelectedItem || '[]') as Selected[];
+  }
+
+  get isAdminLogin(): boolean {
+    return this.currentRole === Role.ADMIN;
+  }
+
+  get isUserLogin(): boolean {
+    return this.currentRole === Role.USER;
+  }
+
+  get currentAppointmentIdFromMsg(): string|null {
+    return this.appointmentIdFromMsg;
+  }
+
+  get currentSatisfactionIdFromMsg(): string|null {
+    return this.satisfactionIdFromMsg;
+  }
+
+  get currentNotContactAppointmentIdFromMsg(): string|null {
+    return this.notContactAppointmentIdFromMsg;
+  }
+
+  @Mutation storageUserInfo(userInfo: RegisterInfo): void {
+    localStorage.setItem('userInfo', JSON.stringify(userInfo));
+    this.userInfo = JSON.parse(localStorage.getItem('userInfo')!);
+  }
 
   @Mutation storageIdToken(token: string): void {
     localStorage.setItem('id_token', token);
@@ -20,12 +69,88 @@
 
   @Mutation storageRole(role:string): void {
     localStorage.setItem('current_role', role);
-    this.role_State = localStorage.getItem('current_role');
+    this.current_role = localStorage.getItem('current_role');
   };
 
-  @Mutation storageClear(): void {
-    localStorage.clear();
-    this.id_token = localStorage.getItem('id_token');
-    this.role_State = localStorage.getItem('roleOfState');
+  @Mutation storageConsultantId(id:string):void{
+    localStorage.setItem('consultant_id', id);
+    this.consultant_id = localStorage.getItem('consultant_id');
   }
+
+  @Mutation storageQuickFilter(selected: string): void {
+    localStorage.setItem('quickFilter', selected);
+    this.quickFilterSelectedItem = localStorage.getItem('quickFilter');
+  };
+
+  @Mutation storageRecommendConsultant(selected: string): void {
+    localStorage.setItem('recommendConsultantItem', selected);
+    this.recommendConsultantItem = localStorage.getItem('recommendConsultantItem');
+  }
+
+  @Mutation storageAppointmentIdFromMsg(id: string) {
+    localStorage.setItem('appointmentIdFromMsg', id);
+    this.appointmentIdFromMsg = localStorage.getItem('appointmentIdFromMsg');
+  }
+
+  @Mutation storageSatisfactionIdFromMsg(id: string) {
+    localStorage.setItem('satisfactionIdFromMsg', id);
+    this.satisfactionIdFromMsg = localStorage.getItem('satisfactionIdFromMsg');
+  }
+
+  @Mutation storageNotContactAppointmentIdFromMsg(id: string) {
+    localStorage.setItem('notContactAppointmentIdFromMsg', id);
+    this.notContactAppointmentIdFromMsg = id;
+  }
+
+  @Mutation storageClear(): void {
+    localStorage.removeItem('myRequests');
+    localStorage.removeItem('userInfo');
+    localStorage.removeItem('id_token');
+    localStorage.removeItem('current_role');
+    localStorage.removeItem('consultant_id');
+    localStorage.removeItem('appointment');
+    localStorage.removeItem('login_consultant');
+    localStorage.removeItem('notContactAppointmentIdFromMsg');
+    localStorage.removeItem('satisfactionIdFromMsg');
+    localStorage.removeItem('appointmentIdFromMsg');
+    this.id_token = localStorage.getItem('id_token');
+    this.current_role = localStorage.getItem('current_role');
+    this.consultant_id = localStorage.getItem('consultant_id');
+  }
+
+
+  @Mutation storageClearQuickFilter() {
+    localStorage.removeItem('quickFilter');
+    this.quickFilterSelectedItem = localStorage.getItem('quickFilter');
+  }
+
+  @Mutation storageClearRecommendConsultant() {
+    localStorage.removeItem('recommendConsultantItem');
+    this.recommendConsultantItem = localStorage.getItem('recommendConsultantItem');
+  }
+
+  @Mutation storageClearAppointmentIdFromMsg() {
+    localStorage.removeItem('appointmentIdFromMsg');
+    this.appointmentIdFromMsg = localStorage.getItem('appointmentIdFromMsg');
+  }
+
+  @Mutation storageClearSatisfactionIdFromMsg() {
+    localStorage.removeItem('satisfactionIdFromMsg');
+    this.appointmentIdFromMsg = localStorage.getItem('satisfactionIdFromMsg');
+  }
+
+  @Mutation storageClearNotContactAppointmentIdFromMsg() {
+    localStorage.removeItem('notContactAppointmentIdFromMsg');
+    this.appointmentIdFromMsg = localStorage.getItem('notContactAppointmentIdFromMsg');
+  }
+
+  @Mutation storageStrickQueryItem(queryItem: StrictQueryParams): void {
+    localStorage.setItem('recommendConsultantItem', JSON.stringify(queryItem));
+    this.recommendConsultantItem = localStorage.getItem('recommendConsultantItem');
+  }
+
+  @Action actionStorageClear(): void {
+    this.context.commit("storageClear");
+  }
+
 }

--
Gitblit v1.8.0