feat: added api to fetch allowed ui models of an user
This commit is contained in:
@@ -6,6 +6,7 @@ const User = require("./../models/User");
|
|||||||
const { JWT_SECRET, JWT_REFRESH_EXPIRY_TIME, JWT_ACCESS_EXPIRY_TIME } = require("./../config/env");
|
const { JWT_SECRET, JWT_REFRESH_EXPIRY_TIME, JWT_ACCESS_EXPIRY_TIME } = require("./../config/env");
|
||||||
const UserRole = require("../models/UserRole");
|
const UserRole = require("../models/UserRole");
|
||||||
const UserPermission = require("../models/UserPermission");
|
const UserPermission = require("../models/UserPermission");
|
||||||
|
const { AllUIModules } = require("../config/constants");
|
||||||
|
|
||||||
const createAccessToken = (id) => {
|
const createAccessToken = (id) => {
|
||||||
return jwt.sign({ id }, JWT_SECRET, {
|
return jwt.sign({ id }, JWT_SECRET, {
|
||||||
@@ -123,4 +124,30 @@ module.exports = {
|
|||||||
);
|
);
|
||||||
res.send({ success: true, data: response });
|
res.send({ success: true, data: response });
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getUIAccessControl: async (req, res, next) => {
|
||||||
|
try {
|
||||||
|
const user = res.locals.user;
|
||||||
|
|
||||||
|
const userUIPermissions = [];
|
||||||
|
|
||||||
|
for (const role of user.roles) {
|
||||||
|
for (const permission of role.permissions) {
|
||||||
|
if (AllUIModules.includes(permission.name) && !userUIPermissions.includes(permission.name)) {
|
||||||
|
userUIPermissions.push(permission.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const permission of user.permissions) {
|
||||||
|
if (AllUIModules.includes(permission.name) && !userUIPermissions.includes(permission.name)) {
|
||||||
|
userUIPermissions.push(permission.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
res.send({ success: true, data: userUIPermissions });
|
||||||
|
} catch (error) {
|
||||||
|
next(error);
|
||||||
|
}
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -6,5 +6,6 @@ router.post("/register", controller.registerUser);
|
|||||||
router.post("/login", controller.loginUser);
|
router.post("/login", controller.loginUser);
|
||||||
router.post("/:user/add-access", AuthenticateMiddleware, SuperAdminCheck, controller.addUserAccessControl);
|
router.post("/:user/add-access", AuthenticateMiddleware, SuperAdminCheck, controller.addUserAccessControl);
|
||||||
router.post("/:user/remove-access", AuthenticateMiddleware, SuperAdminCheck, controller.removeUserAccessControl);
|
router.post("/:user/remove-access", AuthenticateMiddleware, SuperAdminCheck, controller.removeUserAccessControl);
|
||||||
|
router.get("/allowed-ui-modules", AuthenticateMiddleware, controller.getUIAccessControl);
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|||||||
Reference in New Issue
Block a user