/** * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ import "./details.scss"; import { observer } from "mobx-react"; import React from "react"; import { DrawerTitle } from "../../drawer"; import type { KubeObjectDetailsProps } from "../../kube-object-details"; import { KubeObjectMeta } from "../../kube-object-meta"; import type { ClusterRole } from "../../../../common/k8s-api/endpoints"; export interface ClusterRoleDetailsProps extends KubeObjectDetailsProps { } @observer export class ClusterRoleDetails extends React.Component { render() { const { object: clusterRole } = this.props; if (!clusterRole) return null; const rules = clusterRole.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(", ")}
)}
); })}
); } }