Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
import { get, put } from '../../core/request'
import type { ParamsPage, ResponsePage } from '../../core/types'
import type { Dict, ResourceAuthorizationTargetType, ResourceUserPermission, ResourceUserPermissionPayload } from '@/api/types'
import type {
Dict,
ResourceAuthorizationTargetType,
ResourceUserGroupPermission,
ResourceUserGroupPermissionPayload,
ResourceUserPermission,
ResourceUserPermissionPayload,
} from '@/api/types'

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

Expand Down Expand Up @@ -31,4 +38,36 @@ const putResourceAuthorization = (
)
}

export default { getResourceAuthorization, putResourceAuthorization }
/** 获取 System 资源管理中指定资源或文件夹的用户组权限分页列表。 */
const getResourceUserGroupAuthorization = (
workspaceId: string,
targetId: string,
resource: ResourceAuthorizationTargetType,
page: ParamsPage,
query?: Dict<unknown>,
) => {
return get<ResponsePage<ResourceUserGroupPermission>>(
`${getPrefix(workspaceId)}/user_group_resource/${targetId}/resource/${resource}/${page.currentPage}/${page.pageSize}`,
query,
)
}

/** 更新 System 资源管理中的用户组权限及文件夹生效范围。 */
const putResourceUserGroupAuthorization = (
workspaceId: string,
targetId: string,
resource: ResourceAuthorizationTargetType,
permissions: ResourceUserGroupPermissionPayload[],
) => {
return put<ResourceUserGroupPermissionPayload[], ResourceUserGroupPermissionPayload[]>(
`${getPrefix(workspaceId)}/user_group_resource/${targetId}/resource/${resource}`,
permissions,
)
}

export default {
getResourceAuthorization,
putResourceAuthorization,
getResourceUserGroupAuthorization,
putResourceUserGroupAuthorization,
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ const targetId = ref('')
const folderData = ref<FolderItem>()
const submitting = ref(false)

/* System 资源管理使用专属用户授权接口,用户组沿用现有接口。 */
/* System 资源管理使用专属用户/用户组授权接口,工作空间沿用现有接口。 */
const authorizationApi = computed(() => (isSystemResource() ? SystemResourceAuthorizationApi : ResourceAuthorizationApi))

/* 资源类型与权限选项 */
Expand Down Expand Up @@ -164,7 +164,7 @@ defineExpose({ open })
v-if="targetType === 'user-group' && targetId && workspaceId"
:key="targetId"
:submitting="submitting"
:api="ResourceAuthorizationApi"
:api="authorizationApi"
:workspace-id="workspaceId"
:target-id="targetId"
:type="authorizationType"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<script setup lang="ts">
import { computed, onMounted, ref, useTemplateRef } from 'vue'
import type ResourceAuthorizationApi from '@/api/admin/workspace/resource-authorization'
import type SystemResourceAuthorizationApi from '@/api/admin/system/resource-management/resource-authorization'
import { RESOURCE_PERMISSION } from '@/api/enums'
import type { Dict, ResourceAuthorizationTargetType, ResourcePermission, ResourceUserGroupPermission } from '@/api/types'
import MkTable from '@/components/global/mk-table/index.vue'
Expand All @@ -9,7 +10,7 @@ import UserGroupMembersDrawer from './UserGroupMembersDrawer.vue'
import type { ResourcePermissionOption } from '../types'

const props = defineProps<{
api: typeof ResourceAuthorizationApi
api: typeof ResourceAuthorizationApi | typeof SystemResourceAuthorizationApi
workspaceId: string
targetId: string
type: ResourceAuthorizationTargetType
Expand Down
Loading