后端迁移后台基础路由

This commit is contained in:
yml
2026-05-21 17:19:23 +08:00
parent 717866e5fb
commit f96bfe0b20
6 changed files with 107 additions and 101 deletions
+141
View File
@@ -0,0 +1,141 @@
import { Router } from 'express'
import {
createManagedAdminUser,
getAdminUserList,
resetManagedAdminUserPassword,
updateManagedAdminUserInventoryGroups,
updateManagedAdminUserRole,
updateManagedAdminUserStatus,
} from '../../services/admin/admin-auth-service.js'
import { createJsonHandler, requireAdminRoles } from './shared.js'
type AdminUserMutationResult = {
user: {
userId: number
username: string
role: string
status?: string
inventoryGroupCodes?: string[]
}
}
const router = Router()
router.use('/users', requireAdminRoles(['admin']))
router.get('/users', createJsonHandler(
(req) => getAdminUserList(req.query),
{
successMessage: 'ok',
errorMessage: '读取后台用户列表失败',
scope: '[admin/users]',
},
))
router.post('/users', createJsonHandler(
(req) => createManagedAdminUser(req.body),
{
successMessage: '后台用户已创建',
errorMessage: '创建后台用户失败',
scope: '[admin/users:create]',
audit: (_req, data) => {
const result = data as AdminUserMutationResult
return {
action: 'admin_user_created',
targetType: 'admin_user',
targetId: String(result.user.userId),
data: {
username: result.user.username,
role: result.user.role,
status: result.user.status,
},
}
},
},
))
router.post('/users/:userId/role', createJsonHandler(
(req) => updateManagedAdminUserRole(req.params.userId, req.body, req.adminSession),
{
successMessage: '用户角色已更新',
errorMessage: '更新用户角色失败',
scope: '[admin/users/:userId/role]',
audit: (_req, data) => {
const result = data as AdminUserMutationResult
return {
action: 'admin_user_role_updated',
targetType: 'admin_user',
targetId: String(result.user.userId),
data: {
username: result.user.username,
role: result.user.role,
},
}
},
},
))
router.post('/users/:userId/status', createJsonHandler(
(req) => updateManagedAdminUserStatus(req.params.userId, req.body, req.adminSession),
{
successMessage: '用户状态已更新',
errorMessage: '更新用户状态失败',
scope: '[admin/users/:userId/status]',
audit: (_req, data) => {
const result = data as AdminUserMutationResult
return {
action: 'admin_user_status_updated',
targetType: 'admin_user',
targetId: String(result.user.userId),
data: {
username: result.user.username,
status: result.user.status,
},
}
},
},
))
router.post('/users/:userId/inventory-groups', createJsonHandler(
(req) => updateManagedAdminUserInventoryGroups(req.params.userId, req.body, req.adminSession),
{
successMessage: '用户库存组已更新',
errorMessage: '更新用户库存组失败',
scope: '[admin/users/:userId/inventory-groups]',
audit: (_req, data) => {
const result = data as AdminUserMutationResult
return {
action: 'admin_user_inventory_groups_updated',
targetType: 'admin_user',
targetId: String(result.user.userId),
data: {
username: result.user.username,
inventoryGroupCodes: result.user.inventoryGroupCodes,
},
}
},
},
))
router.post('/users/:userId/reset-password', createJsonHandler(
(req) => resetManagedAdminUserPassword(req.params.userId, req.body),
{
successMessage: '用户密码已重置',
errorMessage: '重置用户密码失败',
scope: '[admin/users/:userId/reset-password]',
audit: (_req, data) => {
const result = data as AdminUserMutationResult
return {
action: 'admin_user_password_reset',
targetType: 'admin_user',
targetId: String(result.user.userId),
data: {
username: result.user.username,
},
}
},
},
))
export default router