feat(rbac): implemented project based permission loading and role management

This commit is contained in:
Akhil Mohan
2023-09-08 21:22:36 +05:30
parent aac3168c80
commit 520a553ea1
63 changed files with 2237 additions and 488 deletions
@@ -1,7 +1,3 @@
export { OrgPermissionProvider, useOrgPermission } from "./OrgPermissionContext";
export type { TOrgPermission } from "./types";
export {
OrgGeneralPermissionActions,
OrgPermissionSubjects,
OrgWorkspacePermissionActions
} from "./types";
export { GeneralPermissionActions,OrgPermissionSubjects } from "./types";
@@ -1,17 +1,12 @@
import { MongoAbility } from "@casl/ability";
export enum OrgGeneralPermissionActions {
export enum GeneralPermissionActions {
Read = "read",
Create = "create",
Edit = "edit",
Delete = "delete"
}
export enum OrgWorkspacePermissionActions {
Read = "read",
Create = "create"
}
export enum OrgPermissionSubjects {
Workspace = "workspace",
Role = "role",
@@ -24,13 +19,14 @@ export enum OrgPermissionSubjects {
}
export type OrgPermissionSet =
| [OrgWorkspacePermissionActions, OrgPermissionSubjects.Workspace]
| [OrgGeneralPermissionActions, OrgPermissionSubjects.Role]
| [OrgGeneralPermissionActions, OrgPermissionSubjects.Member]
| [OrgGeneralPermissionActions, OrgPermissionSubjects.Settings]
| [OrgGeneralPermissionActions, OrgPermissionSubjects.IncidentAccount]
| [OrgGeneralPermissionActions, OrgPermissionSubjects.Sso]
| [OrgGeneralPermissionActions, OrgPermissionSubjects.SecretScanning]
| [OrgGeneralPermissionActions, OrgPermissionSubjects.Billing];
| [GeneralPermissionActions.Create, OrgPermissionSubjects.Workspace]
| [GeneralPermissionActions.Read, OrgPermissionSubjects.Workspace]
| [GeneralPermissionActions, OrgPermissionSubjects.Role]
| [GeneralPermissionActions, OrgPermissionSubjects.Member]
| [GeneralPermissionActions, OrgPermissionSubjects.Settings]
| [GeneralPermissionActions, OrgPermissionSubjects.IncidentAccount]
| [GeneralPermissionActions, OrgPermissionSubjects.Sso]
| [GeneralPermissionActions, OrgPermissionSubjects.SecretScanning]
| [GeneralPermissionActions, OrgPermissionSubjects.Billing];
export type TOrgPermission = MongoAbility<OrgPermissionSet>;