import "./user-management.scss" import React from "react"; import { observer } from "mobx-react"; import { Redirect, Route, Switch } from "react-router"; import { RouteComponentProps } from "react-router-dom"; import { Trans } from "@lingui/macro"; import { MainLayout, TabRoute } from "../layout/main-layout"; import { Roles } from "../+user-management-roles"; import { RoleBindings } from "../+user-management-roles-bindings"; import { ServiceAccounts } from "../+user-management-service-accounts"; import { roleBindingsRoute, roleBindingsURL, rolesRoute, rolesURL, serviceAccountsRoute, serviceAccountsURL, usersManagementURL } from "./user-management.routes"; import { namespaceStore } from "../+namespaces/namespace.store"; import { configStore } from "../../config.store"; import { PodSecurityPolicies, podSecurityPoliciesRoute, podSecurityPoliciesURL } from "../+pod-security-policies"; interface Props extends RouteComponentProps<{}> { } @observer export class UserManagement extends React.Component { static get tabRoutes() { const tabRoutes: TabRoute[] = []; const { allowedResources } = configStore; const query = namespaceStore.getContextParams() tabRoutes.push( { title: Service Accounts, component: ServiceAccounts, url: serviceAccountsURL({ query }), path: serviceAccountsRoute.path, }, { title: Role Bindings, component: RoleBindings, url: roleBindingsURL({ query }), path: roleBindingsRoute.path, }, { title: Roles, component: Roles, url: rolesURL({ query }), path: rolesRoute.path, }, ) if (allowedResources.includes("podsecuritypolicies")) { tabRoutes.push({ title: Pod Security Policies, component: PodSecurityPolicies, url: podSecurityPoliciesURL(), path: podSecurityPoliciesRoute.path, }) } return tabRoutes; } render() { const tabRoutes = UserManagement.tabRoutes; return ( {tabRoutes.map((route, index) => )} ) } }