完善角色权限与数据隔离
This commit is contained in:
@@ -587,6 +587,7 @@ export const createStaff = (data: { username: string; password: string; nickname
|
||||
post<StaffUser>('/staff', data)
|
||||
export const updateStaff = (id: number, data: { nickname?: string; role?: string; status?: string; password?: string }) =>
|
||||
put<StaffUser>(`/staff/${id}`, data)
|
||||
export const batchStaff = (data: { ids: number[]; action: string; new_role?: string }) => post('/staff/batch', data)
|
||||
export const deleteStaff = (id: number) => del(`/staff/${id}`)
|
||||
|
||||
// Tenant settings
|
||||
@@ -678,3 +679,50 @@ export const createAnnouncement = (data: { title: string; content: string; statu
|
||||
export const updateAnnouncement = (id: number, data: Partial<Announcement>) =>
|
||||
put<Announcement>(`/admin/announcements/${id}`, data)
|
||||
export const deleteAnnouncement = (id: number) => del(`/admin/announcements/${id}`)
|
||||
|
||||
// 权限管理
|
||||
export interface Permission {
|
||||
id: number
|
||||
code: string
|
||||
name: string
|
||||
module: string
|
||||
category: string
|
||||
sort_order: number
|
||||
}
|
||||
|
||||
export interface RoleWithStats {
|
||||
id: number
|
||||
tenant_id: number
|
||||
name: string
|
||||
code: string
|
||||
type: 'builtin' | 'custom'
|
||||
desc: string
|
||||
member_count: number
|
||||
perm_count: number
|
||||
created_at: string
|
||||
updated_at: string
|
||||
}
|
||||
|
||||
export interface RoleDetail {
|
||||
role: RoleWithStats
|
||||
permissions: string[]
|
||||
data_scopes: Record<string, 'all' | 'self'>
|
||||
member_count: number
|
||||
}
|
||||
|
||||
export interface MePermissions {
|
||||
role: string
|
||||
permissions: string[]
|
||||
}
|
||||
|
||||
export const getPermissions = () => get<Permission[]>('/roles/permissions')
|
||||
export const getRoles = () => get<RoleWithStats[]>('/roles')
|
||||
export const getRoleDetail = (id: number) => get<RoleDetail>(`/roles/${id}`)
|
||||
export const createRole = (data: { name: string; desc?: string; permissions: string[]; data_scopes?: Record<string, string> }) =>
|
||||
post<RoleWithStats>('/roles', data)
|
||||
export const updateRole = (id: number, data: { name?: string; desc?: string; permissions: string[]; data_scopes: Record<string, string> }) =>
|
||||
put<RoleWithStats>(`/roles/${id}`, data)
|
||||
export const updateBuiltinRole = (id: number, data: { desc?: string; permissions: string[]; data_scopes: Record<string, string> }) =>
|
||||
put<RoleWithStats>(`/roles/${id}/builtin`, data)
|
||||
export const deleteRole = (id: number) => del(`/roles/${id}`)
|
||||
export const mePermissions = () => get<MePermissions>('/me/permissions')
|
||||
|
||||
Reference in New Issue
Block a user