Skip to content

Commit 8d5906a

Browse files
authored
Merge pull request #259 from marcberger/feat/add_generic_role
Feat/add a role for generic export batch
2 parents 631217c + b4c045d commit 8d5906a

10 files changed

Lines changed: 21 additions & 7 deletions

File tree

src/main/java/fr/insee/genesis/configuration/auth/security/ApplicationRole.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ public enum ApplicationRole {
66
USER_PLATINE,
77
COLLECT_PLATFORM,
88
SCHEDULER,
9-
READER
9+
READER,
10+
USER_BATCH_GENERIC
1011
}
1112

src/main/java/fr/insee/genesis/configuration/auth/security/RoleConfiguration.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ public class RoleConfiguration {
3434
@Value("#{'${app.role.scheduler.claims}'.split(',')}")
3535
private List<String> schedulerClaims;
3636

37+
@Value("#{'${app.role.batch-generic.claims}'.split(',')}")
38+
private List<String> batchGenericClaims;
39+
40+
3741
public Map<String, List<String>> getRolesByClaim() {
3842
return rolesByClaim;
3943
}
@@ -52,6 +56,7 @@ static RoleHierarchy roleHierarchy() {
5256
.role(ApplicationRole.ADMIN.toString()).implies(ApplicationRole.USER_PLATINE.toString())
5357
.role(ApplicationRole.ADMIN.toString()).implies(ApplicationRole.COLLECT_PLATFORM.toString())
5458
.role(ApplicationRole.ADMIN.toString()).implies(ApplicationRole.SCHEDULER.toString())
59+
.role(ApplicationRole.ADMIN.toString()).implies(ApplicationRole.USER_BATCH_GENERIC.toString())
5560
.role(ApplicationRole.USER_KRAFTWERK.toString()).implies(ApplicationRole.READER.toString())
5661
.role(ApplicationRole.USER_PLATINE.toString()).implies(ApplicationRole.READER.toString())
5762
.build();
@@ -100,6 +105,11 @@ public void initialization() {
100105
.computeIfAbsent(claim, k -> new ArrayList<>())
101106
.add(String.valueOf(ApplicationRole.SCHEDULER)));
102107

108+
//Add claims for the USER_BATCH_GENERIC role
109+
batchGenericClaims.forEach(claim -> rolesByClaim
110+
.computeIfAbsent(claim, k -> new ArrayList<>())
111+
.add(String.valueOf(ApplicationRole.USER_BATCH_GENERIC)));
112+
103113
log.info("Roles configuration : {}", rolesByClaim);
104114
}
105115

src/main/java/fr/insee/genesis/controller/rest/responses/RawResponseController.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,17 +191,18 @@ public ResponseEntity<Map<String, List<String>>> getProcessedDataIdsSinceHours(
191191
Map<String, List<String>> result = lunaticJsonRawDataApiPort.findProcessedIdsgroupedByQuestionnaireSince(LocalDateTime.now().minusHours(hours).minusMinutes(10));
192192
return ResponseEntity.ok(result);
193193
}
194-
@Operation(summary = "Get lunatic JSON data from one campaign in Genesis Database, filtered by optional start and end dates")
194+
195+
@Operation(summary = "Get lunatic JSON data from one campaign in Genesis Database, filtered by start and end dates")
195196
@GetMapping(path = "/lunatic-json/{campaignId}")
196-
@PreAuthorize("hasRole('USER_KRAFTWERK')")
197+
@PreAuthorize("hasRole('USER_BATCH_GENERIC')")
197198
public ResponseEntity<PagedModel<LunaticJsonRawDataModel>> getRawResponsesFromJsonBody(
198199
@PathVariable String campaignId,
199200
@RequestParam(value = "startDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) Instant startDate,
200201
@RequestParam(value = "endDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) Instant endDate,
201202
@RequestParam(value = "page", defaultValue = "0") int page,
202203
@RequestParam(value = "size", defaultValue = "1000") int size
203204
) {
204-
log.info("Try to read raw JSONs for campaign {}, with startDate={} and endDate={}", campaignId, startDate, endDate);
205+
log.info("Try to read raw JSONs for campaign {}, with startDate={} and endDate={} - page={} - size={}", campaignId, startDate, endDate,page,size);
205206
Pageable pageable = PageRequest.of(page, size);
206207
Page<LunaticJsonRawDataModel> rawResponses = lunaticJsonRawDataApiPort.findRawDataByCampaignIdAndDate(campaignId, startDate, endDate, pageable);
207208
log.info("rawResponses=" + rawResponses.getContent().size());

src/main/java/fr/insee/genesis/infrastructure/adapter/LunaticJsonRawDataMongoAdapter.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import fr.insee.genesis.Constants;
44
import fr.insee.genesis.domain.model.surveyunit.GroupedInterrogation;
5-
import fr.insee.genesis.domain.model.surveyunit.InterrogationId;
65
import fr.insee.genesis.domain.model.surveyunit.Mode;
76
import fr.insee.genesis.domain.model.surveyunit.rawdata.LunaticJsonRawDataModel;
87
import fr.insee.genesis.domain.ports.spi.LunaticJsonRawDataPersistencePort;

src/main/resources/application-dev.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ app.role.user-platine.claims=***
2323
app.role.reader.claims=***
2424
app.role.collect-platform.claims=***
2525
app.role.scheduler.claims=***
26+
app.role.batch-generic.claims=***
2627

2728
#--------------------------------------------------------------------------
2829
# Survey quality tool

src/main/resources/application-preprod.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ app.role.user-platine.claims=***
2323
app.role.reader.claims=***
2424
app.role.collect-platform.claims=***
2525
app.role.scheduler.claims=***
26-
26+
app.role.batch-generic.claims=***
2727
#--------------------------------------------------------------------------
2828
# Survey quality tool
2929
#--------------------------------------------------------------------------

src/main/resources/application-prod.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ app.role.user-platine.claims=***
2323
app.role.reader.claims=***
2424
app.role.collect-platform.claims=***
2525
app.role.scheduler.claims=***
26+
app.role.batch-generic.claims=***
2627

2728
#--------------------------------------------------------------------------
2829
# Survey quality tool

src/main/resources/application-test-cucumber.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ app.role.user-platine.claims=utilisateur_Platine
88
app.role.reader.claims=lecteur_traiter
99
app.role.collect-platform.claims=protools
1010
app.role.scheduler.claims=scheduler_traiter
11+
app.role.batch-generic.claims=utilisateur_batch_generic
1112

1213
logging.file.name = /logs/genesis-api.log
1314

src/main/resources/application-test.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ app.role.user-platine.claims=utilisateur_Platine
88
app.role.reader.claims=lecteur_traiter
99
app.role.collect-platform.claims=protools
1010
app.role.scheduler.claims=scheduler_traiter
11+
app.role.batch-generic.claims=utilisateur_batch_generic
1112

1213
logging.file.name = /logs/genesis-api.log
1314

src/test/java/fr/insee/genesis/stubs/LunaticJsonRawDataPersistanceStub.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package fr.insee.genesis.stubs;
22

33
import fr.insee.genesis.domain.model.surveyunit.GroupedInterrogation;
4-
import fr.insee.genesis.domain.model.surveyunit.InterrogationId;
54
import fr.insee.genesis.domain.model.surveyunit.Mode;
65
import fr.insee.genesis.domain.model.surveyunit.rawdata.LunaticJsonRawDataModel;
76
import fr.insee.genesis.domain.ports.spi.LunaticJsonRawDataPersistencePort;

0 commit comments

Comments
 (0)