- 新增 admin_roles/admin_permissions/admin_role_permissions 三表与种子数据(059迁移) - 接单平台全部管理路由从固定角色切换为细粒度权限校验 - 撤单按动作二次校验:退回大厅与取消订单分别要求对应权限 - 管理员账号页新增角色权限配置卡片(admin专属,带审计日志) - 权限更新走事务保证原子性;session实时解析权限确保修改立即生效
59 lines
1.7 KiB
TypeScript
59 lines
1.7 KiB
TypeScript
import { apiGet, apiPost, apiPut } from '@/lib/http'
|
|
import type { AdminPagination, AdminUserListItem } from '@/types/admin'
|
|
|
|
export type AdminRolePermission = {
|
|
permissionKey: string
|
|
permissionName: string
|
|
permissionGroup: string
|
|
description: string
|
|
enabled: boolean
|
|
}
|
|
|
|
export type AdminRolePermissions = {
|
|
roleKey: string
|
|
roleName: string
|
|
description: string
|
|
permissions: AdminRolePermission[]
|
|
}
|
|
|
|
export function fetchAdminRolePermissions() {
|
|
return apiGet<{ roles: AdminRolePermissions[] }>('/api/v1/admin/rbac')
|
|
}
|
|
|
|
export function updateAdminRolePermissions(roleKey: string, permissions: string[]) {
|
|
return apiPut<AdminRolePermissions>(`/api/v1/admin/rbac/roles/${roleKey}/permissions`, {
|
|
permissions,
|
|
})
|
|
}
|
|
|
|
export function fetchAdminUsers(params?: Record<string, unknown>) {
|
|
return apiGet<{ items: AdminUserListItem[]; pagination: AdminPagination }>(
|
|
'/api/v1/admin/users',
|
|
params,
|
|
)
|
|
}
|
|
|
|
export function createAdminUser(payload: {
|
|
username: string
|
|
password: string
|
|
role: string
|
|
status?: string
|
|
}) {
|
|
return apiPost<{ user: AdminUserListItem }>('/api/v1/admin/users', payload)
|
|
}
|
|
|
|
export function updateAdminUserRole(userId: number | string, payload: { role: string }) {
|
|
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/role`, payload)
|
|
}
|
|
|
|
export function updateAdminUserStatus(userId: number | string, payload: { status: string }) {
|
|
return apiPost<{ user: AdminUserListItem }>(`/api/v1/admin/users/${userId}/status`, payload)
|
|
}
|
|
|
|
export function resetAdminUserPassword(userId: number | string, payload: { password: string }) {
|
|
return apiPost<{ user: AdminUserListItem }>(
|
|
`/api/v1/admin/users/${userId}/reset-password`,
|
|
payload,
|
|
)
|
|
}
|