Path: blob/1.0-develop/resources/scripts/state/permissions.ts
7459 views
import { action, Action, thunk, Thunk } from 'easy-peasy';1import getSystemPermissions from '@/api/getSystemPermissions';23export interface PanelPermissions {4[key: string]: {5description: string;6keys: { [k: string]: string };7};8}910export interface GloablPermissionsStore {11data: PanelPermissions;12setPermissions: Action<GloablPermissionsStore, PanelPermissions>;13getPermissions: Thunk<GloablPermissionsStore, void, Record<string, unknown>, any, Promise<void>>;14}1516const permissions: GloablPermissionsStore = {17data: {},1819setPermissions: action((state, payload) => {20state.data = payload;21}),2223getPermissions: thunk(async (actions) => {24const permissions = await getSystemPermissions();2526actions.setPermissions(permissions);27}),28};2930export default permissions;313233