added the GET /teachers (#130)
had to fix the mock and the UserController isAdminOrSecretary Reviewed-on: PGL/Clyde#130 Reviewed-by: Wal <karpinskiwal@gmail.com> Reviewed-by: Debucquoy Anthony <d.tonitch@gmail.com> Co-authored-by: Bartha Maxime <231026@umons.ac.be> Co-committed-by: Bartha Maxime <231026@umons.ac.be>
This commit is contained in:
		@ -49,7 +49,7 @@ public class MockController {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        User herobrine = new User("brine","hero","admin@admin.com","in your WalLs","ShadowsLand",new Date(0), null,Role.Admin,passwordEncoder.encode("admin"));
 | 
					        User herobrine = new User("brine","hero","admin@admin.com","in your WalLs","ShadowsLand",new Date(0), null,Role.Admin,passwordEncoder.encode("admin"));
 | 
				
			||||||
        User joe = new User("Mama","Joe","student@student.com","roundabout","DaWarudo",new Date(0), null,Role.Student,passwordEncoder.encode("student"));
 | 
					        User joe = new User("Mama","Joe","student@student.com","roundabout","DaWarudo",new Date(0), null,Role.Student,passwordEncoder.encode("student"));
 | 
				
			||||||
        User meh = new User("Inspiration","lackOf","secretary@secretary.com","a Box","the street",new Date(0), null,Role.Teacher,passwordEncoder.encode("secretary"));
 | 
					        User meh = new User("Inspiration","lackOf","secretary@secretary.com","a Box","the street",new Date(0), null,Role.Secretary,passwordEncoder.encode("secretary"));
 | 
				
			||||||
        User joke = new User("CthemBalls","Lemme","teacher@teacher.com","lab","faculty",new Date(0), null,Role.Teacher,passwordEncoder.encode("teacher"));
 | 
					        User joke = new User("CthemBalls","Lemme","teacher@teacher.com","lab","faculty",new Date(0), null,Role.Teacher,passwordEncoder.encode("teacher"));
 | 
				
			||||||
        User lena = new User("Louille","Lena","inscriptionService@InscriptionService.com","no","yes",new Date(0), null,Role.Teacher,passwordEncoder.encode("inscriptionService"));
 | 
					        User lena = new User("Louille","Lena","inscriptionService@InscriptionService.com","no","yes",new Date(0), null,Role.Teacher,passwordEncoder.encode("inscriptionService"));
 | 
				
			||||||
        mockUsers = new ArrayList<>(Arrays.asList(herobrine,joe,meh,joke));
 | 
					        mockUsers = new ArrayList<>(Arrays.asList(herobrine,joe,meh,joke));
 | 
				
			||||||
 | 
				
			|||||||
@ -9,6 +9,8 @@ import ovh.herisson.Clyde.Services.AuthenticatorService;
 | 
				
			|||||||
import ovh.herisson.Clyde.Services.UserService;
 | 
					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.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;
 | 
				
			||||||
@ -72,6 +74,23 @@ 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);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /** return user's data except password
 | 
					        /** return user's data except password
 | 
				
			||||||
         * @param user the user to return
 | 
					         * @param user the user to return
 | 
				
			||||||
         * @return all the user data without the password
 | 
					         * @return all the user data without the password
 | 
				
			||||||
 | 
				
			|||||||
@ -15,4 +15,8 @@ public interface UserRepository extends CrudRepository<User, Long> {
 | 
				
			|||||||
    /**
 | 
					    /**
 | 
				
			||||||
    @Query(value = "select a.* from Users a ",nativeQuery = true)
 | 
					    @Query(value = "select a.* from Users a ",nativeQuery = true)
 | 
				
			||||||
    Iterable<User> findAllUsers();**/
 | 
					    Iterable<User> findAllUsers();**/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Query("select u from User u where u.role = ovh.herisson.Clyde.Tables.Role.Teacher")
 | 
				
			||||||
 | 
					    Iterable<User> findAllTeachers();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -103,4 +103,8 @@ public class UserService {
 | 
				
			|||||||
    public Iterable<User> getAll(){
 | 
					    public Iterable<User> getAll(){
 | 
				
			||||||
        return userRepo.findAll();
 | 
					        return userRepo.findAll();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Iterable<User> getAllTeachers (){return userRepo.findAllTeachers();}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user