@merncloud/permission-resolver
Version:
Reusable RBAC + ABAC permission resolver for Node.js
27 lines (26 loc) • 819 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.evaluateCondition = evaluateCondition;
const json_logic_js_1 = __importDefault(require("json-logic-js"));
function evaluateCondition(condition, subject, resource) {
const context = {
subject: {
...subject,
attributes: subject.attributes || {},
},
resource: {
...resource,
attributes: resource.attributes || {},
},
};
try {
return json_logic_js_1.default.apply(condition, context);
}
catch (err) {
console.error("Condition evaluation failed:", err);
return false;
}
}