diff --git a/src/main/java/fr/eni/enchere/bll/UserService.java b/src/main/java/fr/eni/enchere/bll/UserService.java index 1ea8f02..ac4a39a 100644 --- a/src/main/java/fr/eni/enchere/bll/UserService.java +++ b/src/main/java/fr/eni/enchere/bll/UserService.java @@ -14,4 +14,7 @@ public interface UserService { void setCredit(float credit, int id); void deleteUtilisateur(int id); void disableUtilisateur(int id); + void enableUtilisateur(int id); + void onAdminUtilisateur(int id); + void offAdminUtilisateur(int id); } diff --git a/src/main/java/fr/eni/enchere/bll/UserServiceImpl.java b/src/main/java/fr/eni/enchere/bll/UserServiceImpl.java index 35a229f..4bae2df 100644 --- a/src/main/java/fr/eni/enchere/bll/UserServiceImpl.java +++ b/src/main/java/fr/eni/enchere/bll/UserServiceImpl.java @@ -59,4 +59,19 @@ public class UserServiceImpl implements UserService { public void disableUtilisateur(int id) { userRepository.disable(id); } + + @Override + public void enableUtilisateur(int id) { + userRepository.enable(id); + } + + @Override + public void onAdminUtilisateur(int id) { + userRepository.onAdmin(id); + } + + @Override + public void offAdminUtilisateur(int id) { + userRepository.offAdmin(id); + } } diff --git a/src/main/java/fr/eni/enchere/config/WebConfig.java b/src/main/java/fr/eni/enchere/config/WebConfig.java index e2cf93d..74388f7 100644 --- a/src/main/java/fr/eni/enchere/config/WebConfig.java +++ b/src/main/java/fr/eni/enchere/config/WebConfig.java @@ -4,6 +4,9 @@ import com.google.i18n.phonenumbers.PhoneNumberUtil; import org.apache.commons.validator.routines.EmailValidator; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; import org.springframework.web.context.request.RequestContextListener; import org.springframework.web.filter.RequestContextFilter; import org.springframework.web.servlet.LocaleResolver; @@ -53,4 +56,5 @@ public class WebConfig { public RequestContextFilter requestContextFilter() { return new RequestContextFilter(); } + } \ No newline at end of file diff --git a/src/main/java/fr/eni/enchere/controllers/AdminController.java b/src/main/java/fr/eni/enchere/controllers/AdminController.java index aab7d14..53bf3e8 100644 --- a/src/main/java/fr/eni/enchere/controllers/AdminController.java +++ b/src/main/java/fr/eni/enchere/controllers/AdminController.java @@ -6,6 +6,7 @@ import fr.eni.enchere.bo.Article; import fr.eni.enchere.bo.Categorie; import fr.eni.enchere.bo.Retrait; import fr.eni.enchere.bo.UserProfil; +import fr.eni.enchere.dal.UserRepositoryImpl; import jakarta.servlet.http.HttpServletRequest; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; @@ -17,12 +18,14 @@ import org.springframework.web.bind.annotation.*; @RequestMapping("/admin") public class AdminController { + private final UserRepositoryImpl userRepositoryImpl; private UserService userService; private CategorieService categorieService; - public AdminController(UserService userService, CategorieService categorieService) { + public AdminController(UserService userService, CategorieService categorieService, UserRepositoryImpl userRepositoryImpl) { this.userService = userService; this.categorieService = categorieService; + this.userRepositoryImpl = userRepositoryImpl; } @GetMapping @@ -67,8 +70,22 @@ public class AdminController { } @PostMapping("/disabled") - public String disabledUser(@RequestParam("userDisabled") int id) { - userService.disableUtilisateur(id); + public String disabledUser(@RequestParam("userDisabled") int id, @RequestParam("isDis") boolean isDis) { + if (isDis){ + userService.enableUtilisateur(id); + }else { + userService.disableUtilisateur(id); + } + return "redirect:/admin"; + } + + @PostMapping("/administrateur") + public String administrateurUser(@RequestParam("userAdmin") int id, @RequestParam("isAdmin") boolean isAdmin) { + if (isAdmin){ + userService.offAdminUtilisateur(id); + }else { + userService.onAdminUtilisateur(id); + } return "redirect:/admin"; } diff --git a/src/main/java/fr/eni/enchere/dal/UserRepository.java b/src/main/java/fr/eni/enchere/dal/UserRepository.java index ce76f1e..b226700 100644 --- a/src/main/java/fr/eni/enchere/dal/UserRepository.java +++ b/src/main/java/fr/eni/enchere/dal/UserRepository.java @@ -14,4 +14,7 @@ public interface UserRepository { void updateCredit(float credit, int id); void delete(int id); void disable(int id); + void enable(int id); + void onAdmin(int id); + void offAdmin(int id); } diff --git a/src/main/java/fr/eni/enchere/dal/UserRepositoryImpl.java b/src/main/java/fr/eni/enchere/dal/UserRepositoryImpl.java index a37e7fd..33ce019 100644 --- a/src/main/java/fr/eni/enchere/dal/UserRepositoryImpl.java +++ b/src/main/java/fr/eni/enchere/dal/UserRepositoryImpl.java @@ -48,6 +48,7 @@ public class UserRepositoryImpl implements UserRepository { userProfile.setPassword(rs.getString("mot_de_passe")); userProfile.setCredit(rs.getFloat("credit")); userProfile.setAdmin(rs.getBoolean("administrateur")); + userProfile.setDisabled(rs.getBoolean("isDisabled")); return userProfile; } } @@ -152,4 +153,22 @@ public class UserRepositoryImpl implements UserRepository { jdbcTemplate.update(sql, id); } -} + @Override + public void enable(int id) { + String sql = "UPDATE UTILISATEURS SET isDisabled = 0 WHERE no_utilisateur = ?"; + jdbcTemplate.update(sql, id); + } + + @Override + public void onAdmin(int id) { + String sql = "UPDATE UTILISATEURS SET administrateur = 1 WHERE no_utilisateur = ?"; + jdbcTemplate.update(sql, id); + } + + @Override + public void offAdmin(int id) { + String sql = "UPDATE UTILISATEURS SET administrateur = 0 WHERE no_utilisateur = ?"; + jdbcTemplate.update(sql, id); + } + +} \ No newline at end of file diff --git a/src/main/resources/templates/admin.html b/src/main/resources/templates/admin.html index cf22666..d43feae 100644 --- a/src/main/resources/templates/admin.html +++ b/src/main/resources/templates/admin.html @@ -55,17 +55,37 @@ - -
- - -
-
- - -
- + + + + + + + +
+ + + +
+ + +
+ + + +
+
+ + +
+
+ + + +
+ +