@backstage-community/plugin-rbac 1.48.1 → 1.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +30 -0
- package/dist/alpha/apis.esm.js +29 -0
- package/dist/alpha/apis.esm.js.map +1 -0
- package/dist/alpha/navItems.esm.js +14 -0
- package/dist/alpha/navItems.esm.js.map +1 -0
- package/dist/alpha/pages.esm.js +14 -0
- package/dist/alpha/pages.esm.js.map +1 -0
- package/dist/{translations → alpha/translations}/de.esm.js +79 -79
- package/dist/alpha/translations/de.esm.js.map +1 -0
- package/dist/alpha/translations/es.esm.js +178 -0
- package/dist/alpha/translations/es.esm.js.map +1 -0
- package/dist/{translations → alpha/translations}/fr.esm.js +1 -0
- package/dist/alpha/translations/fr.esm.js.map +1 -0
- package/dist/alpha/translations/index.esm.js.map +1 -0
- package/dist/{translations → alpha/translations}/it.esm.js +1 -0
- package/dist/alpha/translations/it.esm.js.map +1 -0
- package/dist/{translations → alpha/translations}/ja.esm.js +1 -0
- package/dist/alpha/translations/ja.esm.js.map +1 -0
- package/dist/{translations → alpha/translations}/ref.esm.js +1 -0
- package/dist/alpha/translations/ref.esm.js.map +1 -0
- package/dist/alpha.d.ts +79 -1
- package/dist/alpha.esm.js +30 -2
- package/dist/alpha.esm.js.map +1 -1
- package/dist/components/ConditionalAccess/AddNestedConditionButton.esm.js.map +1 -1
- package/dist/components/ConditionalAccess/const.esm.js.map +1 -1
- package/dist/components/CreateRole/AddMembersForm.esm.js.map +1 -1
- package/dist/components/CreateRole/AddedMembersTableColumn.esm.js.map +1 -1
- package/dist/components/CreateRole/ReviewStep.esm.js.map +1 -1
- package/dist/components/CreateRole/SelectedPermissionPoliciesColumn.esm.js.map +1 -1
- package/dist/components/RbacPage.esm.js +1 -1
- package/dist/components/RbacPage.esm.js.map +1 -1
- package/dist/components/RoleOverview/MembersListColumns.esm.js.map +1 -1
- package/dist/components/RoleOverview/PermissionsListColumns.esm.js.map +1 -1
- package/dist/components/RolesList/RolesListColumns.esm.js.map +1 -1
- package/dist/components/Trans.esm.js.map +1 -1
- package/dist/hooks/useTranslation.esm.js +2 -2
- package/dist/hooks/useTranslation.esm.js.map +1 -1
- package/dist/package.json.esm.js +154 -0
- package/dist/package.json.esm.js.map +1 -0
- package/dist/utils/conditional-access-utils.esm.js.map +1 -1
- package/dist/utils/create-role-utils.esm.js.map +1 -1
- package/dist/utils/rbac-utils.esm.js.map +1 -1
- package/dist/utils/role-form-utils.esm.js.map +1 -1
- package/package.json +12 -3
- package/dist/translations/de.esm.js.map +0 -1
- package/dist/translations/es.esm.js +0 -178
- package/dist/translations/es.esm.js.map +0 -1
- package/dist/translations/fr.esm.js.map +0 -1
- package/dist/translations/index.esm.js.map +0 -1
- package/dist/translations/it.esm.js.map +0 -1
- package/dist/translations/ja.esm.js.map +0 -1
- package/dist/translations/ref.esm.js.map +0 -1
- /package/dist/{translations → alpha/translations}/index.esm.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac-utils.esm.js","sources":["../../src/utils/rbac-utils.ts"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n GroupEntity,\n isUserEntity,\n parseEntityRef,\n stringifyEntityRef,\n} from '@backstage/catalog-model';\nimport {\n AllOfCriteria,\n AnyOfCriteria,\n NotCriteria,\n PermissionCondition,\n PermissionCriteria,\n} from '@backstage/plugin-permission-common';\n\nimport { capitalizeFirstLetter } from './string-utils';\n\nimport {\n isResourcedPolicy,\n PermissionAction,\n PluginPermissionMetaData,\n PolicyDetails,\n RoleBasedPolicy,\n RoleConditionalPolicyDecision,\n} from '@backstage-community/plugin-rbac-common';\n\nimport { TranslationFunction } from '@backstage/core-plugin-api/alpha';\nimport { rbacTranslationRef } from '../translations';\n\nimport { criterias } from '../components/ConditionalAccess/const';\nimport { ConditionsData } from '../components/ConditionalAccess/types';\nimport {\n PluginsPermissionPoliciesData,\n RowPolicy,\n SelectedMember,\n} from '../components/CreateRole/types';\nimport {\n MemberEntity,\n MembersData,\n PermissionsData,\n PermissionsDataSet,\n PluginInfoType,\n} from '../types';\nimport { getMembersCount } from './create-role-utils';\n\nexport const getPermissionsArray = (\n role: string,\n policies: RoleBasedPolicy[],\n): RoleBasedPolicy[] => {\n if (!policies || policies?.length === 0 || !Array.isArray(policies)) {\n return [];\n }\n return policies.filter(\n (policy: RoleBasedPolicy) =>\n policy.entityReference === role && policy.effect !== 'deny',\n );\n};\n\nexport const getPermissions = (\n role: string,\n policies: RoleBasedPolicy[],\n): number => {\n return getPermissionsArray(role, policies).length;\n};\n\nexport const getMembersString = (\n res: {\n users: number;\n groups: number;\n },\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n): string => {\n let membersString = '';\n if (res.groups > 0) {\n const groupsText = res.groups > 1 ? t('common.groups') : t('common.group');\n membersString = `${res.groups} ${groupsText}`;\n }\n if (res.users > 0) {\n const usersText = res.users > 1 ? t('common.users') : t('common.user');\n membersString = membersString.concat(\n membersString.length > 0 ? ', ' : '',\n `${res.users} ${usersText}`,\n );\n }\n return membersString;\n};\n\nexport const getMembers = (\n members: (string | MembersData | SelectedMember)[],\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n): string => {\n if (!members || members.length === 0) {\n return t('common.noMembers');\n }\n\n const res = members.reduce(\n (acc, member) => {\n if (typeof member === 'object') {\n if (member.type === 'User' || member.type === 'user') {\n acc.users++;\n } else {\n acc.groups++;\n }\n } else {\n const entity = parseEntityRef(member) as any;\n if (isUserEntity(entity)) {\n acc.users++;\n } else {\n acc.groups++;\n }\n }\n return acc;\n },\n { users: 0, groups: 0 },\n );\n\n return getMembersString(res, t);\n};\n\nexport const getMembersFromGroup = (group: GroupEntity): number => {\n const membersList = group.relations?.reduce((acc, relation) => {\n let temp = acc;\n if (relation.type === 'hasMember') {\n temp++;\n }\n return temp;\n }, 0);\n return membersList ?? 0;\n};\n\nexport const getPluginInfo = (\n permissions: PluginPermissionMetaData[],\n policy: RoleBasedPolicy,\n): PluginInfoType | null =>\n permissions.reduce(\n (acc: PluginInfoType | null, p: PluginPermissionMetaData) => {\n const policyData = p.policies.find(pol => {\n if (pol.policy === policy.policy) {\n if (isResourcedPolicy(pol)) {\n if (pol.resourceType === policy.permission) {\n return true;\n }\n }\n if (pol.name === policy.permission) {\n return true;\n }\n }\n return false;\n });\n if (p.pluginId && policyData) {\n return {\n pluginId: p.pluginId,\n permissionName: policyData.name || '-',\n isResourced: isResourcedPolicy(policyData) || false,\n resourceType: isResourcedPolicy(policyData)\n ? policyData.resourceType\n : '',\n usingResourceType:\n isResourcedPolicy(policyData) &&\n policyData.resourceType === policy.permission,\n };\n }\n return acc;\n },\n null,\n );\n\nconst getPolicy = (str: string) => {\n const arr = str.split('.');\n return arr[arr.length - 1];\n};\n\nconst getAllPolicies = (\n permission: string,\n allowedPolicies: RowPolicy[],\n policies: PolicyDetails[],\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n locale = 'en-US',\n) => {\n const deniedPolicies = policies?.reduce((acc, p) => {\n const perm = p.name;\n if (\n permission === perm &&\n !allowedPolicies.find(\n allowedPolicy =>\n allowedPolicy.policy.toLocaleLowerCase(locale) ===\n p.policy?.toLocaleLowerCase(locale),\n )\n ) {\n acc.push({\n policy: capitalizeFirstLetter(p.policy) || t('common.use'),\n effect: 'deny',\n });\n }\n return acc;\n }, [] as RowPolicy[]);\n return [...(allowedPolicies || []), ...(deniedPolicies || [])];\n};\n\nexport const getPermissionsData = (\n policies: RoleBasedPolicy[],\n permissionPolicies: PluginPermissionMetaData[],\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n locale = 'en',\n): PermissionsData[] => {\n const data = policies.reduce(\n (acc: PermissionsDataSet[], policy: RoleBasedPolicy) => {\n if (policy?.effect === 'allow') {\n const policyStr =\n policy?.policy ?? getPolicy(policy.permission as string);\n const policyTitleCase = capitalizeFirstLetter(policyStr);\n const policyString = new Set<string>();\n const policiesSet = new Set<{ policy: string; effect: string }>();\n const pluginInfo = getPluginInfo(permissionPolicies, policy);\n if (pluginInfo?.pluginId) {\n acc.push({\n permission: pluginInfo.permissionName,\n plugin: pluginInfo.pluginId,\n policyString: policyString.add(policyTitleCase || t('common.use')),\n policies: policiesSet.add({\n policy: policyTitleCase || t('common.use'),\n effect: policy.effect,\n }),\n isResourced: pluginInfo.isResourced,\n resourceType: pluginInfo.resourceType,\n usingResourceType: pluginInfo.usingResourceType,\n });\n }\n }\n return acc;\n },\n [],\n );\n return data.map((p: PermissionsDataSet) => ({\n ...p,\n ...(p.policyString ? { policyString: Array.from(p.policyString) } : {}),\n policies: getAllPolicies(\n p.permission,\n Array.from(p.policies),\n permissionPolicies.find(pp => pp.pluginId === p.plugin)\n ?.policies as PolicyDetails[],\n t,\n locale,\n ),\n })) as PermissionsData[];\n};\n\nexport const getConditionUpperCriteria = (\n conditions: PermissionCriteria<PermissionCondition> | string,\n): string | undefined => {\n return Object.keys(conditions).find(key =>\n [criterias.allOf, criterias.anyOf, criterias.not].includes(\n key as keyof ConditionsData,\n ),\n );\n};\n\nexport const getConditionsData = (\n conditions: PermissionCriteria<PermissionCondition>,\n): ConditionsData | undefined => {\n const upperCriteria =\n getConditionUpperCriteria(conditions) ?? criterias.condition;\n\n switch (upperCriteria) {\n case criterias.allOf: {\n const allOfConditions = (conditions as AllOfCriteria<PermissionCondition>)\n .allOf;\n allOfConditions.map(aoc => {\n if (getConditionUpperCriteria(aoc)) {\n return getConditionsData(aoc);\n }\n return aoc;\n });\n return { allOf: allOfConditions as PermissionCondition[] };\n }\n case criterias.anyOf: {\n const anyOfConditions = (conditions as AnyOfCriteria<PermissionCondition>)\n .anyOf;\n anyOfConditions.map(aoc => {\n if (getConditionUpperCriteria(aoc)) {\n return getConditionsData(aoc);\n }\n return aoc;\n });\n return { anyOf: anyOfConditions as PermissionCondition[] };\n }\n case criterias.not: {\n const notCondition = (conditions as NotCriteria<PermissionCondition>).not;\n const nestedCondition = getConditionUpperCriteria(notCondition)\n ? getConditionsData(notCondition)\n : notCondition;\n return { not: nestedCondition as PermissionCondition };\n }\n default:\n return { condition: conditions as PermissionCondition };\n }\n};\n\nexport const getPoliciesData = (\n allowedPermissions: string[],\n policies: string[],\n locale = 'en',\n): RowPolicy[] => {\n return policies.map(p => ({\n policy: p,\n ...(allowedPermissions.includes(p.toLocaleLowerCase(locale))\n ? { effect: 'allow' }\n : { effect: 'deny' }),\n }));\n};\n\nexport const getPolicyString = (policies: RowPolicy[]) => {\n const policyStr = policies.reduce((acc: string, p) => {\n if (p.effect === 'allow') return acc.concat(`${p.policy}, `);\n return acc;\n }, '');\n return policyStr.slice(0, policyStr.length - 2);\n};\n\nexport const getConditionalPermissionsData = (\n conditionalPermissions: RoleConditionalPolicyDecision<PermissionAction>[],\n permissionPolicies: PluginsPermissionPoliciesData,\n allPermissionPolicies: PluginPermissionMetaData[],\n locale = 'en-US',\n): PermissionsData[] => {\n return conditionalPermissions.reduce((acc: any, cp) => {\n const conditions = getConditionsData(cp.conditions);\n const allowedPermissions = cp.permissionMapping.map(action =>\n action.toLocaleLowerCase(locale),\n );\n\n const pluginPermissionMetaData = allPermissionPolicies.find(\n pp => pp.pluginId === cp.pluginId,\n );\n\n const perms =\n pluginPermissionMetaData?.policies.filter(\n po =>\n isResourcedPolicy(po) &&\n po.resourceType === cp.resourceType &&\n allowedPermissions.includes(po.policy.toLocaleLowerCase(locale)),\n ) ?? [];\n\n const allPolicies = (pm: string) =>\n permissionPolicies.pluginsPermissions?.[cp.pluginId]?.policies?.[pm]\n ?.policies ?? [];\n\n return [\n ...acc,\n ...(conditions\n ? perms.map((perm, index, arr) => {\n const policies = getPoliciesData(\n allowedPermissions,\n allPolicies(perm.name),\n );\n return {\n plugin: cp.pluginId,\n permission: perm.name,\n resourceType: cp.resourceType,\n isResourced: true,\n policies,\n policyString: getPolicyString(policies),\n conditions,\n ...(index === 0 ||\n !!policies.find(\n pl =>\n pl.policy.toLocaleLowerCase(locale) ===\n arr[index - 1].policy && pl.effect === 'allow',\n )\n ? { id: cp.id }\n : {}),\n };\n })\n : []),\n ];\n }, []);\n};\n\nexport const getSelectedMember = (\n memberResource: MemberEntity | undefined,\n ref: string,\n): SelectedMember => {\n if (memberResource) {\n return {\n id: memberResource.metadata.etag as string,\n ref: stringifyEntityRef(memberResource),\n label:\n memberResource.spec.profile?.displayName ??\n memberResource.metadata.name,\n etag: memberResource.metadata.etag as string,\n type: memberResource.kind,\n namespace: memberResource.metadata.namespace as string,\n members: getMembersCount(memberResource),\n };\n } else if (ref) {\n const { kind, namespace, name } = parseEntityRef(ref);\n return {\n id: `${kind}-${namespace}-${name}`,\n ref,\n label: name,\n etag: `${kind}-${namespace}-${name}`,\n type: kind,\n namespace: namespace,\n members: kind === 'group' ? 0 : undefined,\n };\n }\n return {} as SelectedMember;\n};\n\nexport const isSamePermissionPolicy = (\n a: RoleBasedPolicy,\n b: RoleBasedPolicy,\n) =>\n a.entityReference === b.entityReference &&\n a.permission === b.permission &&\n a.policy === b.policy &&\n a.effect === b.effect;\n\nexport const onlyInLeft = (\n left: RoleBasedPolicy[],\n right: RoleBasedPolicy[],\n compareFunction: (a: RoleBasedPolicy, b: RoleBasedPolicy) => boolean,\n) =>\n left.filter(\n leftValue =>\n !right.some(rightValue => compareFunction(leftValue, rightValue)),\n );\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rbac-utils.esm.js","sources":["../../src/utils/rbac-utils.ts"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n GroupEntity,\n isUserEntity,\n parseEntityRef,\n stringifyEntityRef,\n} from '@backstage/catalog-model';\nimport {\n AllOfCriteria,\n AnyOfCriteria,\n NotCriteria,\n PermissionCondition,\n PermissionCriteria,\n} from '@backstage/plugin-permission-common';\n\nimport { capitalizeFirstLetter } from './string-utils';\n\nimport {\n isResourcedPolicy,\n PermissionAction,\n PluginPermissionMetaData,\n PolicyDetails,\n RoleBasedPolicy,\n RoleConditionalPolicyDecision,\n} from '@backstage-community/plugin-rbac-common';\n\nimport { TranslationFunction } from '@backstage/core-plugin-api/alpha';\nimport { rbacTranslationRef } from '../alpha/translations';\n\nimport { criterias } from '../components/ConditionalAccess/const';\nimport { ConditionsData } from '../components/ConditionalAccess/types';\nimport {\n PluginsPermissionPoliciesData,\n RowPolicy,\n SelectedMember,\n} from '../components/CreateRole/types';\nimport {\n MemberEntity,\n MembersData,\n PermissionsData,\n PermissionsDataSet,\n PluginInfoType,\n} from '../types';\nimport { getMembersCount } from './create-role-utils';\n\nexport const getPermissionsArray = (\n role: string,\n policies: RoleBasedPolicy[],\n): RoleBasedPolicy[] => {\n if (!policies || policies?.length === 0 || !Array.isArray(policies)) {\n return [];\n }\n return policies.filter(\n (policy: RoleBasedPolicy) =>\n policy.entityReference === role && policy.effect !== 'deny',\n );\n};\n\nexport const getPermissions = (\n role: string,\n policies: RoleBasedPolicy[],\n): number => {\n return getPermissionsArray(role, policies).length;\n};\n\nexport const getMembersString = (\n res: {\n users: number;\n groups: number;\n },\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n): string => {\n let membersString = '';\n if (res.groups > 0) {\n const groupsText = res.groups > 1 ? t('common.groups') : t('common.group');\n membersString = `${res.groups} ${groupsText}`;\n }\n if (res.users > 0) {\n const usersText = res.users > 1 ? t('common.users') : t('common.user');\n membersString = membersString.concat(\n membersString.length > 0 ? ', ' : '',\n `${res.users} ${usersText}`,\n );\n }\n return membersString;\n};\n\nexport const getMembers = (\n members: (string | MembersData | SelectedMember)[],\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n): string => {\n if (!members || members.length === 0) {\n return t('common.noMembers');\n }\n\n const res = members.reduce(\n (acc, member) => {\n if (typeof member === 'object') {\n if (member.type === 'User' || member.type === 'user') {\n acc.users++;\n } else {\n acc.groups++;\n }\n } else {\n const entity = parseEntityRef(member) as any;\n if (isUserEntity(entity)) {\n acc.users++;\n } else {\n acc.groups++;\n }\n }\n return acc;\n },\n { users: 0, groups: 0 },\n );\n\n return getMembersString(res, t);\n};\n\nexport const getMembersFromGroup = (group: GroupEntity): number => {\n const membersList = group.relations?.reduce((acc, relation) => {\n let temp = acc;\n if (relation.type === 'hasMember') {\n temp++;\n }\n return temp;\n }, 0);\n return membersList ?? 0;\n};\n\nexport const getPluginInfo = (\n permissions: PluginPermissionMetaData[],\n policy: RoleBasedPolicy,\n): PluginInfoType | null =>\n permissions.reduce(\n (acc: PluginInfoType | null, p: PluginPermissionMetaData) => {\n const policyData = p.policies.find(pol => {\n if (pol.policy === policy.policy) {\n if (isResourcedPolicy(pol)) {\n if (pol.resourceType === policy.permission) {\n return true;\n }\n }\n if (pol.name === policy.permission) {\n return true;\n }\n }\n return false;\n });\n if (p.pluginId && policyData) {\n return {\n pluginId: p.pluginId,\n permissionName: policyData.name || '-',\n isResourced: isResourcedPolicy(policyData) || false,\n resourceType: isResourcedPolicy(policyData)\n ? policyData.resourceType\n : '',\n usingResourceType:\n isResourcedPolicy(policyData) &&\n policyData.resourceType === policy.permission,\n };\n }\n return acc;\n },\n null,\n );\n\nconst getPolicy = (str: string) => {\n const arr = str.split('.');\n return arr[arr.length - 1];\n};\n\nconst getAllPolicies = (\n permission: string,\n allowedPolicies: RowPolicy[],\n policies: PolicyDetails[],\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n locale = 'en-US',\n) => {\n const deniedPolicies = policies?.reduce((acc, p) => {\n const perm = p.name;\n if (\n permission === perm &&\n !allowedPolicies.find(\n allowedPolicy =>\n allowedPolicy.policy.toLocaleLowerCase(locale) ===\n p.policy?.toLocaleLowerCase(locale),\n )\n ) {\n acc.push({\n policy: capitalizeFirstLetter(p.policy) || t('common.use'),\n effect: 'deny',\n });\n }\n return acc;\n }, [] as RowPolicy[]);\n return [...(allowedPolicies || []), ...(deniedPolicies || [])];\n};\n\nexport const getPermissionsData = (\n policies: RoleBasedPolicy[],\n permissionPolicies: PluginPermissionMetaData[],\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n locale = 'en',\n): PermissionsData[] => {\n const data = policies.reduce(\n (acc: PermissionsDataSet[], policy: RoleBasedPolicy) => {\n if (policy?.effect === 'allow') {\n const policyStr =\n policy?.policy ?? getPolicy(policy.permission as string);\n const policyTitleCase = capitalizeFirstLetter(policyStr);\n const policyString = new Set<string>();\n const policiesSet = new Set<{ policy: string; effect: string }>();\n const pluginInfo = getPluginInfo(permissionPolicies, policy);\n if (pluginInfo?.pluginId) {\n acc.push({\n permission: pluginInfo.permissionName,\n plugin: pluginInfo.pluginId,\n policyString: policyString.add(policyTitleCase || t('common.use')),\n policies: policiesSet.add({\n policy: policyTitleCase || t('common.use'),\n effect: policy.effect,\n }),\n isResourced: pluginInfo.isResourced,\n resourceType: pluginInfo.resourceType,\n usingResourceType: pluginInfo.usingResourceType,\n });\n }\n }\n return acc;\n },\n [],\n );\n return data.map((p: PermissionsDataSet) => ({\n ...p,\n ...(p.policyString ? { policyString: Array.from(p.policyString) } : {}),\n policies: getAllPolicies(\n p.permission,\n Array.from(p.policies),\n permissionPolicies.find(pp => pp.pluginId === p.plugin)\n ?.policies as PolicyDetails[],\n t,\n locale,\n ),\n })) as PermissionsData[];\n};\n\nexport const getConditionUpperCriteria = (\n conditions: PermissionCriteria<PermissionCondition> | string,\n): string | undefined => {\n return Object.keys(conditions).find(key =>\n [criterias.allOf, criterias.anyOf, criterias.not].includes(\n key as keyof ConditionsData,\n ),\n );\n};\n\nexport const getConditionsData = (\n conditions: PermissionCriteria<PermissionCondition>,\n): ConditionsData | undefined => {\n const upperCriteria =\n getConditionUpperCriteria(conditions) ?? criterias.condition;\n\n switch (upperCriteria) {\n case criterias.allOf: {\n const allOfConditions = (conditions as AllOfCriteria<PermissionCondition>)\n .allOf;\n allOfConditions.map(aoc => {\n if (getConditionUpperCriteria(aoc)) {\n return getConditionsData(aoc);\n }\n return aoc;\n });\n return { allOf: allOfConditions as PermissionCondition[] };\n }\n case criterias.anyOf: {\n const anyOfConditions = (conditions as AnyOfCriteria<PermissionCondition>)\n .anyOf;\n anyOfConditions.map(aoc => {\n if (getConditionUpperCriteria(aoc)) {\n return getConditionsData(aoc);\n }\n return aoc;\n });\n return { anyOf: anyOfConditions as PermissionCondition[] };\n }\n case criterias.not: {\n const notCondition = (conditions as NotCriteria<PermissionCondition>).not;\n const nestedCondition = getConditionUpperCriteria(notCondition)\n ? getConditionsData(notCondition)\n : notCondition;\n return { not: nestedCondition as PermissionCondition };\n }\n default:\n return { condition: conditions as PermissionCondition };\n }\n};\n\nexport const getPoliciesData = (\n allowedPermissions: string[],\n policies: string[],\n locale = 'en',\n): RowPolicy[] => {\n return policies.map(p => ({\n policy: p,\n ...(allowedPermissions.includes(p.toLocaleLowerCase(locale))\n ? { effect: 'allow' }\n : { effect: 'deny' }),\n }));\n};\n\nexport const getPolicyString = (policies: RowPolicy[]) => {\n const policyStr = policies.reduce((acc: string, p) => {\n if (p.effect === 'allow') return acc.concat(`${p.policy}, `);\n return acc;\n }, '');\n return policyStr.slice(0, policyStr.length - 2);\n};\n\nexport const getConditionalPermissionsData = (\n conditionalPermissions: RoleConditionalPolicyDecision<PermissionAction>[],\n permissionPolicies: PluginsPermissionPoliciesData,\n allPermissionPolicies: PluginPermissionMetaData[],\n locale = 'en-US',\n): PermissionsData[] => {\n return conditionalPermissions.reduce((acc: any, cp) => {\n const conditions = getConditionsData(cp.conditions);\n const allowedPermissions = cp.permissionMapping.map(action =>\n action.toLocaleLowerCase(locale),\n );\n\n const pluginPermissionMetaData = allPermissionPolicies.find(\n pp => pp.pluginId === cp.pluginId,\n );\n\n const perms =\n pluginPermissionMetaData?.policies.filter(\n po =>\n isResourcedPolicy(po) &&\n po.resourceType === cp.resourceType &&\n allowedPermissions.includes(po.policy.toLocaleLowerCase(locale)),\n ) ?? [];\n\n const allPolicies = (pm: string) =>\n permissionPolicies.pluginsPermissions?.[cp.pluginId]?.policies?.[pm]\n ?.policies ?? [];\n\n return [\n ...acc,\n ...(conditions\n ? perms.map((perm, index, arr) => {\n const policies = getPoliciesData(\n allowedPermissions,\n allPolicies(perm.name),\n );\n return {\n plugin: cp.pluginId,\n permission: perm.name,\n resourceType: cp.resourceType,\n isResourced: true,\n policies,\n policyString: getPolicyString(policies),\n conditions,\n ...(index === 0 ||\n !!policies.find(\n pl =>\n pl.policy.toLocaleLowerCase(locale) ===\n arr[index - 1].policy && pl.effect === 'allow',\n )\n ? { id: cp.id }\n : {}),\n };\n })\n : []),\n ];\n }, []);\n};\n\nexport const getSelectedMember = (\n memberResource: MemberEntity | undefined,\n ref: string,\n): SelectedMember => {\n if (memberResource) {\n return {\n id: memberResource.metadata.etag as string,\n ref: stringifyEntityRef(memberResource),\n label:\n memberResource.spec.profile?.displayName ??\n memberResource.metadata.name,\n etag: memberResource.metadata.etag as string,\n type: memberResource.kind,\n namespace: memberResource.metadata.namespace as string,\n members: getMembersCount(memberResource),\n };\n } else if (ref) {\n const { kind, namespace, name } = parseEntityRef(ref);\n return {\n id: `${kind}-${namespace}-${name}`,\n ref,\n label: name,\n etag: `${kind}-${namespace}-${name}`,\n type: kind,\n namespace: namespace,\n members: kind === 'group' ? 0 : undefined,\n };\n }\n return {} as SelectedMember;\n};\n\nexport const isSamePermissionPolicy = (\n a: RoleBasedPolicy,\n b: RoleBasedPolicy,\n) =>\n a.entityReference === b.entityReference &&\n a.permission === b.permission &&\n a.policy === b.policy &&\n a.effect === b.effect;\n\nexport const onlyInLeft = (\n left: RoleBasedPolicy[],\n right: RoleBasedPolicy[],\n compareFunction: (a: RoleBasedPolicy, b: RoleBasedPolicy) => boolean,\n) =>\n left.filter(\n leftValue =>\n !right.some(rightValue => compareFunction(leftValue, rightValue)),\n );\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-form-utils.esm.js","sources":["../../src/utils/role-form-utils.ts"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { RoleBasedPolicy } from '@backstage-community/plugin-rbac-common';\nimport { parseEntityRef } from '@backstage/catalog-model';\nimport { TranslationFunction } from '@backstage/core-plugin-api/alpha';\n\nimport { RBACAPI } from '../api/RBACBackendClient';\nimport {\n RoleBasedConditions,\n RoleError,\n UpdatedConditionsData,\n} from '../types';\nimport { NavigateFunction } from 'react-router-dom';\nimport { rbacTranslationRef } from '../translations';\n\nexport const createPermissions = async (\n newPermissions: RoleBasedPolicy[],\n rbacApi: RBACAPI,\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n errorMsgPrefix?: string,\n) => {\n if (newPermissions.length > 0) {\n const permissionsRes = await rbacApi.createPolicies(newPermissions);\n if ((permissionsRes as unknown as RoleError).error) {\n throw new Error(\n `${errorMsgPrefix || t('common.unableToCreatePermissionPolicies')} ${\n (permissionsRes as unknown as RoleError).error.message\n }`,\n );\n }\n }\n};\n\nexport const removePermissions = async (\n name: string,\n deletePermissions: RoleBasedPolicy[],\n rbacApi: RBACAPI,\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n) => {\n if (deletePermissions.length > 0) {\n const permissionsRes = await rbacApi.deletePolicies(\n name,\n deletePermissions,\n );\n if ((permissionsRes as unknown as RoleError).error) {\n throw new Error(\n `${t('common.unableToDeletePermissionPolicies')} ${\n (permissionsRes as unknown as RoleError).error.message\n }`,\n );\n }\n }\n};\n\nexport const removeConditions = async (\n deleteConditions: number[],\n rbacApi: RBACAPI,\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n) => {\n if (deleteConditions.length > 0) {\n const promises = deleteConditions.map(cid =>\n rbacApi.deleteConditionalPolicies(cid),\n );\n\n const cppRes: (Response | RoleError)[] = await Promise.all(promises);\n const cpErr = cppRes\n .map(r => (r as unknown as RoleError).error?.message)\n .filter(m => m);\n\n if (cpErr.length > 0) {\n throw new Error(\n `${t('common.unableToRemoveConditions')} ${cpErr.join('\\n')}`,\n );\n }\n }\n};\n\nexport const modifyConditions = async (\n updateConditions: UpdatedConditionsData,\n rbacApi: RBACAPI,\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n) => {\n if (updateConditions.length > 0) {\n const promises = updateConditions.map(({ id, updateCondition }) =>\n rbacApi.updateConditionalPolicies(id, updateCondition),\n );\n\n const cppRes: (Response | RoleError)[] = await Promise.all(promises);\n const cpErr = cppRes\n .map(r => (r as unknown as RoleError).error?.message)\n .filter(m => m);\n\n if (cpErr.length > 0) {\n throw new Error(\n `${t('common.unableToUpdateConditions')} ${cpErr.join('\\n')}`,\n );\n }\n }\n};\n\nexport const createConditions = async (\n newConditions: RoleBasedConditions[],\n rbacApi: RBACAPI,\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n errorMsgPrefix?: string,\n) => {\n if (newConditions.length > 0) {\n const promises = newConditions.map(cpp =>\n rbacApi.createConditionalPermission(cpp),\n );\n\n const cppRes: (Response | RoleError)[] = await Promise.all(promises);\n const cpErr = cppRes\n .map(r => (r as unknown as RoleError).error?.message)\n .filter(m => m);\n\n if (cpErr.length > 0) {\n throw new Error(\n `${\n errorMsgPrefix || t('common.unableToAddConditions')\n } ${cpErr.join('\\n')}`,\n );\n }\n }\n};\n\nexport const navigateTo = (\n navigate: NavigateFunction,\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n roleName?: string,\n rName?: string,\n action?: string,\n step?: number,\n) => {\n const currentRoleName = rName || roleName;\n const stateProp =\n currentRoleName && action\n ? {\n state: {\n toastMessage: t('common.roleActionSuccessfully' as any, {\n roleName: currentRoleName,\n action,\n }),\n },\n }\n : undefined;\n if (step && currentRoleName) {\n const { kind, namespace, name } = parseEntityRef(currentRoleName);\n navigate(`../roles/${kind}/${namespace}/${name}`, stateProp);\n } else {\n navigate('..', stateProp);\n }\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"role-form-utils.esm.js","sources":["../../src/utils/role-form-utils.ts"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { RoleBasedPolicy } from '@backstage-community/plugin-rbac-common';\nimport { parseEntityRef } from '@backstage/catalog-model';\nimport { TranslationFunction } from '@backstage/core-plugin-api/alpha';\n\nimport { RBACAPI } from '../api/RBACBackendClient';\nimport {\n RoleBasedConditions,\n RoleError,\n UpdatedConditionsData,\n} from '../types';\nimport { NavigateFunction } from 'react-router-dom';\nimport { rbacTranslationRef } from '../alpha/translations';\n\nexport const createPermissions = async (\n newPermissions: RoleBasedPolicy[],\n rbacApi: RBACAPI,\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n errorMsgPrefix?: string,\n) => {\n if (newPermissions.length > 0) {\n const permissionsRes = await rbacApi.createPolicies(newPermissions);\n if ((permissionsRes as unknown as RoleError).error) {\n throw new Error(\n `${errorMsgPrefix || t('common.unableToCreatePermissionPolicies')} ${\n (permissionsRes as unknown as RoleError).error.message\n }`,\n );\n }\n }\n};\n\nexport const removePermissions = async (\n name: string,\n deletePermissions: RoleBasedPolicy[],\n rbacApi: RBACAPI,\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n) => {\n if (deletePermissions.length > 0) {\n const permissionsRes = await rbacApi.deletePolicies(\n name,\n deletePermissions,\n );\n if ((permissionsRes as unknown as RoleError).error) {\n throw new Error(\n `${t('common.unableToDeletePermissionPolicies')} ${\n (permissionsRes as unknown as RoleError).error.message\n }`,\n );\n }\n }\n};\n\nexport const removeConditions = async (\n deleteConditions: number[],\n rbacApi: RBACAPI,\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n) => {\n if (deleteConditions.length > 0) {\n const promises = deleteConditions.map(cid =>\n rbacApi.deleteConditionalPolicies(cid),\n );\n\n const cppRes: (Response | RoleError)[] = await Promise.all(promises);\n const cpErr = cppRes\n .map(r => (r as unknown as RoleError).error?.message)\n .filter(m => m);\n\n if (cpErr.length > 0) {\n throw new Error(\n `${t('common.unableToRemoveConditions')} ${cpErr.join('\\n')}`,\n );\n }\n }\n};\n\nexport const modifyConditions = async (\n updateConditions: UpdatedConditionsData,\n rbacApi: RBACAPI,\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n) => {\n if (updateConditions.length > 0) {\n const promises = updateConditions.map(({ id, updateCondition }) =>\n rbacApi.updateConditionalPolicies(id, updateCondition),\n );\n\n const cppRes: (Response | RoleError)[] = await Promise.all(promises);\n const cpErr = cppRes\n .map(r => (r as unknown as RoleError).error?.message)\n .filter(m => m);\n\n if (cpErr.length > 0) {\n throw new Error(\n `${t('common.unableToUpdateConditions')} ${cpErr.join('\\n')}`,\n );\n }\n }\n};\n\nexport const createConditions = async (\n newConditions: RoleBasedConditions[],\n rbacApi: RBACAPI,\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n errorMsgPrefix?: string,\n) => {\n if (newConditions.length > 0) {\n const promises = newConditions.map(cpp =>\n rbacApi.createConditionalPermission(cpp),\n );\n\n const cppRes: (Response | RoleError)[] = await Promise.all(promises);\n const cpErr = cppRes\n .map(r => (r as unknown as RoleError).error?.message)\n .filter(m => m);\n\n if (cpErr.length > 0) {\n throw new Error(\n `${\n errorMsgPrefix || t('common.unableToAddConditions')\n } ${cpErr.join('\\n')}`,\n );\n }\n }\n};\n\nexport const navigateTo = (\n navigate: NavigateFunction,\n t: TranslationFunction<typeof rbacTranslationRef.T>,\n roleName?: string,\n rName?: string,\n action?: string,\n step?: number,\n) => {\n const currentRoleName = rName || roleName;\n const stateProp =\n currentRoleName && action\n ? {\n state: {\n toastMessage: t('common.roleActionSuccessfully' as any, {\n roleName: currentRoleName,\n action,\n }),\n },\n }\n : undefined;\n if (step && currentRoleName) {\n const { kind, namespace, name } = parseEntityRef(currentRoleName);\n navigate(`../roles/${kind}/${namespace}/${name}`, stateProp);\n } else {\n navigate('..', stateProp);\n }\n};\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage-community/plugin-rbac",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.49.0",
|
|
4
4
|
"main": "./dist/index.esm.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -15,7 +15,10 @@
|
|
|
15
15
|
"@backstage-community/plugin-rbac-backend",
|
|
16
16
|
"@backstage-community/plugin-rbac-common",
|
|
17
17
|
"@backstage-community/plugin-rbac-node"
|
|
18
|
-
]
|
|
18
|
+
],
|
|
19
|
+
"features": {
|
|
20
|
+
"./alpha": "@backstage/FrontendPlugin"
|
|
21
|
+
}
|
|
19
22
|
},
|
|
20
23
|
"sideEffects": false,
|
|
21
24
|
"exports": {
|
|
@@ -25,6 +28,7 @@
|
|
|
25
28
|
"default": "./dist/index.esm.js"
|
|
26
29
|
},
|
|
27
30
|
"./alpha": {
|
|
31
|
+
"backstage": "@backstage/FrontendPlugin",
|
|
28
32
|
"import": "./dist/alpha.esm.js",
|
|
29
33
|
"types": "./dist/alpha.d.ts",
|
|
30
34
|
"default": "./dist/alpha.esm.js"
|
|
@@ -49,17 +53,21 @@
|
|
|
49
53
|
"postpack": "backstage-cli package postpack",
|
|
50
54
|
"prepack": "backstage-cli package prepack",
|
|
51
55
|
"start": "backstage-cli package start",
|
|
56
|
+
"start:legacy": "backstage-cli package start --entrypoint dev/legacy.tsx",
|
|
52
57
|
"test": "backstage-cli package test --passWithNoTests --coverage",
|
|
53
58
|
"tsc": "tsc",
|
|
54
59
|
"prettier:check": "prettier --ignore-unknown --check .",
|
|
55
60
|
"prettier:fix": "prettier --ignore-unknown --write .",
|
|
56
|
-
"ui-test": "start-server-and-test start localhost:3000 'playwright test'"
|
|
61
|
+
"ui-test": "start-server-and-test start localhost:3000 'playwright test'",
|
|
62
|
+
"ui-test:legacy": "start-server-and-test start:legacy localhost:3000 'playwright test'"
|
|
57
63
|
},
|
|
58
64
|
"dependencies": {
|
|
59
65
|
"@backstage-community/plugin-rbac-common": "^1.23.0",
|
|
60
66
|
"@backstage/catalog-model": "^1.7.6",
|
|
61
67
|
"@backstage/core-components": "^0.18.6",
|
|
62
68
|
"@backstage/core-plugin-api": "^1.12.2",
|
|
69
|
+
"@backstage/frontend-plugin-api": "^0.13.3",
|
|
70
|
+
"@backstage/plugin-app-react": "^0.1.0",
|
|
63
71
|
"@backstage/plugin-catalog": "^1.32.2",
|
|
64
72
|
"@backstage/plugin-catalog-common": "^1.1.7",
|
|
65
73
|
"@backstage/plugin-permission-common": "^0.9.5",
|
|
@@ -86,6 +94,7 @@
|
|
|
86
94
|
"@backstage/cli": "^0.35.3",
|
|
87
95
|
"@backstage/core-app-api": "^1.19.4",
|
|
88
96
|
"@backstage/dev-utils": "^1.1.19",
|
|
97
|
+
"@backstage/frontend-defaults": "^0.3.5",
|
|
89
98
|
"@backstage/test-utils": "^1.7.14",
|
|
90
99
|
"@backstage/ui": "^0.11.2",
|
|
91
100
|
"@playwright/test": "^1.56.1",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"de.esm.js","sources":["../../src/translations/de.ts"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\nimport { rbacTranslationRef } from './ref';\n\nconst rbacTranslationDe = createTranslationMessages({\n ref: rbacTranslationRef,\n full: true,\n messages: {\n 'page.title': 'RBAC',\n 'page.createRole': 'Rolle erstellen',\n 'page.editRole': 'Rolle bearbeiten',\n 'table.title': 'Alle Rollen',\n 'table.titleWithCount': 'Alle Rollen ({{count}})',\n 'table.headers.name': 'Name',\n 'table.headers.usersAndGroups': 'Benutzer und Gruppen',\n 'table.headers.accessiblePlugins': 'Zugängliche Plugins',\n 'table.headers.actions': 'Aktionen',\n 'table.emptyContent': 'Keine Datensätze gefunden',\n 'table.searchPlaceholder': 'Filtern',\n 'table.labelRowsSelect': 'Zeilen',\n 'toolbar.createButton': 'Erstellen',\n 'toolbar.warning.title': 'Rolle kann nicht erstellt werden.',\n 'toolbar.warning.message':\n 'Um die Schaltfläche Rolle erstellen/bearbeiten zu aktivieren, stellen Sie sicher, dass die erforderlichen Benutzer/Gruppen im Katalog verfügbar sind, da eine Rolle nicht ohne Benutzer/Gruppen erstellt werden kann, und dass die Rolle, die mit Ihrem Benutzer verknüpft ist, die Berechtigungsrichtlinien <link>hier</link> erwähnt.',\n 'toolbar.warning.linkText': 'hier',\n 'toolbar.warning.note': 'Hinweis',\n 'toolbar.warning.noteText':\n 'Selbst nach dem Importieren von Benutzern/Gruppen in den Katalog und dem Anwenden der oben genannten Berechtigungen, wenn die Erstellen/Bearbeiten-Schaltfläche weiterhin deaktiviert ist, wenden Sie sich bitte an Ihren Administrator, da Sie möglicherweise bedingt vom Zugriff auf die Erstellen/Bearbeiten-Schaltfläche eingeschränkt sind.',\n 'errors.notFound': 'Nicht gefunden',\n 'errors.unauthorized': 'Nicht berechtigt, Rolle zu erstellen',\n 'errors.rbacDisabled':\n 'Aktivieren Sie das RBAC-Backend-Plugin, um diese Funktion zu verwenden.',\n 'errors.rbacDisabledInfo':\n 'Um RBAC zu aktivieren, setzen Sie `permission.enabled` auf `true` in der App-Konfigurationsdatei.',\n 'errors.fetchRoles': 'Beim Abrufen der Rollen ist etwas schief gelaufen',\n 'errors.fetchRole': 'Beim Abrufen der Rolle ist etwas schief gelaufen',\n 'errors.fetchPolicies':\n 'Beim Abrufen der Berechtigungsrichtlinien ist etwas schief gelaufen',\n 'errors.fetchPoliciesErr': 'Fehler beim Abrufen der Richtlinien. {{error}}',\n 'errors.fetchPlugins': 'Fehler beim Abrufen der Plugins. {{error}}',\n 'errors.fetchConditionalPermissionPolicies':\n 'Fehler beim Abrufen der bedingten Berechtigungsrichtlinien. {{error}}',\n 'errors.fetchConditions':\n 'Beim Abrufen der Rollenbedingungen ist etwas schief gelaufen',\n 'errors.fetchUsersAndGroups':\n 'Beim Abrufen der Benutzer und Gruppen ist etwas schief gelaufen',\n 'errors.createRole': 'Rolle kann nicht erstellt werden.',\n 'errors.editRole': 'Rolle kann nicht bearbeitet werden.',\n 'errors.deleteRole': 'Rolle kann nicht gelöscht werden.',\n 'errors.roleCreatedSuccess':\n 'Rolle wurde erfolgreich erstellt, aber Berechtigungsrichtlinien konnten nicht zur Rolle hinzugefügt werden.',\n 'errors.roleCreatedConditionsSuccess':\n 'Rolle wurde erfolgreich erstellt, aber Bedingungen konnten nicht zur Rolle hinzugefügt werden.',\n 'roleForm.titles.createRole': 'Rolle erstellen',\n 'roleForm.titles.editRole': 'Rolle bearbeiten',\n 'roleForm.titles.nameAndDescription':\n 'Name und Beschreibung der Rolle eingeben',\n 'roleForm.titles.usersAndGroups': 'Benutzer und Gruppen hinzufügen',\n 'roleForm.titles.permissionPolicies': 'Berechtigungsrichtlinien hinzufügen',\n 'roleForm.review.reviewAndCreate': 'Überprüfen und erstellen',\n 'roleForm.review.reviewAndSave': 'Überprüfen und speichern',\n 'roleForm.review.nameDescriptionOwner':\n 'Name, Beschreibung und Eigentümer der Rolle',\n 'roleForm.review.permissionPoliciesWithCount':\n 'Berechtigungsrichtlinien ({{count}})',\n 'roleForm.steps.next': 'Weiter',\n 'roleForm.steps.back': 'Zurück',\n 'roleForm.steps.cancel': 'Abbrechen',\n 'roleForm.steps.reset': 'Zurücksetzen',\n 'roleForm.steps.create': 'Erstellen',\n 'roleForm.steps.save': 'Speichern',\n 'roleForm.fields.name.label': 'Name',\n 'roleForm.fields.name.helperText': 'Name der Rolle eingeben',\n 'roleForm.fields.description.label': 'Beschreibung',\n 'roleForm.fields.description.helperText':\n 'Geben Sie eine kurze Beschreibung der Rolle ein (Der Zweck der Rolle)',\n 'roleForm.fields.owner.label': 'Eigentümer',\n 'roleForm.fields.owner.helperText':\n 'Optional: Geben Sie einen Benutzer oder eine Gruppe ein, die die Berechtigung haben soll, diese Rolle zu bearbeiten und zusätzliche Rollen zu erstellen. Im nächsten Schritt geben Sie an, welche Benutzer sie ihren Rollen zuweisen können und auf welche Plugins sie Zugriff gewähren können. Wenn leer gelassen, wird automatisch der Autor bei der Erstellung zugewiesen.',\n 'deleteDialog.title': 'Rolle löschen',\n 'deleteDialog.question': 'Diese Rolle löschen?',\n 'deleteDialog.confirmation':\n 'Bist du sicher, dass du die Rolle **{{roleName}}** löschen möchtest?\\n\\nDas Löschen dieser Rolle ist irreversibel und entfernt ihre Funktionalität aus dem System. Bitte vorsichtig vorgehen.\\n\\nDie **{{members}}**, die mit dieser Rolle verbunden sind, verlieren den Zugriff auf alle in dieser Rolle angegebenen **{{permissions}} Berechtigungsrichtlinien**.',\n 'deleteDialog.roleNameLabel': 'Rollenname',\n 'deleteDialog.roleNameHelper':\n 'Geben Sie den Namen der Rolle zur Bestätigung ein',\n 'deleteDialog.deleteButton': 'Löschen',\n 'deleteDialog.cancelButton': 'Abbrechen',\n 'deleteDialog.successMessage': 'Rolle {{roleName}} erfolgreich gelöscht',\n 'snackbar.success': 'Erfolg',\n 'common.noResults': 'Keine Ergebnisse für diesen Zeitraum.',\n 'common.exportCSV': 'CSV exportieren',\n 'common.csvFilename': 'daten-export.csv',\n 'common.noMembers': 'Keine Mitglieder',\n 'common.groups': 'Gruppen',\n 'common.group': 'Gruppe',\n 'common.users': 'Benutzer',\n 'common.user': 'Benutzer',\n 'common.use': 'Verwenden',\n 'common.refresh': 'Aktualisieren',\n 'common.edit': 'Bearbeiten',\n 'common.unauthorizedToEdit': 'Nicht berechtigt zu bearbeiten',\n 'common.noRecordsFound': 'Keine Datensätze gefunden',\n 'common.selectUsersAndGroups': 'Benutzer und Gruppen auswählen',\n 'common.clearSearch': 'Suche löschen',\n 'common.closeDrawer': 'Schublade schließen',\n 'common.remove': 'Entfernen',\n 'common.addRule': 'Regel hinzufügen',\n 'common.selectRule': 'Eine Regel auswählen',\n 'common.rule': 'Regel',\n 'common.removeNestedCondition': 'Verschachtelte Bedingung entfernen',\n 'common.overview': 'Übersicht',\n 'common.about': 'Über',\n 'common.description': 'Beschreibung',\n 'common.modifiedBy': 'Geändert von',\n 'common.lastModified': 'Zuletzt geändert',\n 'common.owner': 'Eigentümer',\n 'common.noUsersAndGroupsSelected': 'Keine Benutzer und Gruppen ausgewählt',\n 'common.selectedUsersAndGroupsAppearHere':\n 'Ausgewählte Benutzer und Gruppen werden hier angezeigt.',\n 'common.name': 'Name',\n 'common.type': 'Typ',\n 'common.members': 'Mitglieder',\n 'common.actions': 'Aktionen',\n 'common.removeMember': 'Mitglied entfernen',\n 'common.delete': 'Löschen',\n 'common.deleteRole': 'Rolle löschen',\n 'common.update': 'Aktualisieren',\n 'common.editRole': 'Rolle bearbeiten',\n 'common.checkingPermissions': 'Berechtigungen werden überprüft…',\n 'common.unauthorizedTo': 'Nicht autorisiert für {{action}}',\n 'common.performThisAction': 'diese Aktion ausführen',\n 'common.unableToCreatePermissionPolicies':\n 'Berechtigungsrichtlinien können nicht erstellt werden.',\n 'common.unableToDeletePermissionPolicies':\n 'Berechtigungsrichtlinien können nicht gelöscht werden.',\n 'common.unableToRemoveConditions':\n 'Bedingungen können nicht von der Rolle entfernt werden.',\n 'common.unableToUpdateConditions':\n 'Bedingungen können nicht aktualisiert werden.',\n 'common.unableToAddConditions':\n 'Bedingungen können nicht zur Rolle hinzugefügt werden.',\n 'common.roleActionSuccessfully':\n 'Rolle {{roleName}} {{action}} erfolgreich',\n 'common.unableToFetchRole': 'Rolle kann nicht abgerufen werden: {{error}}',\n 'common.unableToFetchMembers':\n 'Mitglieder können nicht abgerufen werden: {{error}}',\n 'common.roleAction': '{{action}} Rolle',\n 'common.membersCount': '{{count}} Mitglieder',\n 'common.parentGroupCount': '{{count}} übergeordnete Gruppe',\n 'common.childGroupsCount': '{{count}} untergeordnete Gruppen',\n 'common.searchAndSelectUsersGroups':\n 'Suchen und wählen Sie Benutzer und Gruppen aus, die hinzugefügt werden sollen. Ausgewählte Benutzer und Gruppen werden in der Tabelle unten angezeigt.',\n 'common.noUsersAndGroupsFound': 'Keine Benutzer und Gruppen gefunden.',\n 'common.errorFetchingUserGroups':\n 'Fehler beim Abrufen von Benutzern und Gruppen: {{error}}',\n 'common.nameRequired': 'Name ist erforderlich',\n 'common.noMemberSelected': 'Kein Mitglied ausgewählt',\n 'common.noPluginSelected': 'Kein Plugin ausgewählt',\n 'common.pluginRequired': 'Plugin ist erforderlich',\n 'common.permissionRequired': 'Berechtigung ist erforderlich',\n 'common.editCell': 'Bearbeiten...',\n 'common.selectCell': 'Auswählen...',\n 'common.expandRow': 'Zeile erweitern',\n 'common.configureAccessFor': 'Zugriff konfigurieren für',\n 'common.defaultResourceTypeVisible':\n 'Standardmäßig ist der ausgewählte Ressourcentyp für alle hinzugefügten Benutzer sichtbar. Wenn Sie den Zugriff einschränken oder Berechtigungen für bestimmte Plugin-Regeln gewähren möchten, wählen Sie diese aus und fügen Sie die Parameter hinzu.',\n 'conditionalAccess.condition': 'Bedingung',\n 'conditionalAccess.allOf': 'AllOf',\n 'conditionalAccess.anyOf': 'AnyOf',\n 'conditionalAccess.not': 'Not',\n 'conditionalAccess.addNestedCondition':\n 'Verschachtelte Bedingung hinzufügen',\n 'conditionalAccess.addRule': 'Regel hinzufügen',\n 'conditionalAccess.nestedConditionTooltip':\n 'Verschachtelte Bedingungen sind **1-Layer-Regeln innerhalb einer Hauptbedingung**. Sie ermöglichen es Ihnen, angemessenen Zugriff zu gewähren, indem Sie detaillierte Berechtigungen basierend auf verschiedenen Bedingungen verwenden. Sie können mehrere verschachtelte Bedingungen hinzufügen.',\n 'conditionalAccess.nestedConditionExample':\n 'Sie können beispielsweise Zugriff auf alle Entitätstypen in der Hauptbedingung gewähren und eine verschachtelte Bedingung verwenden, um den Zugriff auf Entitäten zu beschränken, die dem Benutzer gehören.',\n 'dialog.cancelRoleCreation': 'Rollenerstellung abbrechen',\n 'dialog.exitRoleCreation': 'Rollenerstellung beenden?',\n 'dialog.exitRoleEditing': 'Rollenbearbeitung beenden?',\n 'dialog.exitWarning':\n '\\n\\nDas Verlassen dieser Seite verwirft dauerhaft die von Ihnen eingegebenen Informationen.\\n\\nMöchten Sie wirklich beenden?',\n 'dialog.discard': 'Verwerfen',\n 'dialog.cancel': 'Abbrechen',\n 'permissionPolicies.helperText':\n 'Standardmäßig erhalten Benutzer keinen Zugriff auf Plugins. Um Benutzerzugriff zu gewähren, wählen Sie die Plugins aus, die Sie aktivieren möchten. Wählen Sie dann aus, welche Aktionen Sie dem Benutzer erlauben möchten.',\n 'permissionPolicies.allPlugins': 'Alle Plugins ({{count}})',\n 'permissionPolicies.errorFetchingPolicies':\n 'Fehler beim Abrufen der Berechtigungsrichtlinien: {{error}}',\n 'permissionPolicies.resourceTypeTooltip': 'Ressourcentyp: {{resourceType}}',\n 'permissionPolicies.advancedPermissionsTooltip':\n 'Verwenden Sie erweiterte angepasste Berechtigungen, um Zugriff auf bestimmte Teile des ausgewählten Ressourcentyps zu gewähren.',\n 'permissionPolicies.noAdvancedPermissionsTooltip':\n 'Erweiterte Anpassung wird für diesen Ressourcentyp nicht unterstützt.',\n 'permissionPolicies.pluginsSelected': '{{count}} Plugins',\n 'permissionPolicies.noPluginsSelected': 'Keine Plugins ausgewählt',\n 'permissionPolicies.search': 'Suchen',\n 'permissionPolicies.noRecordsToDisplay': 'Keine Datensätze anzuzeigen.',\n 'permissionPolicies.selectedPluginsAppearHere':\n 'Ausgewählte Plugins erscheinen hier.',\n 'permissionPolicies.selectPlugins': 'Plugins auswählen',\n 'permissionPolicies.noPluginsFound': 'Keine Plugins gefunden.',\n 'permissionPolicies.plugin': 'Plugin',\n 'permissionPolicies.permission': 'Berechtigung',\n 'permissionPolicies.policies': 'Richtlinien',\n 'permissionPolicies.conditional': 'Bedingt',\n 'permissionPolicies.rules': 'Regeln',\n 'permissionPolicies.rule': 'Regel',\n 'permissionPolicies.permissionPolicies': 'Berechtigungsrichtlinien',\n 'permissionPolicies.permissions': 'Berechtigungen',\n },\n});\n\nexport default rbacTranslationDe;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import { createTranslationMessages } from '@backstage/core-plugin-api/alpha';
|
|
2
|
-
import { rbacTranslationRef } from './ref.esm.js';
|
|
3
|
-
|
|
4
|
-
const rbacTranslationEs = createTranslationMessages({
|
|
5
|
-
ref: rbacTranslationRef,
|
|
6
|
-
full: true,
|
|
7
|
-
messages: {
|
|
8
|
-
"page.title": "RBAC",
|
|
9
|
-
"page.createRole": "Crear rol",
|
|
10
|
-
"page.editRole": "Editar rol",
|
|
11
|
-
"table.searchPlaceholder": "Filtrar",
|
|
12
|
-
"table.title": "Todos los roles",
|
|
13
|
-
"table.titleWithCount": "Todos los roles ({{count}})",
|
|
14
|
-
"table.headers.name": "Nombre",
|
|
15
|
-
"table.headers.usersAndGroups": "Usuarios y grupos",
|
|
16
|
-
"table.headers.accessiblePlugins": "Plugins accesibles",
|
|
17
|
-
"table.headers.actions": "Acciones",
|
|
18
|
-
"table.emptyContent": "No se encontraron registros",
|
|
19
|
-
"table.labelRowsSelect": "Filas",
|
|
20
|
-
"toolbar.createButton": "Crear",
|
|
21
|
-
"toolbar.warning.title": "No se puede crear el rol.",
|
|
22
|
-
"toolbar.warning.message": "Para habilitar el bot\xF3n crear/editar rol, aseg\xFArate de que los usuarios/grupos requeridos est\xE9n disponibles en el cat\xE1logo, ya que no se puede crear un rol sin usuarios/grupos y tambi\xE9n el rol asociado con tu usuario debe tener las pol\xEDticas de permisos mencionadas <link>aqu\xED</link>.",
|
|
23
|
-
"toolbar.warning.linkText": "aqu\xED",
|
|
24
|
-
"toolbar.warning.note": "Nota",
|
|
25
|
-
"toolbar.warning.noteText": "Incluso despu\xE9s de ingerir usuarios/grupos en el cat\xE1logo y aplicar los permisos mencionados anteriormente, si el bot\xF3n crear/editar sigue deshabilitado, por favor contacta a tu administrador ya que podr\xEDas estar condicionalmente restringido de acceder al bot\xF3n crear/editar.",
|
|
26
|
-
"errors.notFound": "No encontrado",
|
|
27
|
-
"errors.unauthorized": "No autorizado para crear un rol",
|
|
28
|
-
"errors.rbacDisabled": "Habilita el plugin backend RBAC para usar esta funcionalidad.",
|
|
29
|
-
"errors.rbacDisabledInfo": "Para habilitar RBAC, establece `permission.enabled` en `true` en el archivo de configuraci\xF3n de la aplicaci\xF3n.",
|
|
30
|
-
"errors.fetchRoles": "Algo sali\xF3 mal al obtener los roles",
|
|
31
|
-
"errors.fetchRole": "Algo sali\xF3 mal al obtener el rol",
|
|
32
|
-
"errors.fetchPolicies": "Algo sali\xF3 mal al obtener las pol\xEDticas de permisos",
|
|
33
|
-
"errors.fetchPoliciesErr": "Error al obtener las pol\xEDticas. {{error}}",
|
|
34
|
-
"errors.fetchPlugins": "Error al obtener los plugins. {{error}}",
|
|
35
|
-
"errors.fetchConditionalPermissionPolicies": "Error al obtener las pol\xEDticas de permisos condicionales. {{error}}",
|
|
36
|
-
"errors.fetchConditions": "Algo sali\xF3 mal al obtener las condiciones del rol",
|
|
37
|
-
"errors.fetchUsersAndGroups": "Algo sali\xF3 mal al obtener usuarios y grupos",
|
|
38
|
-
"errors.createRole": "No se puede crear el rol.",
|
|
39
|
-
"errors.editRole": "No se puede editar el rol.",
|
|
40
|
-
"errors.deleteRole": "No se puede eliminar el rol.",
|
|
41
|
-
"errors.roleCreatedSuccess": "El rol fue creado exitosamente pero no se pudieron agregar las pol\xEDticas de permisos al rol.",
|
|
42
|
-
"errors.roleCreatedConditionsSuccess": "El rol fue creado exitosamente pero no se pudieron agregar condiciones al rol.",
|
|
43
|
-
"roleForm.titles.createRole": "Crear rol",
|
|
44
|
-
"roleForm.titles.editRole": "Editar rol",
|
|
45
|
-
"roleForm.titles.nameAndDescription": "Ingresa nombre y descripci\xF3n del rol",
|
|
46
|
-
"roleForm.titles.usersAndGroups": "Agregar usuarios y grupos",
|
|
47
|
-
"roleForm.titles.permissionPolicies": "Agregar pol\xEDticas de permisos",
|
|
48
|
-
"roleForm.review.reviewAndCreate": "Revisar y crear",
|
|
49
|
-
"roleForm.review.reviewAndSave": "Revisar y guardar",
|
|
50
|
-
"roleForm.review.nameDescriptionOwner": "Nombre, descripci\xF3n y propietario del rol",
|
|
51
|
-
"roleForm.review.permissionPoliciesWithCount": "Pol\xEDticas de permisos ({{count}})",
|
|
52
|
-
"roleForm.steps.next": "Siguiente",
|
|
53
|
-
"roleForm.steps.back": "Atr\xE1s",
|
|
54
|
-
"roleForm.steps.cancel": "Cancelar",
|
|
55
|
-
"roleForm.steps.reset": "Reiniciar",
|
|
56
|
-
"roleForm.steps.create": "Crear",
|
|
57
|
-
"roleForm.steps.save": "Guardar",
|
|
58
|
-
"roleForm.fields.name.label": "Nombre",
|
|
59
|
-
"roleForm.fields.name.helperText": "Ingresa el nombre del rol",
|
|
60
|
-
"roleForm.fields.description.label": "Descripci\xF3n",
|
|
61
|
-
"roleForm.fields.description.helperText": "Ingresa una breve descripci\xF3n del rol (El prop\xF3sito del rol)",
|
|
62
|
-
"roleForm.fields.owner.label": "Propietario",
|
|
63
|
-
"roleForm.fields.owner.helperText": "Opcional: Ingresa un usuario o grupo que tendr\xE1 permiso para editar este rol y crear roles adicionales. En el siguiente paso, especifica qu\xE9 usuarios pueden asignar a sus roles y a qu\xE9 plugins pueden otorgar acceso. Si se deja en blanco, asigna autom\xE1ticamente el autor en la creaci\xF3n.",
|
|
64
|
-
"deleteDialog.title": "Eliminar rol",
|
|
65
|
-
"deleteDialog.question": "\xBFEliminar este rol?",
|
|
66
|
-
"deleteDialog.confirmation": "\xBFEst\xE1s seguro de que quieres eliminar el rol **{{roleName}}**?\n\nEliminar este rol es irreversible y eliminar\xE1 su funcionalidad del sistema. Procede con precauci\xF3n.\n\nLos **{{members}}** asociados con este rol perder\xE1n el acceso a todas las **{{permissions}} pol\xEDticas de permisos** especificadas en este rol.",
|
|
67
|
-
"deleteDialog.roleNameLabel": "Nombre del rol",
|
|
68
|
-
"deleteDialog.roleNameHelper": "Escribe el nombre del rol para confirmar",
|
|
69
|
-
"deleteDialog.deleteButton": "Eliminar",
|
|
70
|
-
"deleteDialog.cancelButton": "Cancelar",
|
|
71
|
-
"deleteDialog.successMessage": "Rol {{roleName}} eliminado exitosamente",
|
|
72
|
-
"snackbar.success": "\xC9xito",
|
|
73
|
-
"common.noResults": "No hay resultados para este rango de fechas.",
|
|
74
|
-
"common.exportCSV": "Exportar CSV",
|
|
75
|
-
"common.csvFilename": "exportacion-datos.csv",
|
|
76
|
-
"common.noMembers": "Sin miembros",
|
|
77
|
-
"common.groups": "grupos",
|
|
78
|
-
"common.group": "grupo",
|
|
79
|
-
"common.users": "usuarios",
|
|
80
|
-
"common.user": "usuario",
|
|
81
|
-
"common.use": "Usar",
|
|
82
|
-
"common.refresh": "Actualizar",
|
|
83
|
-
"common.edit": "Editar",
|
|
84
|
-
"common.unauthorizedToEdit": "No autorizado para editar",
|
|
85
|
-
"common.noRecordsFound": "No se encontraron registros",
|
|
86
|
-
"common.selectUsersAndGroups": "Seleccionar usuarios y grupos",
|
|
87
|
-
"common.clearSearch": "limpiar b\xFAsqueda",
|
|
88
|
-
"common.closeDrawer": "Cerrar el caj\xF3n",
|
|
89
|
-
"common.remove": "Eliminar",
|
|
90
|
-
"common.addRule": "Agregar regla",
|
|
91
|
-
"common.selectRule": "Seleccionar una regla",
|
|
92
|
-
"common.rule": "Regla",
|
|
93
|
-
"common.removeNestedCondition": "Eliminar condici\xF3n anidada",
|
|
94
|
-
"common.overview": "Resumen",
|
|
95
|
-
"common.about": "Acerca de",
|
|
96
|
-
"common.description": "Descripci\xF3n",
|
|
97
|
-
"common.modifiedBy": "Modificado por",
|
|
98
|
-
"common.lastModified": "\xDAltima modificaci\xF3n",
|
|
99
|
-
"common.owner": "Propietario",
|
|
100
|
-
"common.noUsersAndGroupsSelected": "No se seleccionaron usuarios y grupos",
|
|
101
|
-
"common.selectedUsersAndGroupsAppearHere": "Los usuarios y grupos seleccionados aparecen aqu\xED.",
|
|
102
|
-
"common.name": "Nombre",
|
|
103
|
-
"common.type": "Tipo",
|
|
104
|
-
"common.members": "Miembros",
|
|
105
|
-
"common.actions": "Acciones",
|
|
106
|
-
"common.removeMember": "Eliminar miembro",
|
|
107
|
-
"common.delete": "Eliminar",
|
|
108
|
-
"common.deleteRole": "Eliminar rol",
|
|
109
|
-
"common.update": "Actualizar",
|
|
110
|
-
"common.editRole": "Editar rol",
|
|
111
|
-
"common.checkingPermissions": "Verificando permisos\u2026",
|
|
112
|
-
"common.unauthorizedTo": "No autorizado para {{action}}",
|
|
113
|
-
"common.performThisAction": "realizar esta acci\xF3n",
|
|
114
|
-
"common.unableToCreatePermissionPolicies": "No se pueden crear las pol\xEDticas de permisos.",
|
|
115
|
-
"common.unableToDeletePermissionPolicies": "No se pueden eliminar las pol\xEDticas de permisos.",
|
|
116
|
-
"common.unableToRemoveConditions": "No se pueden eliminar las condiciones del rol.",
|
|
117
|
-
"common.unableToUpdateConditions": "No se pueden actualizar las condiciones.",
|
|
118
|
-
"common.unableToAddConditions": "No se pueden agregar condiciones al rol.",
|
|
119
|
-
"common.roleActionSuccessfully": "Rol {{roleName}} {{action}} exitosamente",
|
|
120
|
-
"common.unableToFetchRole": "No se puede obtener el rol: {{error}}",
|
|
121
|
-
"common.unableToFetchMembers": "No se pueden obtener los miembros: {{error}}",
|
|
122
|
-
"common.roleAction": "{{action}} rol",
|
|
123
|
-
"common.membersCount": "{{count}} miembros",
|
|
124
|
-
"common.parentGroupCount": "{{count}} grupo padre",
|
|
125
|
-
"common.childGroupsCount": "{{count}} grupos hijos",
|
|
126
|
-
"common.searchAndSelectUsersGroups": "Busque y seleccione usuarios y grupos para agregar. Los usuarios y grupos seleccionados aparecer\xE1n en la tabla a continuaci\xF3n.",
|
|
127
|
-
"common.noUsersAndGroupsFound": "No se encontraron usuarios y grupos.",
|
|
128
|
-
"common.errorFetchingUserGroups": "Error al obtener usuarios y grupos: {{error}}",
|
|
129
|
-
"common.nameRequired": "El nombre es requerido",
|
|
130
|
-
"common.noMemberSelected": "Ning\xFAn miembro seleccionado",
|
|
131
|
-
"common.noPluginSelected": "Ning\xFAn plugin seleccionado",
|
|
132
|
-
"common.pluginRequired": "El plugin es requerido",
|
|
133
|
-
"common.permissionRequired": "El permiso es requerido",
|
|
134
|
-
"common.editCell": "Editar...",
|
|
135
|
-
"common.selectCell": "Seleccionar...",
|
|
136
|
-
"common.expandRow": "expandir fila",
|
|
137
|
-
"common.configureAccessFor": "Configurar acceso para",
|
|
138
|
-
"common.defaultResourceTypeVisible": "Por defecto, el tipo de recurso seleccionado es visible para todos los usuarios agregados. Si quieres restringir o otorgar permisos a reglas de plugin espec\xEDficas, selecci\xF3nalas y agrega los par\xE1metros.",
|
|
139
|
-
"conditionalAccess.condition": "Condici\xF3n",
|
|
140
|
-
"conditionalAccess.allOf": "AllOf",
|
|
141
|
-
"conditionalAccess.anyOf": "AnyOf",
|
|
142
|
-
"conditionalAccess.not": "Not",
|
|
143
|
-
"conditionalAccess.addNestedCondition": "Agregar condici\xF3n anidada",
|
|
144
|
-
"conditionalAccess.addRule": "Agregar regla",
|
|
145
|
-
"conditionalAccess.nestedConditionTooltip": "Las condiciones anidadas son **reglas de 1 nivel dentro de una condici\xF3n principal**. Te permiten permitir un acceso apropiado utilizando permisos detallados basados en varias condiciones. Puedes agregar m\xFAltiples condiciones anidadas.",
|
|
146
|
-
"conditionalAccess.nestedConditionExample": "Por ejemplo, puedes permitir el acceso a todos los tipos de entidades en la condici\xF3n principal y usar una condici\xF3n anidada para limitar el acceso a las entidades propiedad del usuario.",
|
|
147
|
-
"dialog.cancelRoleCreation": "Cancelar creaci\xF3n de rol",
|
|
148
|
-
"dialog.exitRoleCreation": "\xBFSalir de la creaci\xF3n de rol?",
|
|
149
|
-
"dialog.exitRoleEditing": "\xBFSalir de la edici\xF3n de rol?",
|
|
150
|
-
"dialog.exitWarning": "\n\nSalir de esta p\xE1gina descartar\xE1 permanentemente la informaci\xF3n que ingresaste.\n\n\xBFEst\xE1s seguro de que quieres salir?",
|
|
151
|
-
"dialog.discard": "Descartar",
|
|
152
|
-
"dialog.cancel": "Cancelar",
|
|
153
|
-
"permissionPolicies.helperText": "Por defecto, a los usuarios no se les otorga acceso a ning\xFAn plugin. Para otorgar acceso a los usuarios, selecciona los plugins que quieres habilitar. Luego, selecciona qu\xE9 acciones te gustar\xEDa dar permiso al usuario.",
|
|
154
|
-
"permissionPolicies.allPlugins": "Todos los plugins ({{count}})",
|
|
155
|
-
"permissionPolicies.errorFetchingPolicies": "Error al obtener las pol\xEDticas de permisos: {{error}}",
|
|
156
|
-
"permissionPolicies.resourceTypeTooltip": "tipo de recurso: {{resourceType}}",
|
|
157
|
-
"permissionPolicies.advancedPermissionsTooltip": "Usa permisos personalizados avanzados para permitir el acceso a partes espec\xEDficas del tipo de recurso seleccionado.",
|
|
158
|
-
"permissionPolicies.noAdvancedPermissionsTooltip": "La personalizaci\xF3n avanzada no es compatible con este tipo de recurso.",
|
|
159
|
-
"permissionPolicies.pluginsSelected": "{{count}} plugins",
|
|
160
|
-
"permissionPolicies.noPluginsSelected": "Ning\xFAn plugin seleccionado",
|
|
161
|
-
"permissionPolicies.search": "Buscar",
|
|
162
|
-
"permissionPolicies.noRecordsToDisplay": "No hay registros para mostrar.",
|
|
163
|
-
"permissionPolicies.selectedPluginsAppearHere": "Los plugins seleccionados aparecen aqu\xED.",
|
|
164
|
-
"permissionPolicies.selectPlugins": "Seleccionar plugins",
|
|
165
|
-
"permissionPolicies.noPluginsFound": "No se encontraron plugins.",
|
|
166
|
-
"permissionPolicies.plugin": "Plugin",
|
|
167
|
-
"permissionPolicies.permission": "Permiso",
|
|
168
|
-
"permissionPolicies.policies": "Pol\xEDticas",
|
|
169
|
-
"permissionPolicies.conditional": "Condicional",
|
|
170
|
-
"permissionPolicies.rules": "reglas",
|
|
171
|
-
"permissionPolicies.rule": "regla",
|
|
172
|
-
"permissionPolicies.permissionPolicies": "Pol\xEDticas de permisos",
|
|
173
|
-
"permissionPolicies.permissions": "permisos"
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
export { rbacTranslationEs as default };
|
|
178
|
-
//# sourceMappingURL=es.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"es.esm.js","sources":["../../src/translations/es.ts"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\nimport { rbacTranslationRef } from './ref';\n\nconst rbacTranslationEs = createTranslationMessages({\n ref: rbacTranslationRef,\n full: true,\n messages: {\n 'page.title': 'RBAC',\n 'page.createRole': 'Crear rol',\n 'page.editRole': 'Editar rol',\n 'table.searchPlaceholder': 'Filtrar',\n 'table.title': 'Todos los roles',\n 'table.titleWithCount': 'Todos los roles ({{count}})',\n 'table.headers.name': 'Nombre',\n 'table.headers.usersAndGroups': 'Usuarios y grupos',\n 'table.headers.accessiblePlugins': 'Plugins accesibles',\n 'table.headers.actions': 'Acciones',\n 'table.emptyContent': 'No se encontraron registros',\n 'table.labelRowsSelect': 'Filas',\n 'toolbar.createButton': 'Crear',\n 'toolbar.warning.title': 'No se puede crear el rol.',\n 'toolbar.warning.message':\n 'Para habilitar el botón crear/editar rol, asegúrate de que los usuarios/grupos requeridos estén disponibles en el catálogo, ya que no se puede crear un rol sin usuarios/grupos y también el rol asociado con tu usuario debe tener las políticas de permisos mencionadas <link>aquí</link>.',\n 'toolbar.warning.linkText': 'aquí',\n 'toolbar.warning.note': 'Nota',\n 'toolbar.warning.noteText':\n 'Incluso después de ingerir usuarios/grupos en el catálogo y aplicar los permisos mencionados anteriormente, si el botón crear/editar sigue deshabilitado, por favor contacta a tu administrador ya que podrías estar condicionalmente restringido de acceder al botón crear/editar.',\n 'errors.notFound': 'No encontrado',\n 'errors.unauthorized': 'No autorizado para crear un rol',\n 'errors.rbacDisabled':\n 'Habilita el plugin backend RBAC para usar esta funcionalidad.',\n 'errors.rbacDisabledInfo':\n 'Para habilitar RBAC, establece `permission.enabled` en `true` en el archivo de configuración de la aplicación.',\n 'errors.fetchRoles': 'Algo salió mal al obtener los roles',\n 'errors.fetchRole': 'Algo salió mal al obtener el rol',\n 'errors.fetchPolicies':\n 'Algo salió mal al obtener las políticas de permisos',\n 'errors.fetchPoliciesErr': 'Error al obtener las políticas. {{error}}',\n 'errors.fetchPlugins': 'Error al obtener los plugins. {{error}}',\n 'errors.fetchConditionalPermissionPolicies':\n 'Error al obtener las políticas de permisos condicionales. {{error}}',\n 'errors.fetchConditions':\n 'Algo salió mal al obtener las condiciones del rol',\n 'errors.fetchUsersAndGroups': 'Algo salió mal al obtener usuarios y grupos',\n 'errors.createRole': 'No se puede crear el rol.',\n 'errors.editRole': 'No se puede editar el rol.',\n 'errors.deleteRole': 'No se puede eliminar el rol.',\n 'errors.roleCreatedSuccess':\n 'El rol fue creado exitosamente pero no se pudieron agregar las políticas de permisos al rol.',\n 'errors.roleCreatedConditionsSuccess':\n 'El rol fue creado exitosamente pero no se pudieron agregar condiciones al rol.',\n 'roleForm.titles.createRole': 'Crear rol',\n 'roleForm.titles.editRole': 'Editar rol',\n 'roleForm.titles.nameAndDescription':\n 'Ingresa nombre y descripción del rol',\n 'roleForm.titles.usersAndGroups': 'Agregar usuarios y grupos',\n 'roleForm.titles.permissionPolicies': 'Agregar políticas de permisos',\n 'roleForm.review.reviewAndCreate': 'Revisar y crear',\n 'roleForm.review.reviewAndSave': 'Revisar y guardar',\n 'roleForm.review.nameDescriptionOwner':\n 'Nombre, descripción y propietario del rol',\n 'roleForm.review.permissionPoliciesWithCount':\n 'Políticas de permisos ({{count}})',\n 'roleForm.steps.next': 'Siguiente',\n 'roleForm.steps.back': 'Atrás',\n 'roleForm.steps.cancel': 'Cancelar',\n 'roleForm.steps.reset': 'Reiniciar',\n 'roleForm.steps.create': 'Crear',\n 'roleForm.steps.save': 'Guardar',\n 'roleForm.fields.name.label': 'Nombre',\n 'roleForm.fields.name.helperText': 'Ingresa el nombre del rol',\n 'roleForm.fields.description.label': 'Descripción',\n 'roleForm.fields.description.helperText':\n 'Ingresa una breve descripción del rol (El propósito del rol)',\n 'roleForm.fields.owner.label': 'Propietario',\n 'roleForm.fields.owner.helperText':\n 'Opcional: Ingresa un usuario o grupo que tendrá permiso para editar este rol y crear roles adicionales. En el siguiente paso, especifica qué usuarios pueden asignar a sus roles y a qué plugins pueden otorgar acceso. Si se deja en blanco, asigna automáticamente el autor en la creación.',\n 'deleteDialog.title': 'Eliminar rol',\n 'deleteDialog.question': '¿Eliminar este rol?',\n 'deleteDialog.confirmation':\n '¿Estás seguro de que quieres eliminar el rol **{{roleName}}**?\\n\\nEliminar este rol es irreversible y eliminará su funcionalidad del sistema. Procede con precaución.\\n\\nLos **{{members}}** asociados con este rol perderán el acceso a todas las **{{permissions}} políticas de permisos** especificadas en este rol.',\n 'deleteDialog.roleNameLabel': 'Nombre del rol',\n 'deleteDialog.roleNameHelper': 'Escribe el nombre del rol para confirmar',\n 'deleteDialog.deleteButton': 'Eliminar',\n 'deleteDialog.cancelButton': 'Cancelar',\n 'deleteDialog.successMessage': 'Rol {{roleName}} eliminado exitosamente',\n 'snackbar.success': 'Éxito',\n 'common.noResults': 'No hay resultados para este rango de fechas.',\n 'common.exportCSV': 'Exportar CSV',\n 'common.csvFilename': 'exportacion-datos.csv',\n 'common.noMembers': 'Sin miembros',\n 'common.groups': 'grupos',\n 'common.group': 'grupo',\n 'common.users': 'usuarios',\n 'common.user': 'usuario',\n 'common.use': 'Usar',\n 'common.refresh': 'Actualizar',\n 'common.edit': 'Editar',\n 'common.unauthorizedToEdit': 'No autorizado para editar',\n 'common.noRecordsFound': 'No se encontraron registros',\n 'common.selectUsersAndGroups': 'Seleccionar usuarios y grupos',\n 'common.clearSearch': 'limpiar búsqueda',\n 'common.closeDrawer': 'Cerrar el cajón',\n 'common.remove': 'Eliminar',\n 'common.addRule': 'Agregar regla',\n 'common.selectRule': 'Seleccionar una regla',\n 'common.rule': 'Regla',\n 'common.removeNestedCondition': 'Eliminar condición anidada',\n 'common.overview': 'Resumen',\n 'common.about': 'Acerca de',\n 'common.description': 'Descripción',\n 'common.modifiedBy': 'Modificado por',\n 'common.lastModified': 'Última modificación',\n 'common.owner': 'Propietario',\n 'common.noUsersAndGroupsSelected': 'No se seleccionaron usuarios y grupos',\n 'common.selectedUsersAndGroupsAppearHere':\n 'Los usuarios y grupos seleccionados aparecen aquí.',\n 'common.name': 'Nombre',\n 'common.type': 'Tipo',\n 'common.members': 'Miembros',\n 'common.actions': 'Acciones',\n 'common.removeMember': 'Eliminar miembro',\n 'common.delete': 'Eliminar',\n 'common.deleteRole': 'Eliminar rol',\n 'common.update': 'Actualizar',\n 'common.editRole': 'Editar rol',\n 'common.checkingPermissions': 'Verificando permisos…',\n 'common.unauthorizedTo': 'No autorizado para {{action}}',\n 'common.performThisAction': 'realizar esta acción',\n 'common.unableToCreatePermissionPolicies':\n 'No se pueden crear las políticas de permisos.',\n 'common.unableToDeletePermissionPolicies':\n 'No se pueden eliminar las políticas de permisos.',\n 'common.unableToRemoveConditions':\n 'No se pueden eliminar las condiciones del rol.',\n 'common.unableToUpdateConditions':\n 'No se pueden actualizar las condiciones.',\n 'common.unableToAddConditions': 'No se pueden agregar condiciones al rol.',\n 'common.roleActionSuccessfully': 'Rol {{roleName}} {{action}} exitosamente',\n 'common.unableToFetchRole': 'No se puede obtener el rol: {{error}}',\n 'common.unableToFetchMembers':\n 'No se pueden obtener los miembros: {{error}}',\n 'common.roleAction': '{{action}} rol',\n 'common.membersCount': '{{count}} miembros',\n 'common.parentGroupCount': '{{count}} grupo padre',\n 'common.childGroupsCount': '{{count}} grupos hijos',\n 'common.searchAndSelectUsersGroups':\n 'Busque y seleccione usuarios y grupos para agregar. Los usuarios y grupos seleccionados aparecerán en la tabla a continuación.',\n 'common.noUsersAndGroupsFound': 'No se encontraron usuarios y grupos.',\n 'common.errorFetchingUserGroups':\n 'Error al obtener usuarios y grupos: {{error}}',\n 'common.nameRequired': 'El nombre es requerido',\n 'common.noMemberSelected': 'Ningún miembro seleccionado',\n 'common.noPluginSelected': 'Ningún plugin seleccionado',\n 'common.pluginRequired': 'El plugin es requerido',\n 'common.permissionRequired': 'El permiso es requerido',\n 'common.editCell': 'Editar...',\n 'common.selectCell': 'Seleccionar...',\n 'common.expandRow': 'expandir fila',\n 'common.configureAccessFor': 'Configurar acceso para',\n 'common.defaultResourceTypeVisible':\n 'Por defecto, el tipo de recurso seleccionado es visible para todos los usuarios agregados. Si quieres restringir o otorgar permisos a reglas de plugin específicas, selecciónalas y agrega los parámetros.',\n 'conditionalAccess.condition': 'Condición',\n 'conditionalAccess.allOf': 'AllOf',\n 'conditionalAccess.anyOf': 'AnyOf',\n 'conditionalAccess.not': 'Not',\n 'conditionalAccess.addNestedCondition': 'Agregar condición anidada',\n 'conditionalAccess.addRule': 'Agregar regla',\n 'conditionalAccess.nestedConditionTooltip':\n 'Las condiciones anidadas son **reglas de 1 nivel dentro de una condición principal**. Te permiten permitir un acceso apropiado utilizando permisos detallados basados en varias condiciones. Puedes agregar múltiples condiciones anidadas.',\n 'conditionalAccess.nestedConditionExample':\n 'Por ejemplo, puedes permitir el acceso a todos los tipos de entidades en la condición principal y usar una condición anidada para limitar el acceso a las entidades propiedad del usuario.',\n 'dialog.cancelRoleCreation': 'Cancelar creación de rol',\n 'dialog.exitRoleCreation': '¿Salir de la creación de rol?',\n 'dialog.exitRoleEditing': '¿Salir de la edición de rol?',\n 'dialog.exitWarning':\n '\\n\\nSalir de esta página descartará permanentemente la información que ingresaste.\\n\\n¿Estás seguro de que quieres salir?',\n 'dialog.discard': 'Descartar',\n 'dialog.cancel': 'Cancelar',\n 'permissionPolicies.helperText':\n 'Por defecto, a los usuarios no se les otorga acceso a ningún plugin. Para otorgar acceso a los usuarios, selecciona los plugins que quieres habilitar. Luego, selecciona qué acciones te gustaría dar permiso al usuario.',\n 'permissionPolicies.allPlugins': 'Todos los plugins ({{count}})',\n 'permissionPolicies.errorFetchingPolicies':\n 'Error al obtener las políticas de permisos: {{error}}',\n 'permissionPolicies.resourceTypeTooltip':\n 'tipo de recurso: {{resourceType}}',\n 'permissionPolicies.advancedPermissionsTooltip':\n 'Usa permisos personalizados avanzados para permitir el acceso a partes específicas del tipo de recurso seleccionado.',\n 'permissionPolicies.noAdvancedPermissionsTooltip':\n 'La personalización avanzada no es compatible con este tipo de recurso.',\n 'permissionPolicies.pluginsSelected': '{{count}} plugins',\n 'permissionPolicies.noPluginsSelected': 'Ningún plugin seleccionado',\n 'permissionPolicies.search': 'Buscar',\n 'permissionPolicies.noRecordsToDisplay': 'No hay registros para mostrar.',\n 'permissionPolicies.selectedPluginsAppearHere':\n 'Los plugins seleccionados aparecen aquí.',\n 'permissionPolicies.selectPlugins': 'Seleccionar plugins',\n 'permissionPolicies.noPluginsFound': 'No se encontraron plugins.',\n 'permissionPolicies.plugin': 'Plugin',\n 'permissionPolicies.permission': 'Permiso',\n 'permissionPolicies.policies': 'Políticas',\n 'permissionPolicies.conditional': 'Condicional',\n 'permissionPolicies.rules': 'reglas',\n 'permissionPolicies.rule': 'regla',\n 'permissionPolicies.permissionPolicies': 'Políticas de permisos',\n 'permissionPolicies.permissions': 'permisos',\n },\n});\n\nexport default rbacTranslationEs;\n"],"names":[],"mappings":";;;AAkBA,MAAM,oBAAoB,yBAA0B,CAAA;AAAA,EAClD,GAAK,EAAA,kBAAA;AAAA,EACL,IAAM,EAAA,IAAA;AAAA,EACN,QAAU,EAAA;AAAA,IACR,YAAc,EAAA,MAAA;AAAA,IACd,iBAAmB,EAAA,WAAA;AAAA,IACnB,eAAiB,EAAA,YAAA;AAAA,IACjB,yBAA2B,EAAA,SAAA;AAAA,IAC3B,aAAe,EAAA,iBAAA;AAAA,IACf,sBAAwB,EAAA,6BAAA;AAAA,IACxB,oBAAsB,EAAA,QAAA;AAAA,IACtB,8BAAgC,EAAA,mBAAA;AAAA,IAChC,iCAAmC,EAAA,oBAAA;AAAA,IACnC,uBAAyB,EAAA,UAAA;AAAA,IACzB,oBAAsB,EAAA,6BAAA;AAAA,IACtB,uBAAyB,EAAA,OAAA;AAAA,IACzB,sBAAwB,EAAA,OAAA;AAAA,IACxB,uBAAyB,EAAA,2BAAA;AAAA,IACzB,yBACE,EAAA,mTAAA;AAAA,IACF,0BAA4B,EAAA,SAAA;AAAA,IAC5B,sBAAwB,EAAA,MAAA;AAAA,IACxB,0BACE,EAAA,oSAAA;AAAA,IACF,iBAAmB,EAAA,eAAA;AAAA,IACnB,qBAAuB,EAAA,iCAAA;AAAA,IACvB,qBACE,EAAA,+DAAA;AAAA,IACF,yBACE,EAAA,sHAAA;AAAA,IACF,mBAAqB,EAAA,wCAAA;AAAA,IACrB,kBAAoB,EAAA,qCAAA;AAAA,IACpB,sBACE,EAAA,2DAAA;AAAA,IACF,yBAA2B,EAAA,8CAAA;AAAA,IAC3B,qBAAuB,EAAA,yCAAA;AAAA,IACvB,2CACE,EAAA,wEAAA;AAAA,IACF,wBACE,EAAA,sDAAA;AAAA,IACF,4BAA8B,EAAA,gDAAA;AAAA,IAC9B,mBAAqB,EAAA,2BAAA;AAAA,IACrB,iBAAmB,EAAA,4BAAA;AAAA,IACnB,mBAAqB,EAAA,8BAAA;AAAA,IACrB,2BACE,EAAA,iGAAA;AAAA,IACF,qCACE,EAAA,gFAAA;AAAA,IACF,4BAA8B,EAAA,WAAA;AAAA,IAC9B,0BAA4B,EAAA,YAAA;AAAA,IAC5B,oCACE,EAAA,yCAAA;AAAA,IACF,gCAAkC,EAAA,2BAAA;AAAA,IAClC,oCAAsC,EAAA,kCAAA;AAAA,IACtC,iCAAmC,EAAA,iBAAA;AAAA,IACnC,+BAAiC,EAAA,mBAAA;AAAA,IACjC,sCACE,EAAA,8CAAA;AAAA,IACF,6CACE,EAAA,sCAAA;AAAA,IACF,qBAAuB,EAAA,WAAA;AAAA,IACvB,qBAAuB,EAAA,UAAA;AAAA,IACvB,uBAAyB,EAAA,UAAA;AAAA,IACzB,sBAAwB,EAAA,WAAA;AAAA,IACxB,uBAAyB,EAAA,OAAA;AAAA,IACzB,qBAAuB,EAAA,SAAA;AAAA,IACvB,4BAA8B,EAAA,QAAA;AAAA,IAC9B,iCAAmC,EAAA,2BAAA;AAAA,IACnC,mCAAqC,EAAA,gBAAA;AAAA,IACrC,wCACE,EAAA,oEAAA;AAAA,IACF,6BAA+B,EAAA,aAAA;AAAA,IAC/B,kCACE,EAAA,8SAAA;AAAA,IACF,oBAAsB,EAAA,cAAA;AAAA,IACtB,uBAAyB,EAAA,wBAAA;AAAA,IACzB,2BACE,EAAA,2UAAA;AAAA,IACF,4BAA8B,EAAA,gBAAA;AAAA,IAC9B,6BAA+B,EAAA,0CAAA;AAAA,IAC/B,2BAA6B,EAAA,UAAA;AAAA,IAC7B,2BAA6B,EAAA,UAAA;AAAA,IAC7B,6BAA+B,EAAA,yCAAA;AAAA,IAC/B,kBAAoB,EAAA,UAAA;AAAA,IACpB,kBAAoB,EAAA,8CAAA;AAAA,IACpB,kBAAoB,EAAA,cAAA;AAAA,IACpB,oBAAsB,EAAA,uBAAA;AAAA,IACtB,kBAAoB,EAAA,cAAA;AAAA,IACpB,eAAiB,EAAA,QAAA;AAAA,IACjB,cAAgB,EAAA,OAAA;AAAA,IAChB,cAAgB,EAAA,UAAA;AAAA,IAChB,aAAe,EAAA,SAAA;AAAA,IACf,YAAc,EAAA,MAAA;AAAA,IACd,gBAAkB,EAAA,YAAA;AAAA,IAClB,aAAe,EAAA,QAAA;AAAA,IACf,2BAA6B,EAAA,2BAAA;AAAA,IAC7B,uBAAyB,EAAA,6BAAA;AAAA,IACzB,6BAA+B,EAAA,+BAAA;AAAA,IAC/B,oBAAsB,EAAA,qBAAA;AAAA,IACtB,oBAAsB,EAAA,oBAAA;AAAA,IACtB,eAAiB,EAAA,UAAA;AAAA,IACjB,gBAAkB,EAAA,eAAA;AAAA,IAClB,mBAAqB,EAAA,uBAAA;AAAA,IACrB,aAAe,EAAA,OAAA;AAAA,IACf,8BAAgC,EAAA,+BAAA;AAAA,IAChC,iBAAmB,EAAA,SAAA;AAAA,IACnB,cAAgB,EAAA,WAAA;AAAA,IAChB,oBAAsB,EAAA,gBAAA;AAAA,IACtB,mBAAqB,EAAA,gBAAA;AAAA,IACrB,qBAAuB,EAAA,2BAAA;AAAA,IACvB,cAAgB,EAAA,aAAA;AAAA,IAChB,iCAAmC,EAAA,uCAAA;AAAA,IACnC,yCACE,EAAA,uDAAA;AAAA,IACF,aAAe,EAAA,QAAA;AAAA,IACf,aAAe,EAAA,MAAA;AAAA,IACf,gBAAkB,EAAA,UAAA;AAAA,IAClB,gBAAkB,EAAA,UAAA;AAAA,IAClB,qBAAuB,EAAA,kBAAA;AAAA,IACvB,eAAiB,EAAA,UAAA;AAAA,IACjB,mBAAqB,EAAA,cAAA;AAAA,IACrB,eAAiB,EAAA,YAAA;AAAA,IACjB,iBAAmB,EAAA,YAAA;AAAA,IACnB,4BAA8B,EAAA,4BAAA;AAAA,IAC9B,uBAAyB,EAAA,+BAAA;AAAA,IACzB,0BAA4B,EAAA,yBAAA;AAAA,IAC5B,yCACE,EAAA,kDAAA;AAAA,IACF,yCACE,EAAA,qDAAA;AAAA,IACF,iCACE,EAAA,gDAAA;AAAA,IACF,iCACE,EAAA,0CAAA;AAAA,IACF,8BAAgC,EAAA,0CAAA;AAAA,IAChC,+BAAiC,EAAA,0CAAA;AAAA,IACjC,0BAA4B,EAAA,uCAAA;AAAA,IAC5B,6BACE,EAAA,8CAAA;AAAA,IACF,mBAAqB,EAAA,gBAAA;AAAA,IACrB,qBAAuB,EAAA,oBAAA;AAAA,IACvB,yBAA2B,EAAA,uBAAA;AAAA,IAC3B,yBAA2B,EAAA,wBAAA;AAAA,IAC3B,mCACE,EAAA,sIAAA;AAAA,IACF,8BAAgC,EAAA,sCAAA;AAAA,IAChC,gCACE,EAAA,+CAAA;AAAA,IACF,qBAAuB,EAAA,wBAAA;AAAA,IACvB,yBAA2B,EAAA,gCAAA;AAAA,IAC3B,yBAA2B,EAAA,+BAAA;AAAA,IAC3B,uBAAyB,EAAA,wBAAA;AAAA,IACzB,2BAA6B,EAAA,yBAAA;AAAA,IAC7B,iBAAmB,EAAA,WAAA;AAAA,IACnB,mBAAqB,EAAA,gBAAA;AAAA,IACrB,kBAAoB,EAAA,eAAA;AAAA,IACpB,2BAA6B,EAAA,wBAAA;AAAA,IAC7B,mCACE,EAAA,qNAAA;AAAA,IACF,6BAA+B,EAAA,cAAA;AAAA,IAC/B,yBAA2B,EAAA,OAAA;AAAA,IAC3B,yBAA2B,EAAA,OAAA;AAAA,IAC3B,uBAAyB,EAAA,KAAA;AAAA,IACzB,sCAAwC,EAAA,8BAAA;AAAA,IACxC,2BAA6B,EAAA,eAAA;AAAA,IAC7B,0CACE,EAAA,mPAAA;AAAA,IACF,0CACE,EAAA,kMAAA;AAAA,IACF,2BAA6B,EAAA,6BAAA;AAAA,IAC7B,yBAA2B,EAAA,qCAAA;AAAA,IAC3B,wBAA0B,EAAA,oCAAA;AAAA,IAC1B,oBACE,EAAA,0IAAA;AAAA,IACF,gBAAkB,EAAA,WAAA;AAAA,IAClB,eAAiB,EAAA,UAAA;AAAA,IACjB,+BACE,EAAA,oOAAA;AAAA,IACF,+BAAiC,EAAA,+BAAA;AAAA,IACjC,0CACE,EAAA,0DAAA;AAAA,IACF,wCACE,EAAA,mCAAA;AAAA,IACF,+CACE,EAAA,yHAAA;AAAA,IACF,iDACE,EAAA,2EAAA;AAAA,IACF,oCAAsC,EAAA,mBAAA;AAAA,IACtC,sCAAwC,EAAA,+BAAA;AAAA,IACxC,2BAA6B,EAAA,QAAA;AAAA,IAC7B,uCAAyC,EAAA,gCAAA;AAAA,IACzC,8CACE,EAAA,6CAAA;AAAA,IACF,kCAAoC,EAAA,qBAAA;AAAA,IACpC,mCAAqC,EAAA,4BAAA;AAAA,IACrC,2BAA6B,EAAA,QAAA;AAAA,IAC7B,+BAAiC,EAAA,SAAA;AAAA,IACjC,6BAA+B,EAAA,cAAA;AAAA,IAC/B,gCAAkC,EAAA,aAAA;AAAA,IAClC,0BAA4B,EAAA,QAAA;AAAA,IAC5B,yBAA2B,EAAA,OAAA;AAAA,IAC3B,uCAAyC,EAAA,0BAAA;AAAA,IACzC,gCAAkC,EAAA;AAAA;AAEtC,CAAC;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fr.esm.js","sources":["../../src/translations/fr.ts"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\nimport { rbacTranslationRef } from './ref';\n\n/**\n * fr translation for plugin.rbac.\n * @public\n */\nconst rbacTranslationFr = createTranslationMessages({\n ref: rbacTranslationRef,\n messages: {\n 'page.title': 'RBAC',\n 'page.createRole': 'Créer un rôle',\n 'page.editRole': 'Modifier le rôle',\n 'table.searchPlaceholder': 'Filtre',\n 'table.labelRowsSelect': 'Lignes',\n 'table.title': 'Tous les rôles',\n 'table.titleWithCount': 'Tous les rôles ({{count}})',\n 'table.headers.name': 'Nom',\n 'table.headers.usersAndGroups': 'Utilisateurs et groupes',\n 'table.headers.accessiblePlugins': 'Plugins accessibles',\n 'table.headers.actions': 'Actes',\n 'table.emptyContent': 'Aucun enregistrement trouvé',\n 'toolbar.createButton': 'Créer',\n 'toolbar.warning.title': 'Impossible de créer le rôle.',\n 'toolbar.warning.message':\n \"Pour activer le bouton Créer/Modifier un rôle, assurez-vous que les utilisateurs/groupes requis sont disponibles dans le catalogue, car un rôle ne peut pas être créé sans utilisateurs/groupes et que le rôle associé à votre utilisateur doit également avoir les politiques d'autorisation mentionnées. <link>ici</link>.\",\n 'toolbar.warning.linkText': 'ici',\n 'toolbar.warning.note': 'Note',\n 'toolbar.warning.noteText':\n \"Même après avoir ingéré des utilisateurs/groupes dans le catalogue et appliqué les autorisations ci-dessus, si le bouton Créer/Modifier est toujours désactivé, veuillez contacter votre administrateur car vous pourriez être conditionnellement limité dans l'accès au bouton Créer/Modifier.\",\n 'errors.notFound': 'Non trouvé',\n 'errors.unauthorized': 'Non autorisé à créer un rôle',\n 'errors.rbacDisabled':\n 'Activez le plugin backend RBAC pour utiliser cette fonctionnalité.',\n 'errors.rbacDisabledInfo':\n 'Pour activer RBAC, définissez « permission.enabled » sur « true » dans le fichier app-config.',\n 'errors.fetchRoles':\n \"Une erreur s'est produite lors de la récupération des rôles\",\n 'errors.fetchRole':\n \"Une erreur s'est produite lors de la récupération du rôle\",\n 'errors.fetchPoliciesErr':\n 'Erreur lors de la récupération des politiques. {{error}}',\n 'errors.fetchPolicies':\n \"Une erreur s'est produite lors de la récupération des politiques d'autorisation.\",\n 'errors.fetchPlugins':\n 'Erreur lors de la récupération des plugins. {{error}}',\n 'errors.fetchConditionalPermissionPolicies':\n \"Erreur lors de la récupération des politiques d'autorisation conditionnelle. {{error}}\",\n 'errors.fetchConditions':\n \"Une erreur s'est produite lors de la récupération des conditions de rôle\",\n 'errors.fetchUsersAndGroups':\n \"Une erreur s'est produite lors de la récupération des utilisateurs et des groupes\",\n 'errors.createRole': 'Impossible de créer le rôle.',\n 'errors.editRole': 'Impossible de modifier le rôle.',\n 'errors.deleteRole': 'Impossible de supprimer le rôle.',\n 'errors.roleCreatedSuccess':\n \"Le rôle a été créé avec succès, mais il n'a pas été possible d'ajouter des stratégies d'autorisation au rôle.\",\n 'errors.roleCreatedConditionsSuccess':\n \"Rôle créé avec succès mais impossible d'ajouter des conditions au rôle.\",\n 'roleForm.titles.createRole': 'Créer un rôle',\n 'roleForm.titles.editRole': 'Modifier le rôle',\n 'roleForm.titles.nameAndDescription':\n 'Entrez le nom et la description du rôle',\n 'roleForm.titles.usersAndGroups': 'Ajouter des utilisateurs et des groupes',\n 'roleForm.titles.permissionPolicies':\n \"Ajouter des politiques d'autorisation\",\n 'roleForm.review.reviewAndCreate': 'Réviser et créer',\n 'roleForm.review.reviewAndSave': 'Révisez et enregistrez',\n 'roleForm.review.nameDescriptionOwner':\n 'Nom, description et propriétaire du rôle',\n 'roleForm.review.permissionPoliciesWithCount':\n \"Politiques d'autorisations ({{count}})\",\n 'roleForm.steps.next': 'Suivant',\n 'roleForm.steps.back': 'Retour',\n 'roleForm.steps.cancel': 'Annuler',\n 'roleForm.steps.reset': 'Réinitialiser',\n 'roleForm.steps.create': 'Créer',\n 'roleForm.steps.save': 'Sauvegarder',\n 'roleForm.fields.name.label': 'Nom',\n 'roleForm.fields.name.helperText': 'Entrez le nom du rôle',\n 'roleForm.fields.description.label': 'Description',\n 'roleForm.fields.description.helperText':\n 'Saisissez une brève description du rôle (le but du rôle)',\n 'roleForm.fields.owner.label': 'Propriétaire',\n 'roleForm.fields.owner.helperText':\n \"Facultatif : saisissez un utilisateur ou un groupe qui sera autorisé à modifier ce rôle et à créer des rôles supplémentaires. À l’étape suivante, spécifiez les utilisateurs auxquels ils peuvent attribuer leurs rôles et les plugins auxquels ils peuvent accorder l’accès. Si laissé vide, attribue automatiquement l'auteur lors de la création.\",\n 'deleteDialog.title': 'Supprimer le rôle',\n 'deleteDialog.question': 'Supprimer ce rôle ?',\n 'deleteDialog.confirmation':\n \"Êtes-vous sûr de vouloir supprimer le rôle **{{roleName}}** ? La suppression de ce rôle est irréversible et supprimera sa fonctionnalité du système. Procédez avec prudence. Les **{{members}}** associés à ce rôle perdront l'accès à toutes les **{{permissions}} politiques d'autorisation** spécifiées dans ce rôle.\",\n 'deleteDialog.roleNameLabel': 'Nom du rôle',\n 'deleteDialog.roleNameHelper': 'Tapez le nom du rôle pour confirmer',\n 'deleteDialog.deleteButton': 'Supprimer',\n 'deleteDialog.cancelButton': 'Annuler',\n 'deleteDialog.successMessage':\n 'Le rôle {{roleName}} a été supprimé avec succès',\n 'snackbar.success': 'Succès',\n 'dialog.cancelRoleCreation': 'Annuler la création du rôle',\n 'dialog.exitRoleCreation': \"Création d'un rôle de sortie ?\",\n 'dialog.exitRoleEditing': \"Quitter l'édition du rôle ?\",\n 'dialog.exitWarning':\n '\\n\\nQuitter cette page supprimera définitivement les informations que vous avez saisies. Etes-vous sûr de vouloir quitter ?',\n 'dialog.discard': 'Ignorer',\n 'dialog.cancel': 'Annuler',\n 'conditionalAccess.condition': 'Condition',\n 'conditionalAccess.allOf': 'AllOf',\n 'conditionalAccess.anyOf': 'AnyOf',\n 'conditionalAccess.not': 'Aucun',\n 'conditionalAccess.addNestedCondition': 'Ajouter une condition imbriquée',\n 'conditionalAccess.addRule': 'Ajouter une règle',\n 'conditionalAccess.nestedConditionTooltip':\n \"Les conditions imbriquées sont des **règles à 1 couche dans une condition principale**. Il vous permet d'autoriser un accès approprié en utilisant des autorisations détaillées basées sur diverses conditions. Vous pouvez ajouter plusieurs conditions imbriquées.\",\n 'conditionalAccess.nestedConditionExample':\n 'Par exemple, vous pouvez autoriser l’accès à tous les types d’entités dans la condition principale et utiliser une condition imbriquée pour limiter l’accès aux entités appartenant à l’utilisateur.',\n 'permissionPolicies.helperText':\n \"Par défaut, les utilisateurs n'ont accès à aucun plugin. Pour accorder l’accès utilisateur, sélectionnez les plugins que vous souhaitez activer. Ensuite, sélectionnez les actions pour lesquelles vous souhaitez accorder l’autorisation à l’utilisateur.\",\n 'permissionPolicies.allPlugins': 'Tous les plugins ({{count}})',\n 'permissionPolicies.errorFetchingPolicies':\n \"Erreur lors de la récupération des politiques d'autorisation : {{error}}\",\n 'permissionPolicies.resourceTypeTooltip':\n 'type de ressource : {{resourceType}}',\n 'permissionPolicies.advancedPermissionsTooltip':\n 'Utilisez des autorisations personnalisées avancées pour autoriser l’accès à des parties spécifiques du type de ressource sélectionné.',\n 'permissionPolicies.pluginsSelected': '{{count}} plugins',\n 'permissionPolicies.noPluginsSelected': 'Aucun plugin sélectionné',\n 'permissionPolicies.search': 'Recherche',\n 'permissionPolicies.noRecordsToDisplay': 'Aucun enregistrement à afficher',\n 'permissionPolicies.selectedPluginsAppearHere':\n 'Les plugins sélectionnés apparaissent ici.',\n 'permissionPolicies.selectPlugins': 'Sélectionner les plugins',\n 'permissionPolicies.noPluginsFound': 'Aucun plugin trouvé',\n 'permissionPolicies.plugin': 'Plugin',\n 'permissionPolicies.permission': 'Autorisation',\n 'permissionPolicies.policies': 'Politiques',\n 'permissionPolicies.conditional': 'Conditionnel',\n 'permissionPolicies.rules': 'règles',\n 'permissionPolicies.rule': 'règle',\n 'permissionPolicies.permissionPolicies': \"Politiques d'autorisation\",\n 'permissionPolicies.permissions': 'autorisations',\n 'common.noResults': 'Aucun résultat pour cette plage de dates.',\n 'common.exportCSV': 'Exporter au format CSV',\n 'common.csvFilename': 'export-de-données.csv',\n 'common.noMembers': 'Aucun membre',\n 'common.groups': 'groupes',\n 'common.group': 'groupe',\n 'common.users': 'utilisateurs',\n 'common.user': 'utilisateur',\n 'common.use': 'Utiliser',\n 'common.refresh': 'Rafraîchir',\n 'common.edit': 'Modifier',\n 'common.unauthorizedToEdit': 'Modification non autorisée',\n 'common.noRecordsFound': 'Aucun enregistrement trouvé',\n 'common.selectUsersAndGroups':\n 'Sélectionner les utilisateurs et les groupes',\n 'common.clearSearch': 'supprimer la recherche',\n 'common.closeDrawer': 'Fermez le tiroir',\n 'common.remove': 'Supprimer',\n 'common.addRule': 'Ajouter une règle',\n 'common.selectRule': 'Sélectionnez une règle',\n 'common.rule': 'Règle',\n 'common.removeNestedCondition': 'Supprimer la condition imbriquée',\n 'common.overview': 'Vue d’ensemble',\n 'common.about': 'À propos',\n 'common.description': 'Description',\n 'common.modifiedBy': 'Modifié par',\n 'common.lastModified': 'Dernière modification',\n 'common.owner': 'Propriétaire',\n 'common.noUsersAndGroupsSelected':\n 'Aucun utilisateur ni groupe sélectionné',\n 'common.selectedUsersAndGroupsAppearHere':\n 'Les utilisateurs et groupes sélectionnés apparaissent ici.',\n 'common.name': 'Nom',\n 'common.type': 'Type',\n 'common.members': 'Membres',\n 'common.actions': 'Actes',\n 'common.removeMember': 'Supprimer le membre',\n 'common.delete': 'Supprimer',\n 'common.deleteRole': 'Supprimer le rôle',\n 'common.update': 'Mise à jour',\n 'common.editRole': 'Modifier le rôle',\n 'common.checkingPermissions': 'Vérification des autorisations…',\n 'common.unauthorizedTo': 'Non autorisé à {{action}}',\n 'common.performThisAction': 'effectuer cette action',\n 'common.unableToCreatePermissionPolicies':\n \"Impossible de créer les politiques d'autorisation.\",\n 'common.unableToDeletePermissionPolicies':\n \"Impossible de supprimer les politiques d'autorisation.\",\n 'common.unableToRemoveConditions':\n 'Impossible de supprimer les conditions du rôle.',\n 'common.unableToUpdateConditions':\n 'Impossible de mettre à jour les conditions.',\n 'common.unableToAddConditions':\n \"Impossible d'ajouter des conditions au rôle.\",\n 'common.roleActionSuccessfully': 'Rôle {{roleName}} {{action}} avec succès',\n 'common.unableToFetchRole': 'Impossible de récupérer le rôle : {{error}}',\n 'common.unableToFetchMembers':\n 'Impossible de récupérer les membres : {{error}}',\n 'common.roleAction': 'rôle {{action}}',\n 'common.membersCount': '{{count}} membres',\n 'common.parentGroupCount': '{{count}} groupe parent',\n 'common.childGroupsCount': '{{count}} groupes enfants',\n 'common.searchAndSelectUsersGroups':\n 'Recherchez et sélectionnez les utilisateurs et les groupes à ajouter. Les utilisateurs et groupes sélectionnés apparaîtront dans le tableau ci-dessous.',\n 'common.noUsersAndGroupsFound': 'Aucun utilisateur ni groupe trouvé.',\n 'common.errorFetchingUserGroups':\n \"Erreur lors de la récupération de l'utilisateur et des groupes : {{error}}\",\n 'common.nameRequired': 'Le nom est obligatoire',\n 'common.noMemberSelected': 'Aucun membre sélectionné',\n 'common.noPluginSelected': 'Aucun plugin sélectionné',\n 'common.pluginRequired': 'Le plugin est requis',\n 'common.permissionRequired': 'Une autorisation est requise',\n 'common.editCell': 'Modifier...',\n 'common.selectCell': 'Sélectionner...',\n 'common.expandRow': 'développer la ligne',\n 'common.configureAccessFor': \"Configurer l'accès pour le\",\n 'common.defaultResourceTypeVisible':\n 'Par défaut, le type de ressource sélectionné est visible par tous les utilisateurs ajoutés. Si vous souhaitez restreindre ou accorder une autorisation à des règles de plugin spécifiques, sélectionnez-les et ajoutez les paramètres.',\n },\n});\n\nexport default rbacTranslationFr;\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../src/translations/index.ts"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createTranslationResource } from '@backstage/core-plugin-api/alpha';\nimport { rbacTranslationRef } from './ref';\n\n/**\n * @public\n */\nexport const rbacTranslations = createTranslationResource({\n ref: rbacTranslationRef,\n translations: {\n de: () => import('./de'),\n fr: () => import('./fr'),\n it: () => import('./it'),\n es: () => import('./es'),\n ja: () => import('./ja'),\n },\n});\n\nexport { rbacTranslationRef };\n"],"names":[],"mappings":";;;AAqBO,MAAM,mBAAmB,yBAA0B,CAAA;AAAA,EACxD,GAAK,EAAA,kBAAA;AAAA,EACL,YAAc,EAAA;AAAA,IACZ,EAAA,EAAI,MAAM,OAAO,aAAM,CAAA;AAAA,IACvB,EAAA,EAAI,MAAM,OAAO,aAAM,CAAA;AAAA,IACvB,EAAA,EAAI,MAAM,OAAO,aAAM,CAAA;AAAA,IACvB,EAAA,EAAI,MAAM,OAAO,aAAM,CAAA;AAAA,IACvB,EAAA,EAAI,MAAM,OAAO,aAAM;AAAA;AAE3B,CAAC;;;;"}
|