|
15 | 15 | import edu.harvard.iq.dataverse.api.auth.AuthRequired; |
16 | 16 | import edu.harvard.iq.dataverse.authorization.Permission; |
17 | 17 | import edu.harvard.iq.dataverse.engine.command.DataverseRequest; |
| 18 | +import edu.harvard.iq.dataverse.settings.FeatureFlags; |
18 | 19 | import edu.harvard.iq.dataverse.settings.JvmSettings; |
19 | 20 | import edu.harvard.iq.dataverse.util.json.JsonUtil; |
20 | 21 | import jakarta.ejb.EJB; |
@@ -50,7 +51,11 @@ public Response getDatasetLocalContexts(@Context ContainerRequestContext crc, @P |
50 | 51 | DataverseRequest req = createDataverseRequest(getRequestUser(crc)); |
51 | 52 |
|
52 | 53 | // Check if the user has edit dataset permission |
53 | | - if (!permissionService.userOn(req.getUser(), dataset).has(Permission.EditDataset)) { |
| 54 | + /* Feature flag to skip permission check |
| 55 | + * If you add the api-session-auth FeatureFlag, you can verify if the user has edit permissions |
| 56 | + * |
| 57 | + */ |
| 58 | + if (FeatureFlags.ADD_LOCAL_CONTEXTS_PERMISSION_CHECK.enabled() && !permissionService.userOn(req.getUser(), dataset).has(Permission.EditDataset)) { |
54 | 59 | return error(Response.Status.FORBIDDEN, |
55 | 60 | "You do not have permission to query LocalContexts about this dataset."); |
56 | 61 | } |
@@ -100,8 +105,7 @@ public Response getDatasetLocalContexts(@Context ContainerRequestContext crc, @P |
100 | 105 | @GET |
101 | 106 | @Path("/datasets/{id}/{projectId}") |
102 | 107 | @Produces(MediaType.APPLICATION_JSON) |
103 | | - public Response searchLocalContexts(@Context ContainerRequestContext crc, @PathParam("id") String datasetId, |
104 | | - @PathParam("projectId") String projectId) { |
| 108 | + public Response searchLocalContexts(@PathParam("id") String datasetId, @PathParam("projectId") String projectId) { |
105 | 109 | try { |
106 | 110 | Dataset dataset = findDatasetOrDie(datasetId); |
107 | 111 | String localContextsUrl = JvmSettings.LOCALCONTEXTS_URL.lookupOptional().orElse(null); |
|
0 commit comments