feat(permissions): C-4a — API конструктора ролей (/api/roles, admin)
rolesController + routes/roles (admin, inline guards): GET список (с числом пользователей), POST создать кастомную роль (имя-идентификатор + метка + base_roles; засев прав из функциональной базы), PUT изменить, DELETE удалить (пользователей возвращает на базу), GET /:name/permissions (эффективная карта база+оверлей + defs). setPermission теперь принимает кастомные роли (ключ валидируется по базе, хранится под именем роли). Смонтировано в server.js + тест-харнесс. Тест roles-api 5/5. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
'use strict';
|
||||
/* /api/roles — конструктор кастомных ролей (admin). См. rolesController. */
|
||||
const router = require('express').Router();
|
||||
const { authMiddleware, requireRole } = require('../middleware/auth');
|
||||
const c = require('../controllers/rolesController');
|
||||
|
||||
router.use(authMiddleware);
|
||||
|
||||
router.get('/', requireRole('admin'), c.listRoles);
|
||||
router.post('/', requireRole('admin'), c.createRole);
|
||||
router.get('/:name/permissions', requireRole('admin'), c.getRolePermissions);
|
||||
router.put('/:name', requireRole('admin'), c.updateRole);
|
||||
router.delete('/:name', requireRole('admin'), c.deleteRole);
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user