@backstage-community/plugin-rbac-backend
Version:
37 lines (33 loc) • 1.13 kB
JavaScript
;
var casbin = require('casbin');
class LowercaseFileAdapter extends casbin.FileAdapter {
async loadPolicy(model) {
if (!this.filePath) {
return;
}
await this.loadLowercasePolicyFile(model, casbin.Helper.loadPolicyLine);
}
transformLineToLowercaseGroupsUsers(line) {
if (line.trim().startsWith("g")) {
const policyArray = line.split(",");
if (policyArray.length >= 1 && policyArray[0].trim().startsWith("g")) {
policyArray[1] = policyArray[1].toLocaleLowerCase("en-US");
}
return policyArray.join(",");
}
return line;
}
async loadLowercasePolicyFile(model, handler) {
const bodyBuf = await (this.fs ? this.fs : casbin.mustGetDefaultFileSystem()).readFileSync(this.filePath);
const lines = bodyBuf.toString().split("\n");
lines.forEach((line) => {
if (!line) {
return;
}
const lowercasedLine = this.transformLineToLowercaseGroupsUsers(line);
handler(lowercasedLine, model);
});
}
}
exports.LowercaseFileAdapter = LowercaseFileAdapter;
//# sourceMappingURL=lowercase-file-adapter.cjs.js.map