UNPKG

@backstage-community/plugin-rbac-backend

Version:
41 lines (35 loc) 1.3 kB
'use strict'; 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