diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/config/SecurityConfig.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/config/SecurityConfig.java
index 3d5be79..f6d10d9 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/config/SecurityConfig.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/config/SecurityConfig.java
@@ -4,12 +4,17 @@
import lombok.AllArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler;
+import org.springframework.security.access.expression.method.MethodSecurityExpressionHandler;
+import org.springframework.security.access.hierarchicalroles.RoleHierarchy;
+import org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl;
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.web.SecurityFilterChain;
+import org.springframework.security.web.access.AccessDeniedHandlerImpl;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
@Configuration
@@ -31,4 +36,18 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
.addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class)
.build();
}
+
+ @Bean
+ public RoleHierarchy roleHierarchy() {
+ RoleHierarchyImpl roleHierarchy = new RoleHierarchyImpl();
+ roleHierarchy.setHierarchy("ROLE_ADMIN > ROLE_WORKER \n ROLE_WORKER > ROLE_INTERN");
+ return roleHierarchy;
+ }
+
+ @Bean
+ public MethodSecurityExpressionHandler methodSecurityExpressionHandler(RoleHierarchy roleHierarchy) {
+ DefaultMethodSecurityExpressionHandler expressionHandler = new DefaultMethodSecurityExpressionHandler();
+ expressionHandler.setRoleHierarchy(roleHierarchy);
+ return expressionHandler;
+ }
}
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/ExaminationController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/ExaminationController.java
index 0bcf3bb..b5f3cc8 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/ExaminationController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/ExaminationController.java
@@ -6,6 +6,7 @@
import lombok.AllArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -35,11 +36,13 @@ public ResponseEntity> getExaminationForSample(@PathVariabl
return new ResponseEntity<>(examinationDtos, HttpStatus.OK);
}
+ @PreAuthorize("hasRole('WORKER')")
@PutMapping("/update")
public ResponseEntity insertExaminationResults(@RequestBody ExaminationDto updatedExaminationDto) {
return edit(updatedExaminationDto, examinationService);
}
+ @PreAuthorize("hasRole('WORKER')")
@DeleteMapping("/delete/{examinationId}")
public ResponseEntity deleteExamination(@PathVariable final Long examinationId) {
return delete(ExaminationDto.builder().id(examinationId).build(), examinationService);
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/MethodController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/MethodController.java
index 679c189..4b3da48 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/MethodController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/MethodController.java
@@ -3,6 +3,7 @@
import agh.edu.pl.slpbackend.service.MethodService;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -16,6 +17,7 @@ public class MethodController {
private final MethodService methodService;
+ @PreAuthorize("hasRole('WORKER')")
@PostMapping("/import")
public ResponseEntity importMethods(@RequestParam("file") MultipartFile file) {
try (InputStream inputStream = file.getInputStream()) {
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/ReportDataController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/ReportDataController.java
index 8824459..dbe3106 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/ReportDataController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/ReportDataController.java
@@ -6,6 +6,7 @@
import lombok.AllArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -23,16 +24,19 @@ public ResponseEntity> list() {
return ResponseEntity.ok(reportDataService.selectAll());
}
+ @PreAuthorize("hasRole('WORKER')")
@PostMapping("/save")
public ResponseEntity add(@RequestBody final ReportDataDto reportData) {
return add(reportData, reportDataService);
}
+ @PreAuthorize("hasRole('WORKER')")
@DeleteMapping("/{reportDataId}")
public ResponseEntity delete(@PathVariable final Long reportDataId) {
return delete(ReportDataDto.builder().id(reportDataId).build(), reportDataService);
}
+ @PreAuthorize("hasRole('WORKER')")
@PutMapping("/")
public ResponseEntity update(@RequestBody ReportDataDto reportDataDto) {
return edit(reportDataDto, reportDataService);
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/SampleController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/SampleController.java
index 7eef6e9..1bc906e 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/SampleController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/SampleController.java
@@ -9,6 +9,7 @@
import agh.edu.pl.slpbackend.service.SampleService;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -36,21 +37,25 @@ public ResponseEntity getOne(@PathVariable final Long sampleId) {
return ResponseEntity.ok(sampleService.selectOne(sampleId));
}
+ @PreAuthorize("hasRole('WORKER')")
@PutMapping("status/{sampleId}/{status}")
public ResponseEntity updateStatus(@PathVariable final Long sampleId, @PathVariable final String status) {
return ResponseEntity.ok(sampleService.updateStatus(sampleId, ProgressStatus.convertEnum(status)));
}
+ @PreAuthorize("hasRole('WORKER')")
@PostMapping("/save")
public ResponseEntity add(@RequestBody SampleDto sampleDto) {
return add(sampleDto, sampleService);
}
+ @PreAuthorize("hasRole('WORKER')")
@DeleteMapping("/{sampleId}")
public ResponseEntity delete(@PathVariable final Long sampleId) {
return delete(SampleDto.builder().id(sampleId).build(), sampleService);
}
+ @PreAuthorize("hasRole('WORKER')")
@PutMapping("/{sampleId}")
public ResponseEntity update(@PathVariable final Long sampleId, @RequestBody SampleDto sampleDto) {
return edit(sampleDto, sampleService);
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/AssortmentController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/AssortmentController.java
index 5c2649f..a8c01ca 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/AssortmentController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/AssortmentController.java
@@ -6,6 +6,7 @@
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -23,16 +24,19 @@ public ResponseEntity> list() {
return ResponseEntity.ok(assortmentService.selectAll());
}
+ @PreAuthorize("hasRole('WORKER')")
@PostMapping("/save")
public ResponseEntity add(@RequestBody @Valid AssortmentDto assortmentDto) {
return add(assortmentDto, assortmentService);
}
+ @PreAuthorize("hasRole('WORKER')")
@PutMapping("/update")
public ResponseEntity edit(@RequestBody @Valid AssortmentDto assortmentDto) {
return edit(assortmentDto, assortmentService);
}
+ @PreAuthorize("hasRole('WORKER')")
@DeleteMapping("/delete/{id}")
public ResponseEntity delete(@PathVariable Long id) {
return delete(AssortmentDto.builder().id(id).build(), assortmentService);
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ClientController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ClientController.java
index bb4a4ff..3c76493 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ClientController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ClientController.java
@@ -6,6 +6,7 @@
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -23,16 +24,19 @@ public ResponseEntity> list() {
return ResponseEntity.ok(clientService.selectAll());
}
+ @PreAuthorize("hasRole('WORKER')")
@PostMapping("/save")
public ResponseEntity add(@RequestBody @Valid ClientDto clientDto) {
return add(clientDto, clientService);
}
+ @PreAuthorize("hasRole('WORKER')")
@PutMapping("/update")
public ResponseEntity edit(@RequestBody @Valid ClientDto clientDto) {
return edit(clientDto, clientService);
}
+ @PreAuthorize("hasRole('WORKER')")
@DeleteMapping("/delete/{id}")
public ResponseEntity delete(@PathVariable Long id) {
return delete(ClientDto.builder().id(id).build(), clientService);
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/CodeController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/CodeController.java
index 229a3de..4f7c2e9 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/CodeController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/CodeController.java
@@ -6,6 +6,7 @@
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -23,16 +24,19 @@ public ResponseEntity> list() {
return ResponseEntity.ok(codeService.selectAll());
}
+ @PreAuthorize("hasRole('WORKER')")
@PostMapping("/save")
public ResponseEntity add(@RequestBody @Valid CodeDto codeDto) {
return add(codeDto, codeService);
}
+ @PreAuthorize("hasRole('WORKER')")
@PutMapping("/update")
public ResponseEntity edit(@RequestBody @Valid CodeDto codeDto) {
return edit(codeDto, codeService);
}
+ @PreAuthorize("hasRole('WORKER')")
@DeleteMapping("/delete/{id}")
public ResponseEntity delete(@PathVariable String id) {
return delete(CodeDto.builder().id(id).build(), codeService);
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/IndicationController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/IndicationController.java
index 1f9afcf..4883a79 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/IndicationController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/IndicationController.java
@@ -6,6 +6,7 @@
import lombok.AllArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -36,16 +37,19 @@ public ResponseEntity> getIndicationsForSample(@PathVariable
return new ResponseEntity<>(indicationDtos, HttpStatus.OK);
}
+ @PreAuthorize("hasRole('WORKER')")
@PostMapping("/save")
public ResponseEntity add(@RequestBody IndicationDto indicationDto) {
return add(indicationDto, indicationService);
}
+ @PreAuthorize("hasRole('WORKER')")
@PutMapping("/update")
public ResponseEntity edit(@RequestBody IndicationDto indicationDto) {
return edit(indicationDto, indicationService);
}
+ @PreAuthorize("hasRole('WORKER')")
@DeleteMapping("/delete/{id}")
public ResponseEntity delete(@PathVariable Long id) {
return delete(IndicationDto.builder().id(id).build(), indicationService);
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/InspectionController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/InspectionController.java
index 58ff0b8..60866db 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/InspectionController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/InspectionController.java
@@ -6,6 +6,7 @@
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -23,16 +24,19 @@ public ResponseEntity> list() {
return ResponseEntity.ok(inspectionService.selectAll());
}
+ @PreAuthorize("hasRole('WORKER')")
@PostMapping("/save")
public ResponseEntity add(@RequestBody @Valid InspectionDto inspectionDto) {
return add(inspectionDto, inspectionService);
}
+ @PreAuthorize("hasRole('WORKER')")
@PutMapping("/update")
public ResponseEntity edit(@RequestBody @Valid InspectionDto inspectionDto) {
return edit(inspectionDto, inspectionService);
}
+ @PreAuthorize("hasRole('WORKER')")
@DeleteMapping("/delete/{id}")
public ResponseEntity delete(@PathVariable Long id) {
return delete(InspectionDto.builder().id(id).build(), inspectionService);
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ProductGroupController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ProductGroupController.java
index 9d8a872..0d5b484 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ProductGroupController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/ProductGroupController.java
@@ -7,6 +7,7 @@
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -24,16 +25,19 @@ public ResponseEntity> list() {
return ResponseEntity.ok(productGroupService.selectAll());
}
+ @PreAuthorize("hasRole('WORKER')")
@PostMapping("/save")
public ResponseEntity add(@RequestBody @Valid ProductGroupSaveDto productGroupSaveDto) {
return add(productGroupSaveDto, productGroupService);
}
+ @PreAuthorize("hasRole('WORKER')")
@PutMapping("/update")
public ResponseEntity edit(@RequestBody @Valid ProductGroupSaveDto productGroupSaveDto) {
return edit(productGroupSaveDto, productGroupService);
}
+ @PreAuthorize("hasRole('WORKER')")
@DeleteMapping("/delete/{id}")
public ResponseEntity delete(@PathVariable Long id) {
return delete(ProductGroupDto.builder().id(id).build(), productGroupService);
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/SamplingStandardController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/SamplingStandardController.java
index 7bca498..2e5b8cc 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/SamplingStandardController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/controller/dictionary/SamplingStandardController.java
@@ -6,6 +6,7 @@
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -23,17 +24,20 @@ public ResponseEntity> list() {
return ResponseEntity.ok(samplingStandardService.selectAll());
}
+ @PreAuthorize("hasRole('WORKER')")
@PostMapping("/save")
public ResponseEntity add(@RequestBody @Valid SamplingStandardDto samplingStandardDto) {
return add(samplingStandardDto, samplingStandardService);
}
+ @PreAuthorize("hasRole('WORKER')")
@PutMapping("/update")
public ResponseEntity edit(@RequestBody @Valid SamplingStandardDto samplingStandardDto) {
return edit(samplingStandardDto, samplingStandardService);
}
+ @PreAuthorize("hasRole('WORKER')")
@DeleteMapping("/delete/{id}")
public ResponseEntity delete(@PathVariable Long id) {
return delete(SamplingStandardDto.builder().id(id).build(), samplingStandardService);
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/reports/kzwa/KZWAReportGeneratorController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/reports/kzwa/KZWAReportGeneratorController.java
index b99b4ab..8d02e37 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/reports/kzwa/KZWAReportGeneratorController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/reports/kzwa/KZWAReportGeneratorController.java
@@ -4,6 +4,7 @@
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@RestController
@@ -14,6 +15,7 @@ public class KZWAReportGeneratorController {
private final KZWAReportGeneratorService kzwaReportGeneratorService;
+ @PreAuthorize("hasRole('WORKER')")
@GetMapping("/kzwa-report/{sampleId}")
public ResponseEntity generate(@PathVariable final Long sampleId) {
InputStreamResource resource = kzwaReportGeneratorService.generateReport(sampleId);
diff --git a/slp-backend/src/main/java/agh/edu/pl/slpbackend/reports/samplereport/SampleReportGeneratorController.java b/slp-backend/src/main/java/agh/edu/pl/slpbackend/reports/samplereport/SampleReportGeneratorController.java
index 27c64c4..3bf6fa5 100644
--- a/slp-backend/src/main/java/agh/edu/pl/slpbackend/reports/samplereport/SampleReportGeneratorController.java
+++ b/slp-backend/src/main/java/agh/edu/pl/slpbackend/reports/samplereport/SampleReportGeneratorController.java
@@ -4,6 +4,7 @@
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@RestController
@@ -14,6 +15,7 @@ public class SampleReportGeneratorController {
private final SampleReportGeneratorService sampleReportGeneratorService;
+ @PreAuthorize("hasRole('WORKER')")
@GetMapping("/sample-report/{sampleId}/{reportType}")
public ResponseEntity generate(@PathVariable final Long sampleId, @PathVariable final String reportType) {
InputStreamResource resource = sampleReportGeneratorService.generateReport(sampleId, reportType);
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/AssortmentTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/AssortmentTest.java
index 7bd0512..44f02fb 100644
--- a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/AssortmentTest.java
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/AssortmentTest.java
@@ -9,6 +9,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.HttpStatus;
+import org.springframework.security.test.context.support.WithMockUser;
import static org.assertj.core.api.Assertions.assertThat;
@@ -34,6 +35,7 @@ void get_all() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void add() {
var count = repository.count();
@@ -47,6 +49,7 @@ void add() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void update() {
var assortment = repository.findAll().get(0);
var request = toDto(assortment);
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ClientTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ClientTest.java
index a72f734..b9e1245 100644
--- a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ClientTest.java
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ClientTest.java
@@ -9,6 +9,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.HttpStatus;
+import org.springframework.security.test.context.support.WithMockUser;
import static org.assertj.core.api.Assertions.assertThat;
@@ -34,6 +35,7 @@ void get_all() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void add() {
var count = repository.count();
@@ -47,6 +49,7 @@ void add() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void update() {
var client = repository.findAll().get(0);
var request = toDto(client);
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/CodeTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/CodeTest.java
index 55829b7..198039e 100644
--- a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/CodeTest.java
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/CodeTest.java
@@ -9,6 +9,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.HttpStatus;
+import org.springframework.security.test.context.support.WithMockUser;
import static org.assertj.core.api.Assertions.assertThat;
@@ -34,6 +35,7 @@ void get_all() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void add() {
var code = CodeDto.builder()
.id("test")
@@ -45,6 +47,7 @@ void add() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void update() {
var code = repository.findAll().get(0);
var request = toDto(code);
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ExaminationTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ExaminationTest.java
index 0b9c677..87ae494 100644
--- a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ExaminationTest.java
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ExaminationTest.java
@@ -10,6 +10,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.HttpStatus;
+import org.springframework.security.test.context.support.WithMockUser;
import static org.assertj.core.api.Assertions.assertThat;
@@ -41,6 +42,7 @@ void add() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void update() {
var examination = repository.findAll().get(0);
var request = toDto(examination);
@@ -54,6 +56,7 @@ void update() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void delete() {
var examination = repository.findAll().get(0);
var response = controller.deleteExamination(examination.getId());
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/IndicationTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/IndicationTest.java
index 51bb0dc..ae3a109 100644
--- a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/IndicationTest.java
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/IndicationTest.java
@@ -11,6 +11,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.HttpStatus;
+import org.springframework.security.test.context.support.WithMockUser;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
@@ -40,6 +41,7 @@ void get_all() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void add() {
var count = repository.count();
@@ -53,6 +55,7 @@ void add() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void update() {
var indication = repository.findAll().get(0);
var request = toDto(indication);
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/InspectionTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/InspectionTest.java
index f0d45f6..8d64e58 100644
--- a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/InspectionTest.java
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/InspectionTest.java
@@ -9,6 +9,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.HttpStatus;
+import org.springframework.security.test.context.support.WithMockUser;
import static org.assertj.core.api.Assertions.assertThat;
@@ -34,6 +35,7 @@ void get_all() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void add() {
var count = repository.count();
@@ -47,6 +49,7 @@ void add() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void update() {
var inspection = repository.findAll().get(0);
var request = toDto(inspection);
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ProductGroupTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ProductGroupTest.java
index 52cd782..1a4075e 100644
--- a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ProductGroupTest.java
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ProductGroupTest.java
@@ -9,6 +9,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.HttpStatus;
+import org.springframework.security.test.context.support.WithMockUser;
import java.util.List;
@@ -36,6 +37,7 @@ void get_all() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void add() {
var count = repository.count();
@@ -50,6 +52,7 @@ void add() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void update() {
var group = repository.findAll().get(0);
String name = "test";
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ReportDataTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ReportDataTest.java
index 91d0b18..c6cf201 100644
--- a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ReportDataTest.java
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ReportDataTest.java
@@ -11,6 +11,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.HttpStatus;
+import org.springframework.security.test.context.support.WithMockUser;
import static org.assertj.core.api.Assertions.assertThat;
@@ -39,6 +40,7 @@ void get_all() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void add() {
var count = repository.count();
@@ -53,6 +55,7 @@ void add() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void update() {
var reportData = repository.findAll().get(0);
var request = toDto(reportData);
@@ -66,6 +69,7 @@ void update() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void delete() {
var reportData = repository.findAll().get(0);
var response = controller.delete(reportData.getId());
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ReportTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ReportTest.java
index b4f3128..2b43c40 100644
--- a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ReportTest.java
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/ReportTest.java
@@ -7,6 +7,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.HttpStatus;
+import org.springframework.security.test.context.support.WithMockUser;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
@@ -21,6 +22,7 @@ public class ReportTest {
private SampleReportGeneratorController sampleReportController;
@Test
+ @WithMockUser(roles = "WORKER")
void generate_KZWA_report() {
var response = KZWAReportController.generate(1L);
@@ -28,18 +30,21 @@ void generate_KZWA_report() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void generate_KZWA_report_fails_when_unknown_sample_id() {
assertThatThrownBy(() -> KZWAReportController.generate(34895L))
.isInstanceOf(SampleNotFoundException.class);
}
@Test
+ @WithMockUser(roles = "WORKER")
void generate_sample_report_fails_when_unknown_sample_id() {
assertThatThrownBy(() -> sampleReportController.generate(34895L, ""))
.isInstanceOf(SampleNotFoundException.class);
}
@Test
+ @WithMockUser(roles = "WORKER")
void generate_F4_report0() {
var response = sampleReportController.generate(1L, "F4");
@@ -47,6 +52,7 @@ void generate_F4_report0() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void generate_F5_report0() {
var response = sampleReportController.generate(1L, "F5");
@@ -54,6 +60,7 @@ void generate_F5_report0() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void generate_F4_report1() {
var response = sampleReportController.generate(4L, "F4");
@@ -61,6 +68,7 @@ void generate_F4_report1() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void generate_F4_report2() {
var response = sampleReportController.generate(5L, "F4");
@@ -68,6 +76,7 @@ void generate_F4_report2() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void generate_F4_report3() {
var response = sampleReportController.generate(6L, "F4");
@@ -75,6 +84,7 @@ void generate_F4_report3() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void generate_F4_report4() {
var response = sampleReportController.generate(7L, "F4");
@@ -82,6 +92,7 @@ void generate_F4_report4() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void generate_F5_report1() {
var response = sampleReportController.generate(4L, "F5");
@@ -89,6 +100,7 @@ void generate_F5_report1() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void generate_F5_report2() {
var response = sampleReportController.generate(5L, "F5");
@@ -96,6 +108,7 @@ void generate_F5_report2() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void generate_F5_report3() {
var response = sampleReportController.generate(6L, "F5");
@@ -103,6 +116,7 @@ void generate_F5_report3() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void generate_F5_report4() {
var response = sampleReportController.generate(7L, "F5");
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/SampleTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/SampleTest.java
index 2d2c63d..97a8e7c 100644
--- a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/SampleTest.java
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/SampleTest.java
@@ -13,6 +13,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.HttpStatus;
+import org.springframework.security.test.context.support.WithMockUser;
import java.util.List;
@@ -40,6 +41,7 @@ void get_all() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void add() {
var count = repository.count();
@@ -54,6 +56,7 @@ void add() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void update() {
var sample = repository.findAll().get(0);
var request = toDto(sample);
@@ -84,6 +87,7 @@ void get_one() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void update_status() {
var sample = repository.findAll().get(0);
var response = controller.updateStatus(sample.getId(), "IN_PROGRESS");
@@ -98,6 +102,7 @@ void update_status() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void delete() {
var sample = repository.findAll().get(0);
var response = controller.delete(sample.getId());
diff --git a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/SamplingStandardTest.java b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/SamplingStandardTest.java
index a3e6700..22ad07b 100644
--- a/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/SamplingStandardTest.java
+++ b/slp-backend/src/test/java/agh/edu/pl/slpbackend/integration/SamplingStandardTest.java
@@ -9,6 +9,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.HttpStatus;
+import org.springframework.security.test.context.support.WithMockUser;
import static org.assertj.core.api.Assertions.assertThat;
@@ -34,6 +35,7 @@ void get_all() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void add() {
var count = repository.count();
@@ -47,6 +49,7 @@ void add() {
}
@Test
+ @WithMockUser(roles = "WORKER")
void update() {
var samplingStandard = repository.findAll().get(0);
var request = toDto(samplingStandard);
diff --git a/slp-frontend/src/App.tsx b/slp-frontend/src/App.tsx
index 19c2be2..5150e5b 100644
--- a/slp-frontend/src/App.tsx
+++ b/slp-frontend/src/App.tsx
@@ -11,7 +11,7 @@ import Sidebar from "./components/Sidebar";
import AlertComponent from './components/AlertComponent';
import AlertsContext from './contexts/AlertsContext';
-import PrivateRoute from './components/PrivateRoute';
+import {AdminRoute, WorkerRoute} from './components/PrivateRoute';
import CheckIsLogin from './components/CheckIsLogin';
import ProtocolReportDataForm from "./components/ProtocolReportDataForm";
import LoginForm from "./components/LoginForm";
@@ -57,9 +57,9 @@ function App() {
}/>
- }/>
+ }/>
}/>
- }/>
+ }/>
}
@@ -87,24 +87,24 @@ function App() {
+
-
+
}
/>
}
+ element={}
/>
}/>
- }/>
- }/>
+ }/>
+ }/>
+
-
+
}
/>
diff --git a/slp-frontend/src/components/ExaminationForm.tsx b/slp-frontend/src/components/ExaminationForm.tsx
index 1010a80..c36b67c 100644
--- a/slp-frontend/src/components/ExaminationForm.tsx
+++ b/slp-frontend/src/components/ExaminationForm.tsx
@@ -146,7 +146,6 @@ const ExaminationForm: FC<{}> = () => {
}
try {
- console.log("cipa");
console.log(values);
let response = await updateExamination(values);
console.log(response);
@@ -307,7 +306,7 @@ const ExaminationForm: FC<{}> = () => {
navigate(`/sample/manageExaminations/${sampleId}`)}>Anuluj
- Zapisz
+ {localStorage.getItem('role') !== 'INTERN' && Zapisz}
diff --git a/slp-frontend/src/components/ExaminationsList.tsx b/slp-frontend/src/components/ExaminationsList.tsx
index 649fdd3..baf128a 100644
--- a/slp-frontend/src/components/ExaminationsList.tsx
+++ b/slp-frontend/src/components/ExaminationsList.tsx
@@ -105,6 +105,9 @@ const ExaminationsList: FC<{}> = () => {
setCheckedStates(prevState => {
const newState = {...prevState};
if (newState[indicationId]) {
+ if (localStorage.getItem('role') === 'INTERN') {
+ return prevState;
+ }
const confirmed = window.confirm("Czy na pewno? Badanie zostanie usunięte!");
if (!confirmed) {
return prevState;
@@ -173,12 +176,12 @@ const ExaminationsList: FC<{}> = () => {
)}
))
))}
- {
e.stopPropagation();
generateKzwa(Number(sampleId));
}
- }>Generuj KZWA
+ }>Generuj KZWA}
navigate(`/sample/${sampleId}`)}>Powrót
diff --git a/slp-frontend/src/components/PrivateRoute.tsx b/slp-frontend/src/components/PrivateRoute.tsx
index d775fe4..c6ed98f 100644
--- a/slp-frontend/src/components/PrivateRoute.tsx
+++ b/slp-frontend/src/components/PrivateRoute.tsx
@@ -1,7 +1,9 @@
import NoPermitionPage from "../pages/NoPermitionPage";
-const PrivateRoute = ({children}:any):any => {
+export const AdminRoute = ({children}:any):any => {
return (localStorage.getItem('role') === 'ADMIN' ? <>{children}>:)
}
-export default PrivateRoute;
\ No newline at end of file
+export const WorkerRoute = ({children}:any):any => {
+ return (localStorage.getItem('role') !== 'INTERN' ? <>{children}>:)
+}
\ No newline at end of file
diff --git a/slp-frontend/src/components/SampleForm.tsx b/slp-frontend/src/components/SampleForm.tsx
index 8a5ccc3..ba0403a 100644
--- a/slp-frontend/src/components/SampleForm.tsx
+++ b/slp-frontend/src/components/SampleForm.tsx
@@ -140,7 +140,7 @@ const SampleForm: FC<{}> = () => {
}
} catch (err) {
console.log(err)
- setAlertDetails({isAlert: true, message: "Wystąpił bład spróbuj ponownie później", type: "error"})
+ setAlertDetails({isAlert: true, message: "Wystąpił błąd, spróbuj ponownie później", type: "error"})
checkResponse(err);
}
}
diff --git a/slp-frontend/src/components/SampleList.tsx b/slp-frontend/src/components/SampleList.tsx
index 6ec78d8..4c0e8e9 100644
--- a/slp-frontend/src/components/SampleList.tsx
+++ b/slp-frontend/src/components/SampleList.tsx
@@ -119,7 +119,7 @@ const SampleList: React.FC = ({selectedFilters}) => {
{!isLoading && numberOfPages > 0 && }
-
{
+ {localStorage.getItem('role') !== 'INTERN' && {
e.stopPropagation();
const encoded = encodeURIComponent(JSON.stringify(selectedSamplesIds));
navigate(`/protocolReportData/${encoded}`);
}
}>
Wprowadź dodatkowe dane
-
+ }
diff --git a/slp-frontend/src/components/Sidebar.tsx b/slp-frontend/src/components/Sidebar.tsx
index b23f791..8d82c92 100644
--- a/slp-frontend/src/components/Sidebar.tsx
+++ b/slp-frontend/src/components/Sidebar.tsx
@@ -70,37 +70,37 @@ const Sidebar: React.FC<{}> = () => {
Lista próbek
+ {localStorage.getItem('role') !== 'INTERN' && (
+
+ navigate("/addSample")}
+ >
+ Dodaj próbkę
+
+
+ )}
navigate("/addSample")}
- >
- Dodaj próbkę
-
-
-
- navigate('/dictionary')}
>
Edytuj dane
+ {localStorage.getItem('role') !== 'INTERN' && (
+
+ navigate('/importMethods')}
+ >
+ Wczytaj metody
+
+
+ )}
navigate('/importMethods')}
- >
- Wczytaj metody
-
-
-
- handleBackup()}
>
Archiwizuj dane
@@ -110,7 +110,6 @@ const Sidebar: React.FC<{}> = () => {
navigate('/register')}
>
Zarejestruj użytkownika
@@ -120,7 +119,6 @@ const Sidebar: React.FC<{}> = () => {
navigate('/changePassword')}
>
Zmień hasło
@@ -129,7 +127,6 @@ const Sidebar: React.FC<{}> = () => {
{localStorage.getItem('role') === 'ADMIN' && (
navigate('/admin-panel')}
>
Lista użytkowników
@@ -138,7 +135,6 @@ const Sidebar: React.FC<{}> = () => {
logout(setAlertDetails)}
>
Wyloguj
diff --git a/slp-frontend/src/components/UsersList.tsx b/slp-frontend/src/components/UsersList.tsx
index eac7024..2407da4 100644
--- a/slp-frontend/src/components/UsersList.tsx
+++ b/slp-frontend/src/components/UsersList.tsx
@@ -6,6 +6,7 @@ import {Dropdown, Modal} from "react-bootstrap";
import ConfirmPopup from "./ui/ConfirmPopup";
import {AlertContext} from "../contexts/AlertsContext";
import ChangePasswordFormAdminForm from "./ChangePasswordForAdminForm";
+import { RoleEnumDesc } from "../utils/enums";
const UserList = () => {
const [userList, setUserList] = useState([])
@@ -80,7 +81,7 @@ const UserList = () => {
| {user.email} |
{user.name} |
- {user.role === "WORKER" ? "Pracownik" : "Admin"} |
+ {RoleEnumDesc.find(role => role.value === user.role)?.label} |
))}
diff --git a/slp-frontend/src/components/dictionary/assortment/AssortmentDict.tsx b/slp-frontend/src/components/dictionary/assortment/AssortmentDict.tsx
index 5dcd223..5074a06 100644
--- a/slp-frontend/src/components/dictionary/assortment/AssortmentDict.tsx
+++ b/slp-frontend/src/components/dictionary/assortment/AssortmentDict.tsx
@@ -125,11 +125,12 @@ const AssortmentDict = () => {
+ {localStorage.getItem('role') !== 'INTERN' &&
Dodaj nowy
-
+ }
columns={columns}
diff --git a/slp-frontend/src/components/dictionary/client/ClientDict.tsx b/slp-frontend/src/components/dictionary/client/ClientDict.tsx
index 2d60dfe..b7cbc0b 100644
--- a/slp-frontend/src/components/dictionary/client/ClientDict.tsx
+++ b/slp-frontend/src/components/dictionary/client/ClientDict.tsx
@@ -120,11 +120,12 @@ const ClientDict = () => {
Klienci
+ {localStorage.getItem('role') !== 'INTERN' &&
Dodaj nowy
-
+
}
columns={columns}
diff --git a/slp-frontend/src/components/dictionary/code/CodeDict.tsx b/slp-frontend/src/components/dictionary/code/CodeDict.tsx
index f279c50..c56219c 100644
--- a/slp-frontend/src/components/dictionary/code/CodeDict.tsx
+++ b/slp-frontend/src/components/dictionary/code/CodeDict.tsx
@@ -106,12 +106,13 @@ const CodeDict = () => {
return (
Kody próbki
-
+
+ {localStorage.getItem('role') !== 'INTERN' &&
Dodaj nowy
-
+
}
columns={columns}
diff --git a/slp-frontend/src/components/dictionary/indication/IndicationDict.tsx b/slp-frontend/src/components/dictionary/indication/IndicationDict.tsx
index 27ff5a2..af1e50f 100644
--- a/slp-frontend/src/components/dictionary/indication/IndicationDict.tsx
+++ b/slp-frontend/src/components/dictionary/indication/IndicationDict.tsx
@@ -105,11 +105,12 @@ const IndicationDict = () => {
Test dict
+ {localStorage.getItem('role') !== 'INTERN' &&
Dodaj nowy
-
+
}
columns={columns}
diff --git a/slp-frontend/src/components/dictionary/inspection/InspectionDict.tsx b/slp-frontend/src/components/dictionary/inspection/InspectionDict.tsx
index bd04607..89269d1 100644
--- a/slp-frontend/src/components/dictionary/inspection/InspectionDict.tsx
+++ b/slp-frontend/src/components/dictionary/inspection/InspectionDict.tsx
@@ -108,11 +108,12 @@ const InspectionDict = () => {
Rodzaje kontroli
+ {localStorage.getItem('role') !== 'INTERN' &&
Dodaj nowy
-
+
}
columns={columns}
diff --git a/slp-frontend/src/components/dictionary/product-group/ProductGroupDict.tsx b/slp-frontend/src/components/dictionary/product-group/ProductGroupDict.tsx
index 60c74e8..7ed3b68 100644
--- a/slp-frontend/src/components/dictionary/product-group/ProductGroupDict.tsx
+++ b/slp-frontend/src/components/dictionary/product-group/ProductGroupDict.tsx
@@ -108,11 +108,12 @@ const ProductGroupDict = () => {
Grupy produktów
+ {localStorage.getItem('role') !== 'INTERN' &&
Dodaj nowy
-
+
}
columns={columns}
diff --git a/slp-frontend/src/components/dictionary/sampling-standard/SamplingStandardDict.tsx b/slp-frontend/src/components/dictionary/sampling-standard/SamplingStandardDict.tsx
index 597b858..923ce57 100644
--- a/slp-frontend/src/components/dictionary/sampling-standard/SamplingStandardDict.tsx
+++ b/slp-frontend/src/components/dictionary/sampling-standard/SamplingStandardDict.tsx
@@ -107,11 +107,12 @@ const SamplingStandardDict = () => {
Normy pobrania próbki
+ {localStorage.getItem('role') !== 'INTERN' &&
Dodaj nowy
-
+
}
columns={columns}
diff --git a/slp-frontend/src/components/ui/DictionaryTable.tsx b/slp-frontend/src/components/ui/DictionaryTable.tsx
index 3ab8fe6..43b07e0 100644
--- a/slp-frontend/src/components/ui/DictionaryTable.tsx
+++ b/slp-frontend/src/components/ui/DictionaryTable.tsx
@@ -131,8 +131,8 @@ const DictionaryTable = ({
onView(item)}>Szczegóły
- onEdit(item)}>Edycja
- onDelete(item)}>Usuń
+ {localStorage.getItem('role') !== 'INTERN' && onEdit(item)}>Edycja}
+ {localStorage.getItem('role') !== 'INTERN' && onDelete(item)}>Usuń}
diff --git a/slp-frontend/src/pages/SingleSamplePage.tsx b/slp-frontend/src/pages/SingleSamplePage.tsx
index 62b4a54..abce0a3 100644
--- a/slp-frontend/src/pages/SingleSamplePage.tsx
+++ b/slp-frontend/src/pages/SingleSamplePage.tsx
@@ -149,23 +149,23 @@ const SingleSamplePage = () => {
- {
+ {localStorage.getItem('role') !== 'INTERN' && {
navigate(`/sample/addReportData/${sampleId}`)
- }}>Dodaj dodatkowe informacje
+ }}>Dodaj dodatkowe informacje}
{
navigate(`/sample/manageExaminations/${sampleId}`)
}}>Zarządzaj badaniami
- {
+ {localStorage.getItem('role') !== 'INTERN' && {
navigate(`/sample/edit/${sampleId}`)
- }}>Edytuj próbkę
-
+ }}>Edytuj próbkę}
+ {localStorage.getItem('role') !== 'INTERN' &&
{
generateReport(Number(sampleId), "F4")}>Raport F-4
generateReport(Number(sampleId), "F5")}>Raport F-5
-
- {
+ }
+ {localStorage.getItem('role') !== 'INTERN' && {
setIsPopupOpen(true);
- }}>Usuń próbkę
+ }}>Usuń próbkę}
([
- [ProgressStateEnum.TODO, 'Do zrobienia'],
[ProgressStateEnum.IN_PROGRESS, 'W trakcie'],
[ProgressStateEnum.DONE, 'Gotowe'],
]);
export enum RoleEnum {
+ ADMIN = "ADMIN",
WORKER = "WORKER",
- ADMIN = "ADMIN"
+ INTERN = "INTERN"
}
export const RoleEnumDesc: Role[] = [
+ {value: RoleEnum.ADMIN, label: "Administrator"},
{value: RoleEnum.WORKER, label: "Pracownik"},
- {value: RoleEnum.ADMIN, label: "Admin"}
+ {value: RoleEnum.INTERN, label: "Praktykant"}
]
\ No newline at end of file