refactor: add workspace management permission handling in user and permission API

This commit is contained in:
wxg0103 2025-07-11 16:26:57 +08:00
parent 07a049dddc
commit caa03dc489
2 changed files with 18 additions and 3 deletions

View File

@ -94,7 +94,19 @@ const useUserStore = defineStore('user', {
isEE() {
return this.edition == 'EE' && this.license_is_valid
},
getEditionName() {
getHasPermissionWorkspaceManage() {
const workspaceManagePermissions = this.userInfo?.role
.filter((permission) => permission.startsWith('WORKSPACE_MANAGE'))
.map((permission) => {
const parts = permission.split('/WORKSPACE/');
return parts.length > 1 ? parts[1] : null; // 提取工作空间ID
})
.filter((id) => id !== null); // 过滤掉无效的ID
if (workspaceManagePermissions && workspaceManagePermissions.length > 0) {
this.setWorkspaceId(workspaceManagePermissions[0])
}
},
getEditionName() {
return this.edition
},
async profile(loading?: Ref<boolean>) {

View File

@ -1,5 +1,5 @@
import { PermissionConst, EditionConst, RoleConst } from '@/utils/permission/data'
import { hasPermission } from '@/utils/permission/index'
import {PermissionConst, EditionConst, RoleConst} from '@/utils/permission/data'
import {hasPermission} from '@/utils/permission/index'
import roleSystemApi from '@/api/system/role'
import roleWorkspaceApi from '@/api/workspace/role'
import systemWorkspaceApi from '@/api/system/workspace'
@ -8,6 +8,7 @@ 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";
// 系统管理员 API
const systemApiMap = {
@ -28,9 +29,11 @@ const workspaceApiMap = {
/** API
* loadPermissionApi('role')
*/
const {user} = useStore()
export function loadPermissionApi(type: string) {
if (hasPermission([EditionConst.IS_EE, EditionConst.IS_PE], 'OR')) {
user.getHasPermissionWorkspaceManage()
if (hasPermission([RoleConst.ADMIN, RoleConst.EXTENDS_ADMIN], 'OR')) {
// 加载系统管理员 API
return systemApiMap[type]