Merge remote-tracking branch 'origin/master' into Leo/Backend/UnitTest
# Conflicts: # backend/src/main/java/ovh/herisson/Clyde/EndPoints/UserController.java
This commit is contained in:
		| @ -1,10 +1,7 @@ | |||||||
| package ovh.herisson.Clyde.EndPoints; | package ovh.herisson.Clyde.EndPoints; | ||||||
|  |  | ||||||
|  |  | ||||||
| import jakarta.servlet.http.HttpServletRequest; |  | ||||||
| import org.springframework.http.HttpStatus; | import org.springframework.http.HttpStatus; | ||||||
|  |  | ||||||
| import org.springframework.http.MediaType; |  | ||||||
| import org.springframework.http.ResponseEntity; | import org.springframework.http.ResponseEntity; | ||||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||||
| import ovh.herisson.Clyde.Responses.UnauthorizedResponse; | import ovh.herisson.Clyde.Responses.UnauthorizedResponse; | ||||||
| @ -13,7 +10,7 @@ import ovh.herisson.Clyde.Services.UserService; | |||||||
| import ovh.herisson.Clyde.Tables.Role; | import ovh.herisson.Clyde.Tables.Role; | ||||||
| import ovh.herisson.Clyde.Tables.User; | import ovh.herisson.Clyde.Tables.User; | ||||||
|  |  | ||||||
| import java.io.IOException; | import java.security.Key; | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.HashMap; | import java.util.HashMap; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| @ -43,7 +40,7 @@ public class UserController { | |||||||
|     @PostMapping("/user") |     @PostMapping("/user") | ||||||
|     public ResponseEntity<String> postUser(@RequestBody User user,@RequestHeader("Authorization") String authorization){ |     public ResponseEntity<String> postUser(@RequestBody User user,@RequestHeader("Authorization") String authorization){ | ||||||
|  |  | ||||||
|         if (!isSecretaryOrAdmin(authorization)) |         if (authServ.isNotSecretaryOrAdmin(authorization)) | ||||||
|             return new UnauthorizedResponse<>(null); |             return new UnauthorizedResponse<>(null); | ||||||
|  |  | ||||||
|         userService.save(user); |         userService.save(user); | ||||||
| @ -53,7 +50,7 @@ public class UserController { | |||||||
|     @GetMapping("/users") |     @GetMapping("/users") | ||||||
|     public ResponseEntity<Iterable<HashMap<String,Object>>> getAllUsers(@RequestHeader("Authorization") String authorization){ |     public ResponseEntity<Iterable<HashMap<String,Object>>> getAllUsers(@RequestHeader("Authorization") String authorization){ | ||||||
|  |  | ||||||
|         if (!isSecretaryOrAdmin(authorization)) |         if (authServ.isNotSecretaryOrAdmin(authorization)) | ||||||
|             return new UnauthorizedResponse<>(null); |             return new UnauthorizedResponse<>(null); | ||||||
|  |  | ||||||
|         Iterable<User> users = userService.getAll(); |         Iterable<User> users = userService.getAll(); | ||||||
| @ -78,6 +75,39 @@ public class UserController { | |||||||
|         return new ResponseEntity<>("data modified", HttpStatus.OK); |         return new ResponseEntity<>("data modified", HttpStatus.OK); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @GetMapping("/teachers") | ||||||
|  |     public ResponseEntity<Iterable<HashMap<String,Object>>> getAllTeachers(@RequestHeader("Authorization") String token){ | ||||||
|  |         if (authServ.getUserFromToken(token) == null) | ||||||
|  |             return new UnauthorizedResponse<>(null); | ||||||
|  |         Iterable<User> teachers = userService.getAllTeachers(); | ||||||
|  |         ArrayList<HashMap<String, Object>> withoutPassword = new ArrayList<>(); | ||||||
|  |  | ||||||
|  |         for (User t: teachers){ | ||||||
|  |             withoutPassword.add(userWithoutPassword(t)); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return new ResponseEntity<>(withoutPassword, HttpStatus.OK); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     @GetMapping("/students") | ||||||
|  |     public ResponseEntity<Iterable<HashMap<String,Object>>> getAllStudent(@RequestHeader("Authorization") String token){ | ||||||
|  |         if (authServ.getUserFromToken(token) == null) | ||||||
|  |             return new UnauthorizedResponse<>(null); | ||||||
|  |  | ||||||
|  |         Iterable<User> teachers = userService.getAllStudents(); | ||||||
|  |         ArrayList<HashMap<String, Object>> withoutPassword = new ArrayList<>(); | ||||||
|  |  | ||||||
|  |         for (User t: teachers){ | ||||||
|  |             withoutPassword.add(userWithoutPassword(t)); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return new ResponseEntity<>(withoutPassword, HttpStatus.OK); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|         /** return user's data except password |         /** return user's data except password | ||||||
|          * @param user the user to return |          * @param user the user to return | ||||||
| @ -85,7 +115,6 @@ public class UserController { | |||||||
|          */ |          */ | ||||||
|     private HashMap<String,Object> userWithoutPassword(User user){ |     private HashMap<String,Object> userWithoutPassword(User user){ | ||||||
|         HashMap<String,Object> toReturn = new HashMap<>(); |         HashMap<String,Object> toReturn = new HashMap<>(); | ||||||
|  |  | ||||||
|         toReturn.put("regNo",user.getRegNo()); |         toReturn.put("regNo",user.getRegNo()); | ||||||
|         toReturn.put("firstName",user.getFirstName()); |         toReturn.put("firstName",user.getFirstName()); | ||||||
|         toReturn.put("lastName",user.getLastName()); |         toReturn.put("lastName",user.getLastName()); | ||||||
| @ -93,18 +122,7 @@ public class UserController { | |||||||
|         toReturn.put("country",user.getCountry()); |         toReturn.put("country",user.getCountry()); | ||||||
|         toReturn.put("address",user.getAddress()); |         toReturn.put("address",user.getAddress()); | ||||||
|         toReturn.put("role",user.getRole()); |         toReturn.put("role",user.getRole()); | ||||||
|  |  | ||||||
|         return toReturn; |         return toReturn; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private boolean isSecretaryOrAdmin(String authorization){ |  | ||||||
|         if (authorization ==null) |  | ||||||
|             return false; |  | ||||||
|  |  | ||||||
|         User poster = authServ.getUserFromToken(authorization); |  | ||||||
|         if (poster == null) return false; |  | ||||||
|  |  | ||||||
|         return poster.getRole() == Role.Secretary || poster.getRole() == Role.Admin; |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|  |  | ||||||
|  | |||||||
| @ -19,4 +19,7 @@ public interface UserRepository extends CrudRepository<User, Long> { | |||||||
|     @Query("select u from User u where u.role = ovh.herisson.Clyde.Tables.Role.Teacher") |     @Query("select u from User u where u.role = ovh.herisson.Clyde.Tables.Role.Teacher") | ||||||
|     Iterable<User> findAllTeachers(); |     Iterable<User> findAllTeachers(); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     @Query("select u from User u where u.role = ovh.herisson.Clyde.Tables.Role.Student") | ||||||
|  |     Iterable<User> findAllStudents(); | ||||||
| } | } | ||||||
| @ -106,4 +106,6 @@ public class UserService { | |||||||
|  |  | ||||||
|  |  | ||||||
|     public Iterable<User> getAllTeachers (){return userRepo.findAllTeachers();} |     public Iterable<User> getAllTeachers (){return userRepo.findAllTeachers();} | ||||||
|  |  | ||||||
|  |     public Iterable<User> getAllStudents(){return userRepo.findAllStudents();} | ||||||
| } | } | ||||||
		Reference in New Issue
	
	Block a user