@backstage-community/plugin-rbac-backend
Version:
41 lines (35 loc) • 1.3 kB
JavaScript
;
var pluginPermissionNode = require('@backstage/plugin-permission-node');
var zod = require('zod');
var zodToJsonSchema = require('zod-to-json-schema');
var resource = require('./resource.cjs.js');
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
var zodToJsonSchema__default = /*#__PURE__*/_interopDefaultCompat(zodToJsonSchema);
const isOwner = pluginPermissionNode.createPermissionRule({
name: "IS_OWNER",
description: "Should allow access to RBAC roles and Permissions through ownership",
resourceRef: resource.permissionMetadataResourceRef,
paramsSchema: zod.z.object({
owners: zod.z.string().array().describe("List of entity refs to match against")
}),
apply: (roleMeta, { owners }) => {
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: zodToJsonSchema__default.default(isOwner.paramsSchema ?? zod.z.object({}))
};
const rules = { isOwner };
exports.rbacRules = rbacRules;
exports.rules = rules;
//# sourceMappingURL=rules.cjs.js.map