Added manticore sync API.

This commit is contained in:
2026-06-08 05:50:29 +02:00
parent 1bc7dd3a43
commit 96b1a99e04
6 changed files with 70 additions and 9 deletions

View File

@@ -1,4 +1,6 @@
export default function verifyAbility(user, subject, action) {
import { HttpError } from '../src/errors.js';
function checkAbility(user, subject, action) {
if (!user?.abilities) {
return null;
}
@@ -8,8 +10,18 @@ export default function verifyAbility(user, subject, action) {
}
if (subject) {
return user.abilities.some((ability) => ability[subject] === true);
return user.abilities.some((ability) => ability[subject] === true || (ability.subject === subject && !ability.action));
}
return false;
}
export default function verifyAbility(user, subject, action, options = {}) {
const isAble = checkAbility(user, subject, action);
if (!isAble && options.throwError) {
throw new HttpError(`Insufficient privileges for ${[subject, action].filter(Boolean).join()}`, 403);
}
return isAble;
}