mirror of
https://github.com/docmost/docmost.git
synced 2026-05-18 23:44:24 +08:00
frontend permissions
* rework backend workspace permissions
This commit is contained in:
@@ -1,9 +0,0 @@
|
||||
import { AppAbility } from '../abilities/casl-ability.factory';
|
||||
|
||||
interface IPolicyHandler {
|
||||
handle(ability: AppAbility): boolean;
|
||||
}
|
||||
|
||||
type PolicyHandlerCallback = (ability: AppAbility) => boolean;
|
||||
|
||||
export type PolicyHandler = IPolicyHandler | PolicyHandlerCallback;
|
||||
@@ -11,7 +11,7 @@ export enum SpaceCaslSubject {
|
||||
Page = 'page',
|
||||
}
|
||||
|
||||
export type SpaceAbility =
|
||||
export type ISpaceAbility =
|
||||
| [SpaceCaslAction, SpaceCaslSubject.Settings]
|
||||
| [SpaceCaslAction, SpaceCaslSubject.Member]
|
||||
| [SpaceCaslAction, SpaceCaslSubject.Page];
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
export enum WorkspaceCaslAction {
|
||||
Manage = 'manage',
|
||||
Create = 'create',
|
||||
Read = 'read',
|
||||
Edit = 'edit',
|
||||
Delete = 'delete',
|
||||
}
|
||||
export enum WorkspaceCaslSubject {
|
||||
Settings = 'settings',
|
||||
Member = 'member',
|
||||
Space = 'space',
|
||||
Group = 'group',
|
||||
Attachment = 'attachment',
|
||||
}
|
||||
|
||||
export type IWorkspaceAbility =
|
||||
| [WorkspaceCaslAction, WorkspaceCaslSubject.Settings]
|
||||
| [WorkspaceCaslAction, WorkspaceCaslSubject.Member]
|
||||
| [WorkspaceCaslAction, WorkspaceCaslSubject.Space]
|
||||
| [WorkspaceCaslAction, WorkspaceCaslSubject.Group]
|
||||
| [WorkspaceCaslAction, WorkspaceCaslSubject.Attachment];
|
||||
Reference in New Issue
Block a user