| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- import { get, post, put, del } from '@/request/index'
- import { type Ref } from 'vue'
- import type { Result } from '@/request/Result'
- export interface UserGroup {
- id: string
- name: string
- desc: string
- is_active: boolean
- member_count?: number
- auth_count?: number
- create_time: string
- }
- export interface UserGroupMember {
- id: string
- username: string
- nick_name: string
- }
- export interface UserGroupAuthorization {
- id: string
- resource_type: 'APPLICATION' | 'MODEL' | 'TOOL' | 'KNOWLEDGE'
- resource_id: string
- permission: 'READ' | 'WRITE' | 'ADMIN'
- }
- // 获取用户组列表
- export function getUserGroupList(
- workspaceId: string,
- loading?: Ref<boolean>,
- ): Promise<Result<UserGroup[]>> {
- return get(`workspace/${workspaceId}/user_group`, undefined, loading)
- }
- // 创建用户组
- export function createUserGroup(
- workspaceId: string,
- data: { name: string; desc?: string },
- loading?: Ref<boolean>,
- ): Promise<Result<UserGroup>> {
- return post(`workspace/${workspaceId}/user_group/create`, data, loading)
- }
- // 获取用户组详情
- export function getUserGroupDetail(
- workspaceId: string,
- groupId: string,
- loading?: Ref<boolean>,
- ): Promise<Result<UserGroup & { members: UserGroupMember[]; authorizations: UserGroupAuthorization[] }>> {
- return get(`workspace/${workspaceId}/user_group/${groupId}`, undefined, loading)
- }
- // 更新用户组
- export function updateUserGroup(
- workspaceId: string,
- groupId: string,
- data: { name?: string; desc?: string; is_active?: boolean },
- loading?: Ref<boolean>,
- ): Promise<Result<UserGroup>> {
- return put(`workspace/${workspaceId}/user_group/${groupId}`, data, loading)
- }
- // 删除用户组
- export function deleteUserGroup(
- workspaceId: string,
- groupId: string,
- loading?: Ref<boolean>,
- ): Promise<Result<boolean>> {
- return del(`workspace/${workspaceId}/user_group/${groupId}`, undefined, loading)
- }
- // 批量添加成员
- export function batchAddMembers(
- workspaceId: string,
- groupId: string,
- userIds: string[],
- loading?: Ref<boolean>,
- ): Promise<Result<{ added_count: number }>> {
- return post(`workspace/${workspaceId}/user_group/${groupId}/batch_add_members`, { user_ids: userIds }, loading)
- }
- // 批量移除成员
- export function batchRemoveMembers(
- workspaceId: string,
- groupId: string,
- userIds: string[],
- loading?: Ref<boolean>,
- ): Promise<Result<{ removed_count: number }>> {
- return post(`workspace/${workspaceId}/user_group/${groupId}/batch_remove_members`, { user_ids: userIds }, loading)
- }
- // 批量授权
- export function batchAuthorize(
- workspaceId: string,
- groupId: string,
- authorizations: Array<{
- resource_type: string
- resource_id: string
- permission?: string
- }>,
- loading?: Ref<boolean>,
- ): Promise<Result<{ added_count: number }>> {
- return post(`workspace/${workspaceId}/user_group/${groupId}/batch_authorize`, { authorizations }, loading)
- }
- // 批量撤销授权
- export function batchRevokeAuthorization(
- workspaceId: string,
- groupId: string,
- authIds: string[],
- loading?: Ref<boolean>,
- ): Promise<Result<{ removed_count: number }>> {
- return post(`workspace/${workspaceId}/user_group/${groupId}/batch_revoke`, { auth_ids: authIds }, loading)
- }
|