Browse Source

fix type error

Signed-off-by: ryjiang <jiangruiyi@gmail.com>
ryjiang 1 year ago
parent
commit
3949a15ee2

+ 2 - 2
client/src/pages/user/Roles.tsx

@@ -6,7 +6,7 @@ import { rootContext, dataContext } from '@/context';
 import { useNavigationHook } from '@/hooks';
 import AttuGrid from '@/components/grid/Grid';
 import { ColDefinitionsType, ToolBarConfig } from '@/components/grid/Types';
-import { DeleteRoleParams, RoleData } from './Types';
+import { DeleteRoleParams, RoleData, Roles } from './Types';
 import DeleteTemplate from '@/components/customDialog/DeleteDialogTemplate';
 import { ALL_ROUTER_TYPES } from '@/router/Types';
 import UpdateRoleDialog from './UpdateRoleDialog';
@@ -35,7 +35,7 @@ const Roles = () => {
   const { t: dialogTrans } = useTranslation('dialog');
 
   const fetchRoles = async () => {
-    const roles = await UserHttp.getRoles();
+    const roles = (await UserHttp.getRoles()) as Roles;
     setSelectedRole([]);
 
     setRoles(

+ 13 - 0
client/src/pages/user/Types.ts

@@ -99,3 +99,16 @@ export interface PrivilegeOptionsProps {
   objectName?: string;
   title: string;
 }
+
+export type RBACOptions = {
+  GlobalPrivileges: Record<string, unknown>;
+  CollectionPrivileges: Record<string, unknown>;
+  RbacObjects: Record<string, unknown>;
+  UserPrivileges: Record<string, unknown>;
+  Privileges: Record<string, unknown>;
+};
+
+export type RoleOptions = string[];
+export type Roles = {
+  results: any[];
+};

+ 3 - 2
client/src/pages/user/UpdateRoleDialog.tsx

@@ -11,6 +11,7 @@ import {
   CreateRoleProps,
   CreateRoleParams,
   PrivilegeOptionsProps,
+  RBACOptions,
 } from './Types';
 import PrivilegeOptions from './PrivilegeOptions';
 
@@ -40,7 +41,7 @@ const UpdateRoleDialog: FC<CreateRoleProps> = ({
   const { t: userTrans } = useTranslation('user');
   const { t: btnTrans } = useTranslation('btn');
   const { t: warningTrans } = useTranslation('warning');
-  const [rbacOptions, setRbacOptions] = useState({
+  const [rbacOptions, setRbacOptions] = useState<RBACOptions>({
     GlobalPrivileges: {},
     CollectionPrivileges: {},
     RbacObjects: {},
@@ -49,7 +50,7 @@ const UpdateRoleDialog: FC<CreateRoleProps> = ({
   });
 
   const fetchRBAC = async () => {
-    const rbacOptions = await UserHttp.getRBAC();
+    const rbacOptions = (await UserHttp.getRBAC()) as RBACOptions;
 
     setRbacOptions(rbacOptions);
   };

+ 8 - 4
client/src/pages/user/UpdateUserRole.tsx

@@ -8,7 +8,11 @@ import {
 import { FC, useState, useEffect } from 'react';
 import { useTranslation } from 'react-i18next';
 import DialogTemplate from '@/components/customDialog/DialogTemplate';
-import { UpdateUserRoleProps, UpdateUserRoleParams } from './Types';
+import {
+  UpdateUserRoleProps,
+  UpdateUserRoleParams,
+  RoleOptions,
+} from './Types';
 import { UserHttp } from '@/http';
 
 const useStyles = makeStyles((theme: Theme) => ({
@@ -31,7 +35,7 @@ const UpdateUserRole: FC<UpdateUserRoleProps> = ({
 }) => {
   const { t: userTrans } = useTranslation('user');
   const { t: btnTrans } = useTranslation('btn');
-  const [roleOptions, setRoleOptions] = useState([]);
+  const [roleOptions, setRoleOptions] = useState<RoleOptions>([]);
 
   const [form, setForm] = useState<UpdateUserRoleParams>({
     username: username,
@@ -46,9 +50,9 @@ const UpdateUserRole: FC<UpdateUserRoleProps> = ({
   };
 
   const fetchAllRoles = async () => {
-    const roles = await UserHttp.getRoles();
+    const roles = (await UserHttp.getRoles()) as RoleOptions;
 
-    setRoleOptions(roles.results.map((r: any) => r.role.name));
+    setRoleOptions(roles.map((r: any) => r.role.name));
   };
 
   useEffect(() => {