UnisKB/ui/src/utils/dynamics-api/permission-api.ts

54 lines
1.7 KiB
TypeScript
Raw Normal View History

import {PermissionConst, EditionConst, RoleConst} from '@/utils/permission/data'
import {hasPermission} from '@/utils/permission/index'
2025-06-17 08:11:07 +00:00
import roleSystemApi from '@/api/system/role'
import roleWorkspaceApi from '@/api/workspace/role'
2025-07-01 09:38:02 +00:00
import systemWorkspaceApi from '@/api/system/workspace'
import workspaceApi from '@/api/workspace/workspace'
import systemChatUserApi from '@/api/system/chat-user'
import workspaceChatUserApi from '@/api/workspace/chat-user'
import systemUserGroupApi from '@/api/system/user-group'
import workspaceUserGroupApi from '@/api/workspace/user-group'
import useStore from "@/stores";
2025-06-17 08:11:07 +00:00
// 系统管理员 API
const systemApiMap = {
role: roleSystemApi,
2025-07-01 09:38:02 +00:00
workspace: systemWorkspaceApi,
chatUser: systemChatUserApi,
2025-07-02 02:55:21 +00:00
userGroup: systemUserGroupApi,
2025-06-17 08:11:07 +00:00
} as any
// 企业版工作空间管理员 API
const workspaceApiMap = {
role: roleWorkspaceApi,
2025-07-01 09:38:02 +00:00
workspace: workspaceApi,
chatUser: workspaceChatUserApi,
2025-07-02 02:55:21 +00:00
userGroup: workspaceUserGroupApi,
2025-06-17 08:11:07 +00:00
} as any
/** API
* loadPermissionApi('role')
*/
const {user} = useStore()
2025-06-17 08:11:07 +00:00
export function loadPermissionApi(type: string) {
2025-06-27 08:13:56 +00:00
if (hasPermission([EditionConst.IS_EE, EditionConst.IS_PE], 'OR')) {
user.getHasPermissionWorkspaceManage()
2025-07-01 09:38:02 +00:00
if (hasPermission([RoleConst.ADMIN, RoleConst.EXTENDS_ADMIN], 'OR')) {
2025-06-18 03:26:21 +00:00
// 加载系统管理员 API
2025-06-26 10:38:00 +00:00
return systemApiMap[type]
2025-07-02 02:55:21 +00:00
} else if (
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.EXTENDS_WORKSPACE_MANAGE.getWorkspaceRole,
],
'OR',
)
) {
2025-06-26 10:38:00 +00:00
// 加载企业版工作空间管理员 API
2025-06-18 03:26:21 +00:00
return workspaceApiMap[type]
}
2025-06-17 08:11:07 +00:00
}
}