Merge branch 'feat/inda-383-daily-stat' into 'main'
[ProtonMail-WebClient.git] / packages / docs-shared / lib / Doc / DocumentRole.ts
blobeea5e089d2119c910b5e86e7c1ad9d389675cae7
1 export type DocumentRoleType =
2   | 'Viewer'
3   | 'Commenter'
4   | 'Editor'
5   | 'Admin'
6   | 'PublicViewer'
7   | 'PublicViewerWithAccess'
8   | 'PublicEditor'
10 export class DocumentRole {
11   constructor(public readonly roleType: DocumentRoleType) {}
13   public canEdit(): boolean {
14     return this.roleType === 'Editor' || this.roleType === 'Admin' || this.roleType === 'PublicEditor'
15   }
17   isAdmin(): boolean {
18     return this.roleType === 'Admin'
19   }
21   canComment(): boolean {
22     return (
23       this.roleType === 'Commenter' ||
24       this.roleType === 'Editor' ||
25       this.roleType === 'Admin' ||
26       this.roleType === 'PublicEditor'
27     )
28   }
30   isPublicViewer(): boolean {
31     return this.roleType === 'PublicViewer' || this.roleType === 'PublicViewerWithAccess'
32   }
34   isPublicEditor(): boolean {
35     return this.roleType === 'PublicEditor'
36   }
38   isPublicViewerWithAccess(): boolean {
39     return this.roleType === 'PublicViewerWithAccess'
40   }
42   isPublicViewerOrEditor(): boolean {
43     return this.isPublicViewer() || this.isPublicEditor()
44   }