feat(avatar): complete authorization management

This commit is contained in:
stefanfeng
2026-08-19 16:21:19 +08:00
parent 25d2494616
commit 2e2adeb9e2
10 changed files with 2106 additions and 614 deletions
+27 -11
View File
@@ -153,16 +153,41 @@ export interface Authorization {
targetName: string
permissions: string[]
status: 'active' | 'inactive'
takeoverEnabled: boolean
takeoverMode: 'immediate' | 'delayed'
takeoverDelaySeconds: number
createdAt: string
}
export type AuthorizationInput = Pick<
Authorization,
'targetType' | 'targetId' | 'targetName' | 'permissions'
>
// 获取授权列表
export const getAuthorizationList = (avatarId: string) =>
request.get<Authorization[]>(`/avatar/${avatarId}/authorizations`)
// 添加授权
export const createAuthorization = (avatarId: string, data: AuthorizationInput) =>
request.post<Authorization>(`/avatar/${avatarId}/authorizations`, data)
// 更新授权
export const updateAuthorization = (avatarId: string, data: Partial<Authorization>) =>
request.put(`/avatar/${avatarId}/authorizations`, data)
export const updateAuthorization = (avatarId: string, data: Partial<Authorization> & { id: string }) =>
request.put<Authorization>(`/avatar/${avatarId}/authorizations`, data)
// 删除授权
export const deleteAuthorization = (avatarId: string, authorizationId: string) =>
request.delete<{ id: string }>(`/avatar/${avatarId}/authorizations/${authorizationId}`)
// 更新单聊接管配置
export const updateTakeoverConfig = (avatarId: string, data: {
authorizationId: string
takeoverEnabled: boolean
takeoverMode?: 'immediate' | 'delayed'
takeoverDelaySeconds?: number
}) =>
request.put<Authorization>(`/avatar/${avatarId}/authorizations/takeover`, data)
// ==================== 组织管理 API ====================
@@ -383,13 +408,4 @@ export const getCurrentUser = () =>
export const logoutUser = () =>
request.post('/huihui/logout')
// 更新接管配置
export const updateTakeoverConfig = (avatarId: string, data: {
authorizationId: string
takeoverEnabled: boolean
takeoverMode?: 'immediate' | 'delayed'
takeoverDelaySeconds?: number
}) =>
request.put(`/avatar/${avatarId}/authorizations/takeover`, data)
export default request