import { ResourcePolicy, ResourcePolicyComputeType, ResourcePolicyString, ResourcePolicyType } from "@dunemask/vix/util"; import { IAMResource, ManagementResource, Resource } from "./AppResources"; export const Policy = ResourcePolicy; export declare type Policy = ResourcePolicy; export declare type PolicyType = ResourcePolicyType; export declare type PolicyComputeType = ResourcePolicyComputeType; export declare type PolicyString = ResourcePolicyString; export declare type PolicyDefault = { id: string; name: string; policies: Policy[] }; export default class DefaultRolePolicies { static Root = $unsafeGetRootPolicy(); static Admin = Policy.multiple( `${IAMResource.Admin}.root`, `${ManagementResource.ManageProject}.root`, `${ManagementResource.ManageUser}.root`, ); static User = Policy.multiple(`${IAMResource.User}.root`); } function $unsafeGetRootPolicy(): Policy[] { const policies: PolicyString[] = []; for (const resource of Object.values(Resource)) policies.push(`${resource}.root`); return Policy.multiple(...policies) as Policy[]; }