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; | ||||
|  | ||||
|  | ||||
| import jakarta.servlet.http.HttpServletRequest; | ||||
| import org.springframework.http.HttpStatus; | ||||
|  | ||||
| import org.springframework.http.MediaType; | ||||
| import org.springframework.http.ResponseEntity; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
| 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.User; | ||||
|  | ||||
| import java.io.IOException; | ||||
| import java.security.Key; | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
| @ -43,7 +40,7 @@ public class UserController { | ||||
|     @PostMapping("/user") | ||||
|     public ResponseEntity<String> postUser(@RequestBody User user,@RequestHeader("Authorization") String authorization){ | ||||
|  | ||||
|         if (!isSecretaryOrAdmin(authorization)) | ||||
|         if (authServ.isNotSecretaryOrAdmin(authorization)) | ||||
|             return new UnauthorizedResponse<>(null); | ||||
|  | ||||
|         userService.save(user); | ||||
| @ -53,7 +50,7 @@ public class UserController { | ||||
|     @GetMapping("/users") | ||||
|     public ResponseEntity<Iterable<HashMap<String,Object>>> getAllUsers(@RequestHeader("Authorization") String authorization){ | ||||
|  | ||||
|         if (!isSecretaryOrAdmin(authorization)) | ||||
|         if (authServ.isNotSecretaryOrAdmin(authorization)) | ||||
|             return new UnauthorizedResponse<>(null); | ||||
|  | ||||
|         Iterable<User> users = userService.getAll(); | ||||
| @ -78,6 +75,39 @@ public class UserController { | ||||
|         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 | ||||
|          * @param user the user to return | ||||
| @ -85,7 +115,6 @@ public class UserController { | ||||
|          */ | ||||
|     private HashMap<String,Object> userWithoutPassword(User user){ | ||||
|         HashMap<String,Object> toReturn = new HashMap<>(); | ||||
|  | ||||
|         toReturn.put("regNo",user.getRegNo()); | ||||
|         toReturn.put("firstName",user.getFirstName()); | ||||
|         toReturn.put("lastName",user.getLastName()); | ||||
| @ -93,18 +122,7 @@ public class UserController { | ||||
|         toReturn.put("country",user.getCountry()); | ||||
|         toReturn.put("address",user.getAddress()); | ||||
|         toReturn.put("role",user.getRole()); | ||||
|  | ||||
|         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") | ||||
|     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> getAllStudents(){return userRepo.findAllStudents();} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user