| 
						 
						
						
						
						 
					 | 
					 | 
					@ -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;
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					
					| 
						 
						
						
						
						 
					 | 
					 | 
					
 
 |