- frontend: ESLint 에러 86건 수정 (unused-vars, set-state-in-effect, static-components 등) - backend: simulation.ts req.params 타입 단언 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
60 lines
1.7 KiB
TypeScript
60 lines
1.7 KiB
TypeScript
import { Router } from 'express'
|
|
import { requireAuth, requireRole } from '../auth/authMiddleware.js'
|
|
import { listRolesWithPermissions, updatePermissions, updateRoleDefault } from './roleService.js'
|
|
|
|
const router = Router()
|
|
|
|
router.use(requireAuth)
|
|
router.use(requireRole('ADMIN'))
|
|
|
|
// GET /api/roles
|
|
router.get('/', async (_req, res) => {
|
|
try {
|
|
const roles = await listRolesWithPermissions()
|
|
res.json(roles)
|
|
} catch (err) {
|
|
console.error('[roles] 목록 조회 오류:', err)
|
|
res.status(500).json({ error: '역할 목록 조회 중 오류가 발생했습니다.' })
|
|
}
|
|
})
|
|
|
|
// PUT /api/roles/:id/permissions
|
|
router.put('/:id/permissions', async (req, res) => {
|
|
try {
|
|
const roleSn = Number(req.params.id)
|
|
const { permissions } = req.body
|
|
|
|
if (!Array.isArray(permissions)) {
|
|
res.status(400).json({ error: '권한 목록이 필요합니다.' })
|
|
return
|
|
}
|
|
|
|
await updatePermissions(roleSn, permissions)
|
|
res.json({ success: true })
|
|
} catch (err) {
|
|
console.error('[roles] 권한 수정 오류:', err)
|
|
res.status(500).json({ error: '권한 수정 중 오류가 발생했습니다.' })
|
|
}
|
|
})
|
|
|
|
// PUT /api/roles/:id/default — 기본 역할 토글
|
|
router.put('/:id/default', async (req, res) => {
|
|
try {
|
|
const roleSn = Number(req.params.id)
|
|
const { isDefault } = req.body
|
|
|
|
if (typeof isDefault !== 'boolean') {
|
|
res.status(400).json({ error: 'isDefault 값이 필요합니다.' })
|
|
return
|
|
}
|
|
|
|
await updateRoleDefault(roleSn, isDefault)
|
|
res.json({ success: true })
|
|
} catch (err) {
|
|
console.error('[roles] 기본 역할 변경 오류:', err)
|
|
res.status(500).json({ error: '기본 역할 변경 중 오류가 발생했습니다.' })
|
|
}
|
|
})
|
|
|
|
export default router
|