[INIT] Initial Project Structure
This commit is contained in:
commit
0fc5f05b6a
105 changed files with 10448 additions and 0 deletions
26
lib/vix/AppPolicies.ts
Normal file
26
lib/vix/AppPolicies.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
import { ResourcePolicy, ResourcePolicyComputeType, ResourcePolicyString, ResourcePolicyType } from "@dunemask/vix/util";
|
||||
import { IAMResource, ManagementResource, Resource } from "./AppResources";
|
||||
|
||||
export const Policy = ResourcePolicy<Resource>;
|
||||
export declare type Policy = ResourcePolicy<Resource>;
|
||||
export declare type PolicyType = ResourcePolicyType<Resource>;
|
||||
export declare type PolicyComputeType = ResourcePolicyComputeType<Resource>;
|
||||
export declare type PolicyString = ResourcePolicyString<Resource>;
|
||||
export declare type PolicyDefault = { id: string; name: string; policies: Policy[] };
|
||||
|
||||
export default class DefaultRolePolicies {
|
||||
static Root = $unsafeGetRootPolicy();
|
||||
static Admin = Policy.multiple<Resource>(
|
||||
`${IAMResource.Admin}.root`,
|
||||
`${ManagementResource.ManageProject}.root`,
|
||||
`${ManagementResource.ManageUser}.root`,
|
||||
);
|
||||
|
||||
static User = Policy.multiple<Resource>(`${IAMResource.User}.root`);
|
||||
}
|
||||
|
||||
function $unsafeGetRootPolicy(): Policy[] {
|
||||
const policies: PolicyString[] = [];
|
||||
for (const resource of Object.values(Resource)) policies.push(`${resource}.root`);
|
||||
return Policy.multiple<Resource>(...policies) as Policy[];
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue