UNPKG

@backstage-community/plugin-rbac-backend

Version:
42 lines (38 loc) 1.17 kB
'use strict'; 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