backend add ManageResearcherProfile
This commit is contained in:
parent
6116cbdaa4
commit
e303048f7e
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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)){
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user