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 { clusterRoleApi, Role, roleApi } from "../../api/endpoints"; import { apiManager } from "../../api/api-manager"; import { KubeObjectMeta } from "../kube-object/kube-object-meta"; 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(", ")}
)}
) })}
) } } apiManager.registerViews([roleApi, clusterRoleApi], { Details: RoleDetails, })