import "./user-management.scss"
import React from "react";
import { observer } from "mobx-react";
import { Trans } from "@lingui/macro";
import { TabLayout, TabLayoutRoute } from "../layout/tab-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 } from "./user-management.route";
import { namespaceStore } from "../+namespaces/namespace.store";
import { PodSecurityPolicies, podSecurityPoliciesRoute, podSecurityPoliciesURL } from "../+pod-security-policies";
import { isAllowedResource } from "../../../common/rbac";
@observer
export class UserManagement extends React.Component {
static get tabRoutes() {
const tabRoutes: TabLayoutRoute[] = [];
const query = namespaceStore.getContextParams()
tabRoutes.push(
{
title: Service Accounts,
component: ServiceAccounts,
url: serviceAccountsURL({ query }),
routePath: serviceAccountsRoute.path.toString(),
},
{
title: Role Bindings,
component: RoleBindings,
url: roleBindingsURL({ query }),
routePath: roleBindingsRoute.path.toString(),
},
{
title: Roles,
component: Roles,
url: rolesURL({ query }),
routePath: rolesRoute.path.toString(),
},
)
if (isAllowedResource("podsecuritypolicies")) {
tabRoutes.push({
title: Pod Security Policies,
component: PodSecurityPolicies,
url: podSecurityPoliciesURL(),
routePath: podSecurityPoliciesRoute.path.toString(),
})
}
return tabRoutes;
}
render() {
return (
)
}
}