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