117 lines
3.3 KiB
JavaScript
117 lines
3.3 KiB
JavaScript
import { Router } from 'express'
|
|
|
|
import {
|
|
createManagedAdminUser,
|
|
getAdminUserList,
|
|
resetManagedAdminUserPassword,
|
|
updateManagedAdminUserInventoryGroups,
|
|
updateManagedAdminUserRole,
|
|
updateManagedAdminUserStatus,
|
|
} from '../../services/admin/admin-auth-service.js'
|
|
import { createJsonHandler, requireAdminRoles } from './shared.js'
|
|
|
|
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) => ({
|
|
action: 'admin_user_created',
|
|
targetType: 'admin_user',
|
|
targetId: String(data.user.userId),
|
|
data: {
|
|
username: data.user.username,
|
|
role: data.user.role,
|
|
status: data.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) => ({
|
|
action: 'admin_user_role_updated',
|
|
targetType: 'admin_user',
|
|
targetId: String(data.user.userId),
|
|
data: {
|
|
username: data.user.username,
|
|
role: data.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) => ({
|
|
action: 'admin_user_status_updated',
|
|
targetType: 'admin_user',
|
|
targetId: String(data.user.userId),
|
|
data: {
|
|
username: data.user.username,
|
|
status: data.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) => ({
|
|
action: 'admin_user_inventory_groups_updated',
|
|
targetType: 'admin_user',
|
|
targetId: String(data.user.userId),
|
|
data: {
|
|
username: data.user.username,
|
|
inventoryGroupCodes: data.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) => ({
|
|
action: 'admin_user_password_reset',
|
|
targetType: 'admin_user',
|
|
targetId: String(data.user.userId),
|
|
data: {
|
|
username: data.user.username,
|
|
},
|
|
}),
|
|
},
|
|
))
|
|
|
|
export default router
|