UNPKG

@backstage-community/plugin-rbac-backend

Version:
37 lines (33 loc) 1.13 kB
'use strict'; 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