7
7
import com .gmi .nordborglab .browser .server .data .annotation .Tracks ;
8
8
import com .gmi .nordborglab .browser .server .data .annotation .TracksData ;
9
9
import com .gmi .nordborglab .browser .server .data .isatab .IsaTabExporter ;
10
+ import com .gmi .nordborglab .browser .server .domain .acl .PermissionPrincipal ;
10
11
import com .gmi .nordborglab .browser .server .domain .cdv .Study ;
11
12
import com .gmi .nordborglab .browser .server .domain .observation .Experiment ;
12
13
import com .gmi .nordborglab .browser .server .domain .phenotype .Trait ;
19
20
import com .gmi .nordborglab .browser .server .rest .PhenotypeData ;
20
21
import com .gmi .nordborglab .browser .server .rest .PhenotypeValue ;
21
22
import com .gmi .nordborglab .browser .server .rest .StudyGWASData ;
23
+ import com .gmi .nordborglab .browser .server .security .CustomAcl ;
24
+ import com .gmi .nordborglab .browser .server .security .CustomAccessControlEntry ;
25
+ import com .gmi .nordborglab .browser .server .security .CustomPermission ;
22
26
import com .gmi .nordborglab .browser .server .service .AnnotationDataService ;
23
27
import com .gmi .nordborglab .browser .server .service .CdvService ;
24
28
import com .gmi .nordborglab .browser .server .service .ExperimentService ;
25
29
import com .gmi .nordborglab .browser .server .service .GWASDataService ;
26
30
import com .gmi .nordborglab .browser .server .service .HelperService ;
27
31
import com .gmi .nordborglab .browser .server .service .MetaAnalysisService ;
32
+ import com .gmi .nordborglab .browser .server .service .PermissionService ;
28
33
import com .gmi .nordborglab .browser .server .service .TraitService ;
29
34
import com .gmi .nordborglab .browser .server .service .TraitUomService ;
30
35
import com .google .common .base .Function ;
57
62
import org .springframework .web .bind .annotation .RequestParam ;
58
63
import org .springframework .web .bind .annotation .ResponseBody ;
59
64
import org .springframework .web .bind .annotation .ResponseStatus ;
65
+ import org .springframework .security .acls .domain .GrantedAuthoritySid ;
60
66
import org .springframework .web .multipart .commons .CommonsMultipartFile ;
61
67
62
68
import javax .annotation .Nullable ;
@@ -97,6 +103,9 @@ public class RestProviderController {
97
103
@ Resource
98
104
private GWASDataService gwasDataService ;
99
105
106
+ @ Resource
107
+ private PermissionService permissionService ;
108
+
100
109
@ Resource
101
110
private TaxonomyRepository taxonomyRepository ;
102
111
@@ -109,6 +118,25 @@ public class RestProviderController {
109
118
110
119
private static final Logger logger = LoggerFactory .getLogger (RestProviderController .class );
111
120
121
+ @ RequestMapping (method = RequestMethod .POST , value = "/study/{id}/{isPublic}" )
122
+ public
123
+ @ ResponseBody
124
+ void makeStudyPublic (@ PathVariable ("id" ) Long id , @ PathVariable ("isPublic" ) Boolean isPublic ) {
125
+ Experiment experiment = experimentService .findExperiment (id );
126
+ CustomAcl customAcl = permissionService .getPermissions (experiment );
127
+ List <CustomAccessControlEntry > entries = customAcl .getEntries ();
128
+ final String annonymousUser = "ROLE_ANONYMOUS" ;
129
+ final PermissionPrincipal annonymousPrincipal = new PermissionPrincipal (annonymousUser , "" , false , false );
130
+ if (isPublic ) {
131
+ entries .add (new CustomAccessControlEntry (null ,CustomPermission .READ .getMask (),true ,annonymousPrincipal ));
132
+ }
133
+ else {
134
+ entries .removeIf (n -> (!n .getPrincipal ().getIsUser () && n .getPrincipal ().getId ().equals (annonymousUser )));
135
+ }
136
+ customAcl .setEntries (entries );
137
+ permissionService .updatePermissions (experiment , customAcl );
138
+ }
139
+
112
140
113
141
@ RequestMapping (method = RequestMethod .GET , value = "/study/{id}/pvalues" )
114
142
public
0 commit comments