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 })
|