Skip to content

Commit 3e2185e

Browse files
committed
feat: add user group authorization management for system resources
1 parent 57c8965 commit 3e2185e

3 files changed

Lines changed: 45 additions & 5 deletions

File tree

‎ui/src/api/admin/system/resource-management/resource-authorization.ts‎

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
import { get, put } from '../../core/request'
22
import type { ParamsPage, ResponsePage } from '../../core/types'
3-
import type { Dict, ResourceAuthorizationTargetType, ResourceUserPermission, ResourceUserPermissionPayload } from '@/api/types'
3+
import type {
4+
Dict,
5+
ResourceAuthorizationTargetType,
6+
ResourceUserGroupPermission,
7+
ResourceUserGroupPermissionPayload,
8+
ResourceUserPermission,
9+
ResourceUserPermissionPayload,
10+
} from '@/api/types'
411

512
const getPrefix = (workspaceId: string) => `/system/workspace/${workspaceId}/resource_management`
613

@@ -31,4 +38,36 @@ const putResourceAuthorization = (
3138
)
3239
}
3340

34-
export default { getResourceAuthorization, putResourceAuthorization }
41+
/** 获取 System 资源管理中指定资源或文件夹的用户组权限分页列表。 */
42+
const getResourceUserGroupAuthorization = (
43+
workspaceId: string,
44+
targetId: string,
45+
resource: ResourceAuthorizationTargetType,
46+
page: ParamsPage,
47+
query?: Dict<unknown>,
48+
) => {
49+
return get<ResponsePage<ResourceUserGroupPermission>>(
50+
`${getPrefix(workspaceId)}/user_group_resource/${targetId}/resource/${resource}/${page.currentPage}/${page.pageSize}`,
51+
query,
52+
)
53+
}
54+
55+
/** 更新 System 资源管理中的用户组权限及文件夹生效范围。 */
56+
const putResourceUserGroupAuthorization = (
57+
workspaceId: string,
58+
targetId: string,
59+
resource: ResourceAuthorizationTargetType,
60+
permissions: ResourceUserGroupPermissionPayload[],
61+
) => {
62+
return put<ResourceUserGroupPermissionPayload[], ResourceUserGroupPermissionPayload[]>(
63+
`${getPrefix(workspaceId)}/user_group_resource/${targetId}/resource/${resource}`,
64+
permissions,
65+
)
66+
}
67+
68+
export default {
69+
getResourceAuthorization,
70+
putResourceAuthorization,
71+
getResourceUserGroupAuthorization,
72+
putResourceUserGroupAuthorization,
73+
}

‎ui/src/components/business/resource-authorization-drawer/index.vue‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ const targetId = ref('')
3131
const folderData = ref<FolderItem>()
3232
const submitting = ref(false)
3333
34-
/* System 资源管理使用专属用户授权接口,用户组沿用现有接口。 */
34+
/* System 资源管理使用专属用户/用户组授权接口,工作空间沿用现有接口。 */
3535
const authorizationApi = computed(() => (isSystemResource() ? SystemResourceAuthorizationApi : ResourceAuthorizationApi))
3636
3737
/* 资源类型与权限选项 */
@@ -164,7 +164,7 @@ defineExpose({ open })
164164
v-if="targetType === 'user-group' && targetId && workspaceId"
165165
:key="targetId"
166166
:submitting="submitting"
167-
:api="ResourceAuthorizationApi"
167+
:api="authorizationApi"
168168
:workspace-id="workspaceId"
169169
:target-id="targetId"
170170
:type="authorizationType"

‎ui/src/components/business/resource-authorization-drawer/user-group/UserGroupAuthorization.vue‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<script setup lang="ts">
22
import { computed, onMounted, ref, useTemplateRef } from 'vue'
33
import type ResourceAuthorizationApi from '@/api/admin/workspace/resource-authorization'
4+
import type SystemResourceAuthorizationApi from '@/api/admin/system/resource-management/resource-authorization'
45
import { RESOURCE_PERMISSION } from '@/api/enums'
56
import type { Dict, ResourceAuthorizationTargetType, ResourcePermission, ResourceUserGroupPermission } from '@/api/types'
67
import MkTable from '@/components/global/mk-table/index.vue'
@@ -9,7 +10,7 @@ import UserGroupMembersDrawer from './UserGroupMembersDrawer.vue'
910
import type { ResourcePermissionOption } from '../types'
1011
1112
const props = defineProps<{
12-
api: typeof ResourceAuthorizationApi
13+
api: typeof ResourceAuthorizationApi | typeof SystemResourceAuthorizationApi
1314
workspaceId: string
1415
targetId: string
1516
type: ResourceAuthorizationTargetType

0 commit comments

Comments
 (0)