fix: add rule check to RulesHandler
All checks were successful
All checks were successful
This commit is contained in:
parent
c33d4faacd
commit
dd981ec7ee
@ -5,14 +5,24 @@ export default async function ruleHandler(req: Request, response: Response, next
|
|||||||
try {
|
try {
|
||||||
const rules = req.body.user.rules;
|
const rules = req.body.user.rules;
|
||||||
const service = req.path && req.path.split("/")[4];
|
const service = req.path && req.path.split("/")[4];
|
||||||
|
const requiredRule = req.method + " " + service;
|
||||||
|
|
||||||
if (!rules) {
|
if (!rules) {
|
||||||
response.status(HttpCodes.UNAUTHORIZED).send("Unauthorized without rules");
|
response.status(HttpCodes.UNAUTHORIZED).send("Unauthorized without rules");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!rules.includes(req.method + " " + service)) {
|
if (!rules.includes(requiredRule)) {
|
||||||
response.status(HttpCodes.UNAUTHORIZED).send("Unauthorized with those rules");
|
console.error(`Rule check failed for user ${req.body.user.userId}:`);
|
||||||
|
console.error(` Required rule: "${requiredRule}"`);
|
||||||
|
console.error(` User rules: [${rules.join(", ")}]`);
|
||||||
|
console.error(` Path: ${req.path}`);
|
||||||
|
console.error(` Method: ${req.method}`);
|
||||||
|
console.error(` Service: ${service}`);
|
||||||
|
|
||||||
|
response.status(HttpCodes.UNAUTHORIZED).send(
|
||||||
|
`Unauthorized with those rules. Required: "${requiredRule}", Provided: [${rules.join(", ")}]`
|
||||||
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user