@backstage-community/plugin-rbac-backend
Version:
42 lines (38 loc) • 1.17 kB
JavaScript
;
var pluginPermissionNode = require('@backstage/plugin-permission-node');
var v3 = require('zod/v3');
var v4 = require('zod/v4');
var resource = require('./resource.cjs.js');
const isOwner = pluginPermissionNode.createPermissionRule({
name: "IS_OWNER",
description: "Should allow access to RBAC roles and Permissions through ownership",
resourceRef: resource.permissionMetadataResourceRef,
paramsSchema: v3.z.object({
owners: v3.z.string().array().describe("List of entity refs to match against")
}),
apply: (roleMeta, { owners }) => {
if (roleMeta.isDefault) {
return true;
}
if (!roleMeta.owner) {
return false;
}
return owners.includes(roleMeta.owner);
},
toQuery: ({ owners }) => ({
key: "owners",
values: owners
})
});
const rbacRules = {
name: isOwner.name,
description: isOwner.description,
resourceType: isOwner.resourceType,
paramsSchema: v4.z.object({
owners: v4.z.string().array().describe("List of entity refs to match against")
}).toJSONSchema()
};
const rules = { isOwner };
exports.rbacRules = rbacRules;
exports.rules = rules;
//# sourceMappingURL=rules.cjs.js.map