@@ -5,6 +5,10 @@ import { WcpProject, WcpProjectPackage } from "~/types";
5
5
interface UseWcpHook {
6
6
getProject : ( ) => WcpProject | null ;
7
7
canUseFeature : ( featureId : keyof WcpProjectPackage [ "features" ] ) => boolean ;
8
+ canUseAacl : ( ) => boolean ;
9
+ canUseTeams : ( ) => boolean ;
10
+ canUsePrivateFiles : ( ) => boolean ;
11
+ canUseFolderLevelPermissions : ( ) => boolean ;
8
12
}
9
13
10
14
export function useWcp ( ) : UseWcpHook {
@@ -27,5 +31,46 @@ export function useWcp(): UseWcpHook {
27
31
[ context . project ]
28
32
) ;
29
33
30
- return { getProject, canUseFeature } ;
34
+ const canUseAacl = ( ) => {
35
+ return canUseFeature ( "advancedAccessControlLayer" ) ;
36
+ } ;
37
+
38
+ const canUseTeams = ( ) => {
39
+ if ( ! canUseAacl ( ) ) {
40
+ return false ;
41
+ }
42
+
43
+ const advancedAccessControlLayer =
44
+ context . project ! . package . features . advancedAccessControlLayer ! ;
45
+ return advancedAccessControlLayer . options . teams ;
46
+ } ;
47
+
48
+ const canUseFolderLevelPermissions = ( ) => {
49
+ if ( ! canUseAacl ( ) ) {
50
+ return false ;
51
+ }
52
+
53
+ const advancedAccessControlLayer =
54
+ context . project ! . package . features . advancedAccessControlLayer ! ;
55
+ return advancedAccessControlLayer . options . folderLevelPermissions ;
56
+ } ;
57
+
58
+ const canUsePrivateFiles = ( ) => {
59
+ if ( ! canUseAacl ( ) ) {
60
+ return false ;
61
+ }
62
+
63
+ const advancedAccessControlLayer =
64
+ context . project ! . package . features . advancedAccessControlLayer ! ;
65
+ return advancedAccessControlLayer . options . privateFiles ;
66
+ } ;
67
+
68
+ return {
69
+ getProject,
70
+ canUseFeature,
71
+ canUseAacl,
72
+ canUseTeams,
73
+ canUseFolderLevelPermissions,
74
+ canUsePrivateFiles
75
+ } ;
31
76
}
0 commit comments