fix: add rule check to RulesHandler
All checks were successful
Test - Build & Deploy to Scaleway / build-and-push-images-lecoffre (push) Successful in 1m45s
Test - Build & Deploy to Scaleway / deploy-back-lecoffre (push) Successful in 3s
Test - Build & Deploy to Scaleway / deploy-cron-lecoffre (push) Successful in 3s

This commit is contained in:
Sosthene 2025-08-01 21:17:10 +02:00
parent c33d4faacd
commit dd981ec7ee

View File

@ -5,14 +5,24 @@ export default async function ruleHandler(req: Request, response: Response, next
try {
const rules = req.body.user.rules;
const service = req.path && req.path.split("/")[4];
const requiredRule = req.method + " " + service;
if (!rules) {
response.status(HttpCodes.UNAUTHORIZED).send("Unauthorized without rules");
return;
}
if (!rules.includes(req.method + " " + service)) {
response.status(HttpCodes.UNAUTHORIZED).send("Unauthorized with those rules");
if (!rules.includes(requiredRule)) {
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;
}