Browse Source

添加 user id

visuddhinanda 3 years ago
parent
commit
740d8d8410
2 changed files with 37 additions and 34 deletions
  1. 2 0
      dashboard/src/load.ts
  2. 35 34
      dashboard/src/reducers/current-user.ts

+ 2 - 0
dashboard/src/load.ts

@@ -13,6 +13,7 @@ export interface ISiteInfoResponse {
   title: string;
 }
 interface IUserData {
+  id: string;
   nickName: string;
   realName: string;
   avatar: string;
@@ -49,6 +50,7 @@ const init = () => {
         console.log(response);
         if ("data" in response) {
           const it: IUser = {
+            id: response.data.id,
             nickName: response.data.nickName,
             realName: response.data.realName,
             avatar: response.data.avatar,

+ 35 - 34
dashboard/src/reducers/current-user.ts

@@ -15,63 +15,64 @@ export const DURATION = 60 * 60 * 24;
 const IS_LOCAL_ENABLE = process.env.REACT_APP_ENABLE_LOCAL_TOKEN === "true";
 
 export const get = (): string | null => {
-	const token = sessionStorage.getItem(KEY);
-	if (token) {
-		return token;
-	}
-	if (IS_LOCAL_ENABLE) {
-		return localStorage.getItem(KEY);
-	}
-	return null;
+  const token = sessionStorage.getItem(KEY);
+  if (token) {
+    return token;
+  }
+  if (IS_LOCAL_ENABLE) {
+    return localStorage.getItem(KEY);
+  }
+  return null;
 };
 
 const set = (token: string) => {
-	sessionStorage.setItem(KEY, token);
-	if (IS_LOCAL_ENABLE) {
-		localStorage.setItem(KEY, token);
-	}
+  sessionStorage.setItem(KEY, token);
+  if (IS_LOCAL_ENABLE) {
+    localStorage.setItem(KEY, token);
+  }
 };
 
 const remove = () => {
-	sessionStorage.removeItem(KEY);
-	localStorage.removeItem(KEY);
+  sessionStorage.removeItem(KEY);
+  localStorage.removeItem(KEY);
 };
 
 export interface IUser {
-	nickName: string;
-	realName: string;
-	avatar: string;
-	roles: string[];
+  id: string;
+  nickName: string;
+  realName: string;
+  avatar: string;
+  roles: string[];
 }
 
 interface IState {
-	payload?: IUser;
+  payload?: IUser;
 }
 
 const initialState: IState = {};
 
 export const slice = createSlice({
-	name: "current-user",
-	initialState,
-	reducers: {
-		signIn: (state, action: PayloadAction<[IUser, string]>) => {
-			state.payload = action.payload[0];
-			set(action.payload[1]);
-		},
-		signOut: (state) => {
-			state.payload = undefined;
-			remove();
-		},
-	},
+  name: "current-user",
+  initialState,
+  reducers: {
+    signIn: (state, action: PayloadAction<[IUser, string]>) => {
+      state.payload = action.payload[0];
+      set(action.payload[1]);
+    },
+    signOut: (state) => {
+      state.payload = undefined;
+      remove();
+    },
+  },
 });
 
 export const { signIn, signOut } = slice.actions;
 
 export const isRoot = (state: RootState): boolean =>
-	state.currentUser.payload?.roles.includes(ROLE_ROOT) || false;
+  state.currentUser.payload?.roles.includes(ROLE_ROOT) || false;
 export const isAdministrator = (state: RootState): boolean =>
-	state.currentUser.payload?.roles.includes(ROLE_ADMINISTRATOR) || false;
+  state.currentUser.payload?.roles.includes(ROLE_ADMINISTRATOR) || false;
 export const currentUser = (state: RootState): IUser | undefined =>
-	state.currentUser.payload;
+  state.currentUser.payload;
 
 export default slice.reducer;