rbac crud api
This commit is contained in:
@@ -76,15 +76,204 @@ module.exports = {
|
||||
});
|
||||
|
||||
|
||||
app.post('/api/rbac/getEntities', async (req, res) => {
|
||||
// res.status(200).json(await service.get('rbacManager').getEntities());
|
||||
})
|
||||
|
||||
app.post('/api/rbac/auths/create', async (req, res) => {
|
||||
const { auths } = req.body;
|
||||
// await service.get('rbacManager').createAuths(auths);
|
||||
res.status(200).json({ ok: true });
|
||||
})
|
||||
// =========================================================
|
||||
// 👤 AUTH
|
||||
// =========================================================
|
||||
|
||||
app.post('/api/rbac/auth/create', async (req, res) => {
|
||||
try {
|
||||
const user = await rbac.createAuth(req.body);
|
||||
res.json(user);
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.put('/api/rbac/auth/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.updateAuth(req.params.id, req.body);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.delete('/api/rbac/auth/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.deleteAuth(req.params.id);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
// =========================================================
|
||||
// 👥 GROUPS
|
||||
// =========================================================
|
||||
|
||||
app.post('/api/rbac/group/create', async (req, res) => {
|
||||
try {
|
||||
const group = await rbac.createGroup(req.body);
|
||||
res.json(group);
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.put('/api/rbac/group/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.updateGroup(req.params.id, req.body);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.delete('/api/rbac/group/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.deleteGroup(req.params.id);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
// =========================================================
|
||||
// 🔗 USER ↔ GROUP
|
||||
// =========================================================
|
||||
|
||||
app.post('/api/rbac/group/add-user', async (req, res) => {
|
||||
try {
|
||||
const { authId, groupId } = req.body;
|
||||
await rbac.addUserToGroup(authId, groupId);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.post('/api/rbac/group/remove-user', async (req, res) => {
|
||||
try {
|
||||
const { authId, groupId } = req.body;
|
||||
await rbac.removeUserFromGroup(authId, groupId);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
// =========================================================
|
||||
// 🎭 ROLES
|
||||
// =========================================================
|
||||
|
||||
app.post('/api/rbac/role/get', async (req, res) => {
|
||||
try {
|
||||
const role = await rbac.createRole(req.body);
|
||||
res.json(role);
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.put('/api/rbac/role/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.updateRole(req.params.id, req.body);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.delete('/api/rbac/role/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.deleteRole(req.params.id);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
// =========================================================
|
||||
// 🔗 ROLE ASSIGNMENTS
|
||||
// =========================================================
|
||||
|
||||
app.post('/api/rbac/role/assign-user', async (req, res) => {
|
||||
try {
|
||||
const { authId, roleId } = req.body;
|
||||
await rbac.assignRoleToUser(authId, roleId);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.post('/api/rbac/role/assign-group', async (req, res) => {
|
||||
try {
|
||||
const { groupId, roleId } = req.body;
|
||||
await rbac.assignRoleToGroup(groupId, roleId);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
// =========================================================
|
||||
// 🔐 PERMISSIONS
|
||||
// =========================================================
|
||||
|
||||
app.post('/permission', async (req, res) => {
|
||||
try {
|
||||
const perm = await rbac.createPermission(req.body);
|
||||
res.json(perm);
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.put('/permission/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.updatePermission(req.params.id, req.body);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.delete('/permission/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.deletePermission(req.params.id);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
// =========================================================
|
||||
// 🔗 ROLE ↔ PERMISSION
|
||||
// =========================================================
|
||||
|
||||
app.post('/api/rbac/role/add-permission', async (req, res) => {
|
||||
try {
|
||||
const { roleId, permissionId } = req.body;
|
||||
await rbac.addPermissionToRole(roleId, permissionId);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.post('/api/rbac/role/remove-permission', async (req, res) => {
|
||||
try {
|
||||
const { roleId, permissionId } = req.body;
|
||||
await rbac.removePermissionFromRole(roleId, permissionId);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
app.post('/api/plugins/activation', async (req, res) => {
|
||||
const { name, state } = req.body;
|
||||
|
||||
@@ -437,216 +437,7 @@ async removePermissionFromRole(roleId, permissionId) {
|
||||
}
|
||||
});
|
||||
}
|
||||
//#endregion
|
||||
|
||||
|
||||
|
||||
|
||||
const express = require('express');
|
||||
|
||||
function rbacRoutes(rbac) {
|
||||
const router = express.Router();
|
||||
|
||||
// =========================================================
|
||||
// 👤 AUTH
|
||||
// =========================================================
|
||||
|
||||
router.post('/auth/create', async (req, res) => {
|
||||
try {
|
||||
const user = await rbac.createAuth(req.body);
|
||||
res.json(user);
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
router.put('/auth/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.updateAuth(req.params.id, req.body);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
router.delete('/auth/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.deleteAuth(req.params.id);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
// =========================================================
|
||||
// 👥 GROUPS
|
||||
// =========================================================
|
||||
|
||||
router.post('/group', async (req, res) => {
|
||||
try {
|
||||
const group = await rbac.createGroup(req.body);
|
||||
res.json(group);
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
router.put('/group/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.updateGroup(req.params.id, req.body);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
router.delete('/group/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.deleteGroup(req.params.id);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
// =========================================================
|
||||
// 🔗 USER ↔ GROUP
|
||||
// =========================================================
|
||||
|
||||
router.post('/group/add-user', async (req, res) => {
|
||||
try {
|
||||
const { authId, groupId } = req.body;
|
||||
await rbac.addUserToGroup(authId, groupId);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
router.post('/group/remove-user', async (req, res) => {
|
||||
try {
|
||||
const { authId, groupId } = req.body;
|
||||
await rbac.removeUserFromGroup(authId, groupId);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
// =========================================================
|
||||
// 🎭 ROLES
|
||||
// =========================================================
|
||||
|
||||
router.post('/role', async (req, res) => {
|
||||
try {
|
||||
const role = await rbac.createRole(req.body);
|
||||
res.json(role);
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
router.put('/role/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.updateRole(req.params.id, req.body);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
router.delete('/role/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.deleteRole(req.params.id);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
// =========================================================
|
||||
// 🔗 ROLE ASSIGNMENTS
|
||||
// =========================================================
|
||||
|
||||
router.post('/role/assign-user', async (req, res) => {
|
||||
try {
|
||||
const { authId, roleId } = req.body;
|
||||
await rbac.assignRoleToUser(authId, roleId);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
router.post('/role/assign-group', async (req, res) => {
|
||||
try {
|
||||
const { groupId, roleId } = req.body;
|
||||
await rbac.assignRoleToGroup(groupId, roleId);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
// =========================================================
|
||||
// 🔐 PERMISSIONS
|
||||
// =========================================================
|
||||
|
||||
router.post('/permission', async (req, res) => {
|
||||
try {
|
||||
const perm = await rbac.createPermission(req.body);
|
||||
res.json(perm);
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
router.put('/permission/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.updatePermission(req.params.id, req.body);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
router.delete('/permission/:id', async (req, res) => {
|
||||
try {
|
||||
await rbac.deletePermission(req.params.id);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
// =========================================================
|
||||
// 🔗 ROLE ↔ PERMISSION
|
||||
// =========================================================
|
||||
|
||||
router.post('/role/add-permission', async (req, res) => {
|
||||
try {
|
||||
const { roleId, permissionId } = req.body;
|
||||
await rbac.addPermissionToRole(roleId, permissionId);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
router.post('/role/remove-permission', async (req, res) => {
|
||||
try {
|
||||
const { roleId, permissionId } = req.body;
|
||||
await rbac.removePermissionFromRole(roleId, permissionId);
|
||||
res.json({ ok: true });
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
return router;
|
||||
}
|
||||
|
||||
module.exports = rbacRoutes;
|
||||
//#endregio
|
||||
}
|
||||
|
||||
module.exports = RBACManager;
|
||||
Reference in New Issue
Block a user