1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

ensure the start url is the workloads overview when the cluster overview is not available due to rbac restrictions (#5488)

Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
This commit is contained in:
Jim Ehrismann 2022-05-30 09:41:37 -04:00 committed by GitHub
parent c62333f334
commit 07e9456874
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,8 +4,6 @@
*/ */
import { getInjectable } from "@ogre-tools/injectable"; import { getInjectable } from "@ogre-tools/injectable";
import { computed } from "mobx"; import { computed } from "mobx";
import type { KubeResource } from "../../../common/rbac";
import isAllowedResourceInjectable from "../../../common/utils/is-allowed-resource.injectable";
import clusterOverviewRouteInjectable from "../../../common/front-end-routing/routes/cluster/overview/cluster-overview-route.injectable"; import clusterOverviewRouteInjectable from "../../../common/front-end-routing/routes/cluster/overview/cluster-overview-route.injectable";
import workloadsOverviewRouteInjectable from "../../../common/front-end-routing/routes/cluster/workloads/overview/workloads-overview-route.injectable"; import workloadsOverviewRouteInjectable from "../../../common/front-end-routing/routes/cluster/workloads/overview/workloads-overview-route.injectable";
import { buildURL } from "../../../common/utils/buildUrl"; import { buildURL } from "../../../common/utils/buildUrl";
@ -14,17 +12,13 @@ const startUrlInjectable = getInjectable({
id: "start-url", id: "start-url",
instantiate: (di) => { instantiate: (di) => {
const isAllowedResource = (resourceName: any) => di.inject(isAllowedResourceInjectable, resourceName);
const clusterOverviewRoute = di.inject(clusterOverviewRouteInjectable); const clusterOverviewRoute = di.inject(clusterOverviewRouteInjectable);
const workloadOverviewRoute = di.inject(workloadsOverviewRouteInjectable); const workloadOverviewRoute = di.inject(workloadsOverviewRouteInjectable);
const clusterOverviewUrl = buildURL(clusterOverviewRoute.path); const clusterOverviewUrl = buildURL(clusterOverviewRoute.path);
const workloadOverviewUrl = buildURL(workloadOverviewRoute.path); const workloadOverviewUrl = buildURL(workloadOverviewRoute.path);
return computed(() => { return computed(() => {
const resources: KubeResource[] = ["events", "nodes", "pods"]; return clusterOverviewRoute.isEnabled.get()
return resources.every((resourceName) => isAllowedResource(resourceName))
? clusterOverviewUrl ? clusterOverviewUrl
: workloadOverviewUrl; : workloadOverviewUrl;
}); });