From 6b58c852a2ad951e5725571e1eced694945fa546 Mon Sep 17 00:00:00 2001 From: Bartha Maxime <231026@umons.ac.be> Date: Thu, 7 Mar 2024 17:02:19 +0100 Subject: [PATCH] cleaning --- .../Clyde/EndPoints/MockController.java | 55 +++++++++++++++++++ .../Clyde/EndPoints/UserController.java | 23 +++----- .../herisson/Clyde/Services/TokenService.java | 18 +----- .../herisson/Clyde/Services/UserService.java | 21 ------- 4 files changed, 66 insertions(+), 51 deletions(-) create mode 100644 backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java new file mode 100644 index 0000000..a01c7ec --- /dev/null +++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java @@ -0,0 +1,55 @@ +package ovh.herisson.Clyde.EndPoints; + +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RestController; +import ovh.herisson.Clyde.Repositories.TokenRepository; +import ovh.herisson.Clyde.Repositories.UserRepository; +import ovh.herisson.Clyde.Tables.Role; +import ovh.herisson.Clyde.Tables.Token; +import ovh.herisson.Clyde.Tables.User; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; + +@RestController +@CrossOrigin(origins = "http://localhost:5173") + +public class MockController { + private final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + + public final UserRepository userRepo; + public final TokenRepository tokenRepo; + + + public MockController(UserRepository userRepo, TokenRepository tokenRepo){ + this.tokenRepo = tokenRepo; + this.userRepo = userRepo; + } + + /** Saves an example of each user type by : + * email : FooRole@FooRole.com, password : FooRole and token : FooRole + * For example the admin as "admin@admin.com" as email and "admin" as both password and token + * They all have silly names + */ + + @PostMapping("/generateMock") + public void postMock(){ + + User herobrine = new User("brine","hero","admin@admin.com","in your WalLs","ShadowsLand",new Date(0), Role.Admin,passwordEncoder.encode("admin")); + User joe = new User("Mama","Joe","student@student.com","roundabout","DaWarudo",new Date(0), Role.Student,passwordEncoder.encode("student")); + User meh = new User("Inspiration","lackOf","secretary@secretary.com","a Box","the street",new Date(0), Role.Teacher,passwordEncoder.encode("secretary")); + User joke = new User("CthemBalls","Lemme","teacher@teacher.com","lab","faculty",new Date(0), Role.Teacher,passwordEncoder.encode("teacher")); + + + ArrayList users = new ArrayList(Arrays.asList(herobrine,joe,meh,joke)); + + userRepo.saveAll(users); + + for (User user: users){ + tokenRepo.save(new Token(user,user.getPassword())); + } + } +} diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/UserController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/UserController.java index b282ee1..ba54926 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/UserController.java +++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/UserController.java @@ -6,7 +6,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import ovh.herisson.Clyde.Responses.UnauthorizedResponse; -import ovh.herisson.Clyde.Services.TokenService; +import ovh.herisson.Clyde.Services.AuthenticatorService; import ovh.herisson.Clyde.Services.UserService; import ovh.herisson.Clyde.Tables.User; @@ -16,24 +16,19 @@ import ovh.herisson.Clyde.Tables.User; public class UserController { private final UserService userService; - - private final TokenService tokenService; - public UserController(UserService userService, TokenService tokenService){ + private final AuthenticatorService authServ; + public UserController(UserService userService, AuthenticatorService authServ){ this.userService = userService; - this.tokenService = tokenService; // todo find a way to be clearer - - tokenService.postMockToken(userService.postMockUsers());// todo find a better place to put that + this.authServ = authServ; } @GetMapping("/user") - public ResponseEntity getUsers(@RequestHeader("Authorization") String token){ - - User user = tokenService.getUserFromToken(token); - + public ResponseEntity getUser(@RequestHeader("Authorization") String token){ + User user = authServ.getUserFromToken(token); if (user == null) { - return new UnauthorizedResponse(null); + return new UnauthorizedResponse<>(null); } - return new ResponseEntity(user, HttpStatus.OK); + return new ResponseEntity<>(user, HttpStatus.OK); } @PostMapping("/user") @@ -43,7 +38,7 @@ public class UserController { } @GetMapping("/users") - public Iterable getAllUsers(){//TODO ne l'accepter que si c'est le secrétariat + public Iterable getAllUsers(){ return userService.getAll(); } diff --git a/backend/src/main/java/ovh/herisson/Clyde/Services/TokenService.java b/backend/src/main/java/ovh/herisson/Clyde/Services/TokenService.java index 5057007..e619fd8 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Services/TokenService.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Services/TokenService.java @@ -27,25 +27,11 @@ public class TokenService { return token; } - - //todo potentiellement return bool pour savoir si token bien add - public void saveToken(String token, User user, Date expirationDate){ - tokenRepo.save(new Token(user,token)); - } - public User getUserFromToken(String token){ return tokenRepo.getByToken(token).getUser(); } - /** Take the list of mock user to save them in the Token DB - * With token being the password of the user (also his role) - * @param users an - */ - public void postMockToken(Iterable users){ - for (User user: users){ - tokenRepo.save(new Token(user,user.getPassword())); - } + public void saveToken(String token, User user, Date expirationDate){// todo faire qlq chose de l'expDate + tokenRepo.save(new Token(user,token)); } - - } \ No newline at end of file diff --git a/backend/src/main/java/ovh/herisson/Clyde/Services/UserService.java b/backend/src/main/java/ovh/herisson/Clyde/Services/UserService.java index 0482c28..f16c68f 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Services/UserService.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Services/UserService.java @@ -39,27 +39,6 @@ public class UserService { return passwordEncoder.matches(tryingPassword, user.getPassword()); } - /** Saves an example of : - * an Admin with id 1, email : admin@admin.com and password: admin - * a Student with id 2, email: student@student.com and password: student (no cursus yet) - * a Secretary with id 3, email: secretary@secretary.com and password: secretary - * a Teacher (same) - * and they all have silly names (hihi) - */ - public Iterable postMockUsers(){ - User herobrine = new User("brine","hero","admin@admin.com","in your WalLs","ShadowsLand",new Date(0), Role.Admin,passwordEncoder.encode("admin")); - User Joe = new User("Mama","Joe","student@student.com","roundabout","DaWarudo",new Date(0), Role.Student,passwordEncoder.encode("student")); - User Meh = new User("Inspiration","lackOf","secretary@secretary.com","a Box","the street",new Date(0), Role.Teacher,passwordEncoder.encode("secretary")); - User joke = new User("CthemBalls","Lemme","teacher@teacher.com","lab","faculty",new Date(0), Role.Teacher,passwordEncoder.encode("teacher")); - - userRepo.save(herobrine); - userRepo.save(Joe); - userRepo.save(Meh); - userRepo.save(joke); - - return new ArrayList(Arrays.asList(herobrine,Joe,Meh,joke)); - } - public void save(User user){ userRepo.save(user); }