@@ -5,78 +5,91 @@ define([
55) {
66
77 function isPermittedCreateCC ( ) {
8- return AuthAPI . isPermitted ( `cohort-characterization:post ` ) ;
8+ return AuthAPI . isPermitted ( `create: cohort-characterization` ) ;
99 }
1010
1111 function isPermittedImportCC ( ) {
12- return AuthAPI . isPermitted ( `cohort-characterization:import:post ` ) ;
12+ return AuthAPI . isPermitted ( `create: cohort-characterization` ) ;
1313 }
1414
1515 function isPermittedGetCCList ( ) {
16- return AuthAPI . isPermitted ( `cohort-characterization:get` ) ;
16+ return true ; // we do not need to restrict list opertions
1717 }
1818
19- function isPermittedGetCC ( id ) {
20- return AuthAPI . isPermitted ( `cohort-characterization:${ id } :get` ) ;
19+ var isPermittedGetCC = function ( id ) {
20+ var grant = AuthAPI . getCCGrant ( id ) ;
21+ return grant . isOwner ||
22+ AuthAPI . isPermitted ( "read:cohort-characterization" ) ||
23+ AuthAPI . isPermitted ( "write:cohort-characterization" ) ||
24+ AuthAPI . checkAccess ( "READ" , grant . accessTypes ) ;
2125 }
2226
23- function isPermittedUpdateCC ( id ) {
24- return AuthAPI . isPermitted ( `cohort-characterization:${ id } :put` ) ;
25- }
27+ var isPermittedUpdateCC = function ( id ) {
28+ var grant = AuthAPI . getCCGrant ( id ) ;
29+ return grant . isOwner ||
30+ AuthAPI . isPermitted ( "write:cohort-characterization" ) ||
31+ AuthAPI . checkAccess ( "WRITE" , grant . accessTypes ) ;
32+ }
2633
2734 function isPermittedDeleteCC ( id ) {
28- return AuthAPI . isPermitted ( `cohort-characterization: ${ id } :delete` ) ;
35+ return isPermittedUpdateCC ( id ) ;
2936 }
3037
3138 function isPermittedListGenerations ( id ) {
32- return AuthAPI . isPermitted ( `cohort-characterization: ${ id } :generation:get` ) ;
39+ return true ; // TODO: do we need to restrict listing generations?
3340 }
3441
3542 function isPermittedGenerate ( id , sourceKey ) {
36- return AuthAPI . isPermitted ( `cohort-characterization: ${ id } :generation: ${ sourceKey } :post` ) ;
43+ return AuthAPI . hasSourceAccess ( sourceKey , "WRITE" ) ; // TODO: Do we need read/write checks on the design?
3744 }
3845
3946 function isPermittedResults ( sourceKey ) {
40- return ( AuthAPI . isPermitted ( `cohort-characterization:generation:*:result:post` ) )
41- && AuthAPI . isPermitted ( `source:${ sourceKey } :access` ) ;
47+ return AuthAPI . hasSourceAccess ( sourceKey , "READ" ) ;
4248 }
4349
4450 function isPermittedExportGenerationDesign ( id ) {
45- return AuthAPI . isPermitted ( `cohort-characterization:generation: ${ id } :design:get` ) ;
51+ return isPermittedGetCC ( id ) ;
4652 }
4753
4854 function isPermittedExportCC ( id ) {
49- return AuthAPI . isPermitted ( `cohort-characterization: ${ id } :export:get` ) ;
55+ return isPermittedGetCC ( id ) ;
5056 }
5157
5258 function isPermittedCopyCC ( id ) {
53- return AuthAPI . isPermitted ( `cohort-characterization: ${ id } :post` ) ;
59+ return isPermittedGetCC ( id ) && isPermittedCreateCC ( ) ;
5460 }
5561
56- //
62+ // FA Permissions
5763
5864 function isPermittedGetFaList ( ) {
59- return AuthAPI . isPermitted ( `feature-analysis:get` ) ;
65+ return true ; // TODO: do we need perms to list assets?
6066 }
6167
6268 function isPermittedCreateFa ( ) {
63- return AuthAPI . isPermitted ( `feature-analysis:post ` ) ;
69+ return AuthAPI . isPermitted ( `create: feature-analysis` ) ;
6470 }
6571
6672 function isPermittedGetFa ( id ) {
67- return AuthAPI . isPermitted ( `feature-analysis:${ id } :get` ) ;
73+ var grant = AuthAPI . getFAGrant ( id ) ;
74+ return grant . isOwner ||
75+ AuthAPI . isPermitted ( "read:feature-analysis" ) ||
76+ AuthAPI . isPermitted ( "write:feature-analysis" ) ||
77+ AuthAPI . checkAccess ( "READ" , grant . accessTypes ) ;
6878 }
6979
7080 function isPermittedUpdateFa ( id ) {
71- return AuthAPI . isPermitted ( `feature-analysis:${ id } :put` ) ;
81+ var grant = AuthAPI . getFAGrant ( id ) ;
82+ return grant . isOwner ||
83+ AuthAPI . isPermitted ( "write:feature-analysis" ) ||
84+ AuthAPI . checkAccess ( "WRITE" , grant . accessTypes ) ;
7285 }
7386
7487 function isPermittedDeleteFa ( id ) {
75- return AuthAPI . isPermitted ( `feature-analysis: ${ id } :delete` ) ;
88+ return isPermittedUpdateFa ( id ) ;
7689 }
7790
7891 function isPermittedCopyFa ( id ) {
79- return AuthAPI . isPermitted ( `feature-analysis: ${ id } :copy:get` ) ;
92+ return isPermittedGetFa ( id ) && isPermittedCreateFa ( ) ;
8093 }
8194
8295 return {
0 commit comments