mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>
23 lines
825 B
TypeScript
23 lines
825 B
TypeScript
/**
|
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
*/
|
|
import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
|
|
import allowedResourcesInjectable from "../cluster-store/allowed-resources.injectable";
|
|
import type { KubeResource } from "../rbac";
|
|
|
|
export type IsAllowedResource = (resource: KubeResource) => boolean;
|
|
|
|
// TODO: This injectable obscures MobX de-referencing. Make it more apparent in usage.
|
|
const isAllowedResourceInjectable = getInjectable({
|
|
instantiate: (di) => {
|
|
const allowedResources = di.inject(allowedResourcesInjectable);
|
|
|
|
return (resource: KubeResource) => allowedResources.get().has(resource);
|
|
},
|
|
|
|
lifecycle: lifecycleEnum.singleton,
|
|
});
|
|
|
|
export default isAllowedResourceInjectable;
|