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
3 changes: 2 additions & 1 deletion apps/common/log/log.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,15 @@ def _get_user(request):
user = request.user
if user is None:
return {}
if hasattr(user, 'profile') and user.profile is not None:
user = user.profile
user_info = {
"id": str(user.id),
"email": user.email,
"phone": user.phone,
"nick_name": user.nick_name,
"username": user.username,
}
# 如果是 User 模型且有 role 属性
if hasattr(user, "role"):
user_info["role"] = user.role
return user_info
Expand Down
1 change: 1 addition & 0 deletions apps/users/serializers/user_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ def validate_normal_users(self, workspace_id: str, user_ids: list[str]):

mapping_model = DatabaseModelManage.get_model("workspace_user_role_mapping")
valid_user_ids = set(
str(uid) for uid in
mapping_model.objects.filter(
workspace_id=workspace_id,
user_id__in=user_id_set,
Expand Down
108 changes: 73 additions & 35 deletions ui/src/api/admin/system/user-groups.ts
Original file line number Diff line number Diff line change
@@ -1,44 +1,82 @@
import type { ListItem } from '@/api/types'
import { del, get, post } from '../core/request'
import type { ParamsPage, ResponsePage } from '../core/types'
import type { ListItem, RequestParams } from '@/api/types'

export interface SystemUserGroupRequest {
id?: string
export interface SystemUserGroup {
id: string
name: string
workspaceId: string
}

/**
* 创建或重命名系统用户组。
* TODO 后端接口就绪后,在此接入 Admin 请求层并移除本地占位返回。
*/
function postSystemUserGroup(group: SystemUserGroupRequest) {
return Promise.resolve<ListItem>({
id: group.id ?? crypto.randomUUID(),
name: group.name,
})
}

/**
* 删除系统用户组。
* TODO 后端接口就绪后,在此接入 Admin 请求层并移除本地占位返回。
*/
function deleteSystemUserGroup(_workspaceId: string, _groupId: string) {
return Promise.resolve(true)
}

/**
* 移除系统用户组成员。
* TODO 后端接口就绪后,在此接入 Admin 请求层并移除本地占位返回。
*/
function postRemoveSystemUserGroupMembers(
_workspaceId: string,
_groupId: string,
_memberIds: Array<number | string>,
workspace_id: string
count: number
}

export interface SystemUserGroupMember {
id: string
username: string
email: string
phone: string
is_active: boolean
role: string
nick_name: string
create_time: string
update_time: string
source: string
system_user_group_relation_id: string
}

const prefix = (workspaceId: string) => `/system/workspace/${workspaceId}/user_group`

export function getSystemUserGroups(workspaceId: string) {
return get<SystemUserGroup[]>(prefix(workspaceId))
}

export function postSystemUserGroup(workspaceId: string, group: { id?: string; name: string }) {
return post<{ id?: string; name: string }, SystemUserGroup>(prefix(workspaceId), group)
}

export function deleteSystemUserGroup(workspaceId: string, groupId: string) {
return del<undefined, boolean>(`${prefix(workspaceId)}/${groupId}`)
}

export function getSystemUserGroupMembers(
workspaceId: string,
groupId: string,
page: ParamsPage,
query?: RequestParams,
) {
return Promise.resolve(true)
return get<ResponsePage<SystemUserGroupMember>>(
`${prefix(workspaceId)}/${groupId}/user_list/${page.currentPage}/${page.pageSize}`,
query,
)
}

export function postSystemUserGroupMembers(
workspaceId: string,
groupId: string,
userIds: string[],
) {
return post<{ user_ids: string[] }, boolean>(
`${prefix(workspaceId)}/${groupId}/add_member`,
{ user_ids: userIds },
)
}

export function postRemoveSystemUserGroupMembers(
workspaceId: string,
groupId: string,
relationIds: string[],
) {
return del<{ group_relation_ids: string[] }, boolean>(
`${prefix(workspaceId)}/${groupId}/remove_member`,
undefined,
{ group_relation_ids: relationIds },
)
}

export default {
deleteSystemUserGroup,
postSystemUserGroup,
getSystemUserGroupMembers,
getSystemUserGroups,
postRemoveSystemUserGroupMembers,
postSystemUserGroup,
postSystemUserGroupMembers,
}
9 changes: 9 additions & 0 deletions ui/src/api/admin/system/user-manage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,14 @@ function getAllUsers(query?: RequestParams) {
return get<SystemUserOption[]>('/user/list', query)
}

/** 获取空间下的成员用户
* @param workspaceId 工作空间ID
* 资源授权 和用户组的 用户下拉列表使用
*/
function getWorkspaceMembers(workspaceId: string, query?: RequestParams) {
return get<SystemUserOption[]>(`/workspace/${workspaceId}/user_member`, query)
}

export default {
deleteUser,
getUserManagePage,
Expand All @@ -67,4 +75,5 @@ export default {
putUser,
putUserPassword,
getAllUsers,
getWorkspaceMembers,
}
Loading
Loading