1
0
forked from PGL/Clyde

backend add ManageResearcherProfile

This commit is contained in:
Bartha Maxime 2024-04-17 13:32:46 +02:00
parent 6116cbdaa4
commit e303048f7e
3 changed files with 20 additions and 3 deletions

View File

@ -1,5 +1,6 @@
package ovh.herisson.Clyde.EndPoints; package ovh.herisson.Clyde.EndPoints;
import lombok.AllArgsConstructor;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.CrossOrigin;
@ -8,6 +9,7 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import ovh.herisson.Clyde.Services.AuthenticatorService; import ovh.herisson.Clyde.Services.AuthenticatorService;
import ovh.herisson.Clyde.Services.ScientificPublications.ResearchesService;
import ovh.herisson.Clyde.Tables.Applications; import ovh.herisson.Clyde.Tables.Applications;
import ovh.herisson.Clyde.Tables.Role; import ovh.herisson.Clyde.Tables.Role;
import ovh.herisson.Clyde.Tables.User; import ovh.herisson.Clyde.Tables.User;
@ -20,7 +22,10 @@ public class ApplicationsController {
AuthenticatorService authServ; AuthenticatorService authServ;
public ApplicationsController(AuthenticatorService authServ){ ResearchesService researchesServ;
public ApplicationsController(AuthenticatorService authServ, ResearchesService researchesServ){
this.researchesServ = researchesServ;
this.authServ = authServ; this.authServ = authServ;
} }
@ -47,7 +52,6 @@ public class ApplicationsController {
//if unAuthed //if unAuthed
authorizedApps.add(Applications.Login); authorizedApps.add(Applications.Login);
authorizedApps.add(Applications.ResearcherProfile);
User user = authServ.getUserFromToken(token); User user = authServ.getUserFromToken(token);
if(user == null) if(user == null)
@ -71,6 +75,9 @@ public class ApplicationsController {
if (!authServ.isNotIn(new Role[]{Role.Secretary,Role.Admin},token)){ if (!authServ.isNotIn(new Role[]{Role.Secretary,Role.Admin},token)){
authorizedApps.add(Applications.UsersList);} authorizedApps.add(Applications.UsersList);}
if (researchesServ.getResearcherByUser(user) != null)
authorizedApps.add(Applications.ManageResearcherProfile);
return authorizedApps; return authorizedApps;
} }
} }

View File

@ -50,6 +50,16 @@ public class ResearcherController {
return new ResponseEntity<>(toReturnResearchersDTO, HttpStatus.OK); return new ResponseEntity<>(toReturnResearchersDTO, HttpStatus.OK);
} }
@GetMapping("/researcher")
public ResponseEntity<ResearcherDTO> getSelf(@RequestHeader("Authorization") String token){
Researcher self = researchesServ.getResearcherByUser(authServ.getUserFromToken(token));
if (self ==null) return new UnauthorizedResponse<>(null);
return new ResponseEntity<>(ResearcherDTO.construct(self), HttpStatus.OK);
}
@PostMapping("/researcher") @PostMapping("/researcher")
public ResponseEntity<ResearcherDTO> postResearcher(@RequestHeader("Authorization") String token, @RequestBody Researcher researcher){ public ResponseEntity<ResearcherDTO> postResearcher(@RequestHeader("Authorization") String token, @RequestBody Researcher researcher){
if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary}, token)){ if (authServ.isNotIn(new Role[]{Role.Admin,Role.Secretary}, token)){

View File

@ -7,7 +7,6 @@ public enum Applications {
// with any token // with any token
Profile, Profile,
// Students and higher authorization // Students and higher authorization
Msg, Msg,
Forum, Forum,
@ -21,5 +20,6 @@ public enum Applications {
Requests, Requests,
// profile of a researcher // profile of a researcher
ResearcherProfile, ResearcherProfile,
ManageResearcherProfile,
StudentsList StudentsList
} }