24 lines
679 B
TypeScript
24 lines
679 B
TypeScript
|
|
import { get, put } from '../request'
|
|||
|
|
|
|||
|
|
/** ACL 条目 */
|
|||
|
|
export interface AclEntry {
|
|||
|
|
principal_type: 'user' | 'role'
|
|||
|
|
principal_id: string
|
|||
|
|
permissions: string[]
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/** 资源 ACL(含已有条目) */
|
|||
|
|
export interface ResourceAcl {
|
|||
|
|
resource_type: string
|
|||
|
|
resource_id: string
|
|||
|
|
entries: AclEntry[]
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/** 查询资源 ACL */
|
|||
|
|
export const getResourceAcl = (resourceType: string, resourceId: string) =>
|
|||
|
|
get<ResourceAcl>(`/resources/${resourceType}/${resourceId}/acl`)
|
|||
|
|
|
|||
|
|
/** 设置资源 ACL */
|
|||
|
|
export const setResourceAcl = (resourceType: string, resourceId: string, entries: AclEntry[]) =>
|
|||
|
|
put<ResourceAcl>(`/resources/${resourceType}/${resourceId}/acl`, { entries })
|