frontend permissions

* rework backend workspace permissions
This commit is contained in:
Philipinho
2024-06-03 02:54:12 +01:00
parent b88e0b605f
commit 886d9591fa
54 changed files with 715 additions and 385 deletions

View File

@ -0,0 +1,17 @@
export enum SpaceCaslAction {
Manage = "manage",
Create = "create",
Read = "read",
Edit = "edit",
Delete = "delete",
}
export enum SpaceCaslSubject {
Settings = "settings",
Member = "member",
Page = "page",
}
export type SpaceAbility =
| [SpaceCaslAction, SpaceCaslSubject.Settings]
| [SpaceCaslAction, SpaceCaslSubject.Member]
| [SpaceCaslAction, SpaceCaslSubject.Page];

View File

@ -0,0 +1,15 @@
import { createMongoAbility } from "@casl/ability";
import { SpaceAbility } from "@/features/space/permissions/permissions.type.ts";
export const useSpaceAbility = (rules: any) => {
if (!rules) {
rules = [];
}
const ability = createMongoAbility<SpaceAbility>(rules);
return {
can: ability.can.bind(ability),
cannot: ability.cannot.bind(ability),
};
};