import "./role-details.scss"; import React from "react"; import { Trans } from "@lingui/macro"; import { DrawerTitle } from "../drawer"; import { KubeEventDetails } from "../+events/kube-event-details"; import { observer } from "mobx-react"; import { KubeObjectDetailsProps } from "../kube-object"; import { Role } from "../../api/endpoints"; import { KubeObjectMeta } from "../kube-object/kube-object-meta"; import { kubeObjectDetailRegistry } from "../../api/kube-object-detail-registry"; interface Props extends KubeObjectDetailsProps { } @observer export class RoleDetails extends React.Component { render() { const { object: role } = this.props; if (!role) return; const rules = role.getRules(); return (
Rules}/> {rules.map(({ resourceNames, apiGroups, resources, verbs }, index) => { return (
{resources && ( <>
Resources
{resources.join(", ")}
)} {verbs && ( <>
Verbs
{verbs.join(", ")}
)} {apiGroups && ( <>
Api Groups
{apiGroups .map(apiGroup => apiGroup === "" ? `'${apiGroup}'` : apiGroup) .join(", ") }
)} {resourceNames && ( <>
Resource Names
{resourceNames.join(", ")}
)}
); })}
); } } kubeObjectDetailRegistry.add({ kind: "Role", apiVersions: ["rbac.authorization.k8s.io/v1"], components: { Details: (props) => } }); kubeObjectDetailRegistry.add({ kind: "Role", apiVersions: ["rbac.authorization.k8s.io/v1"], priority: 5, components: { Details: (props) => } }); kubeObjectDetailRegistry.add({ kind: "ClusterRole", apiVersions: ["rbac.authorization.k8s.io/v1"], components: { Details: (props) => } }); kubeObjectDetailRegistry.add({ kind: "ClusterRole", apiVersions: ["rbac.authorization.k8s.io/v1"], priority: 5, components: { Details: (props) => } });