Commit f8ff1584c823163d9c009e1a0f7565405ed19ae8
1 parent
14f89f89
ajout de l'interface pour ajouter des groupes
Showing
4 changed files
with
83 additions
and
51 deletions
Show diff stats
PFE06/src/main/java/com/PFE/ServerManager/MainController.java
1 | package com.PFE.ServerManager; | 1 | package com.PFE.ServerManager; |
2 | 2 | ||
3 | import org.springframework.beans.factory.annotation.Autowired; | 3 | import org.springframework.beans.factory.annotation.Autowired; |
4 | +import org.springframework.data.repository.query.Param; | ||
4 | import org.springframework.http.HttpStatus; | 5 | import org.springframework.http.HttpStatus; |
5 | import org.springframework.stereotype.Controller; | 6 | import org.springframework.stereotype.Controller; |
6 | import org.springframework.web.bind.annotation.*; | 7 | import org.springframework.web.bind.annotation.*; |
@@ -102,12 +103,16 @@ public class MainController { | @@ -102,12 +103,16 @@ public class MainController { | ||
102 | } | 103 | } |
103 | 104 | ||
104 | @GetMapping(path="/registration") | 105 | @GetMapping(path="/registration") |
105 | - public ModelAndView registration() { | 106 | + public ModelAndView registration(@RequestParam(required=false) String message, @RequestParam(required=false) Integer succeed) { |
106 | ModelAndView modelAndView = new ModelAndView(); | 107 | ModelAndView modelAndView = new ModelAndView(); |
107 | Authentication auth = SecurityContextHolder.getContext().getAuthentication(); | 108 | Authentication auth = SecurityContextHolder.getContext().getAuthentication(); |
108 | Customer customer = customerRepository.findByEmail(auth.getName()); | 109 | Customer customer = customerRepository.findByEmail(auth.getName()); |
109 | modelAndView.addObject("customerName", customer.getEmail().split("@")[0]); | 110 | modelAndView.addObject("customerName", customer.getEmail().split("@")[0]); |
110 | modelAndView.addObject("customerRole", customer.getRole()); | 111 | modelAndView.addObject("customerRole", customer.getRole()); |
112 | + modelAndView.addObject("message", message); | ||
113 | + modelAndView.addObject("succeed", succeed); | ||
114 | + System.out.println("all teams : " + teamRepository.findAll()); | ||
115 | + modelAndView.addObject("allTeams", teamRepository.findAll()); | ||
111 | modelAndView.setViewName("registration"); | 116 | modelAndView.setViewName("registration"); |
112 | return modelAndView; | 117 | return modelAndView; |
113 | } | 118 | } |
@@ -117,40 +122,43 @@ public class MainController { | @@ -117,40 +122,43 @@ public class MainController { | ||
117 | return "denied"; | 122 | return "denied"; |
118 | } | 123 | } |
119 | 124 | ||
120 | - @PostMapping(path="/registration") | ||
121 | - public ModelAndView addNewUser(@RequestParam String email, @RequestParam String password, @RequestParam String role) { | ||
122 | - //Model map, ModelAndView ou l'utilisation direct comme dans la méthode précédente sont 3 méthodes qui permettent d'envoyer des informations et donc de changer l'apparence d'une page | ||
123 | - ModelAndView modelAndView = new ModelAndView(); // il n'est peut être pas utile d'utiliser ModelAndView | ||
124 | - Customer n = new Customer(); | ||
125 | - n.setEmail(email); | ||
126 | - n.setPassword(bCryptPasswordEncoder.encode(password)); | ||
127 | - n.setCustomerId((int)(customerRepository.count() + 1)); | ||
128 | - n.setActive(1); | ||
129 | - Customer temp = customerRepository.findByEmail(email); | ||
130 | - Role userRole = roleRepository.findByRole(role); | ||
131 | - n.addRole(userRole); | ||
132 | - | ||
133 | - //utilisé uniquement pour continuer à afficher l'utilisateur connecté// | ||
134 | - Authentication auth = SecurityContextHolder.getContext().getAuthentication(); | ||
135 | - Customer customer = customerRepository.findByEmail(auth.getName()); | ||
136 | - modelAndView.addObject("customerName", customer.getEmail().split("@")[0]); | ||
137 | - modelAndView.addObject("customerRole", customer.getRole()); | ||
138 | - modelAndView.setViewName("registration"); | 125 | + @PostMapping(path="/addTeam") |
126 | + public String addNewTeam(@RequestParam String teamName){ | ||
139 | 127 | ||
140 | - List<Customer> list = customerRepository.findAll(); // attention : la méthode findAll() de JpaRepository retourne une liste alors que celle de CrudRepository retourne un itérable | ||
141 | - modelAndView.addObject("list", list); | 128 | + if(teamRepository.findByTeam(teamName) != null) { |
129 | + return "redirect:/registration?message=Le groupe&succeed=-1"; | ||
130 | + } | ||
131 | + else { | ||
132 | + Team t = new Team(); | ||
133 | + t.setTeam(teamName); | ||
134 | + t.setTeamId((int)(teamRepository.count()+1)); | ||
135 | + teamRepository.save(t); | ||
136 | + return "redirect:/registration?message=Le groupe&succeed=1"; | ||
137 | + } | ||
138 | + } | ||
139 | + | ||
140 | + @PostMapping(path="/addUser") | ||
141 | + public String addNewUser(@RequestParam String email, @RequestParam String password, @RequestParam String role, @RequestParam String team) { | ||
142 | 142 | ||
143 | - if(temp != null) { | ||
144 | - modelAndView.addObject("message", "L'utilisateur existe déjà !"); | ||
145 | - modelAndView.addObject("fail", true); | 143 | + if(customerRepository.findByEmail(email) != null) { |
144 | + return "redirect:/registration?message=L'utilisateur&succeed=-1"; | ||
146 | } | 145 | } |
147 | else { | 146 | else { |
148 | - modelAndView.addObject("message", "L'utilisateur a bien été ajouté !"); | ||
149 | - modelAndView.addObject("ok", true); | 147 | + Customer n = new Customer(); |
148 | + n.setEmail(email); | ||
149 | + n.setPassword(bCryptPasswordEncoder.encode(password)); | ||
150 | + n.setCustomerId((int)(customerRepository.count() + 1)); | ||
151 | + n.setActive(1); | ||
152 | + Role userRole = roleRepository.findByRole(role); | ||
153 | + n.addRole(userRole); | ||
150 | customerRepository.save(n); | 154 | customerRepository.save(n); |
155 | + System.out.println("team found : " + team); | ||
156 | + Team temp = teamRepository.findByTeam(team); | ||
157 | + temp.addCustomer(n); | ||
158 | + teamRepository.save(temp); | ||
159 | + return "redirect:/registration?message=L'utilisateur&succeed=1"; | ||
151 | } | 160 | } |
152 | - modelAndView.setViewName("registration"); | ||
153 | - return modelAndView; | 161 | + |
154 | } | 162 | } |
155 | 163 | ||
156 | @RequestMapping(value = "/file", method = RequestMethod.POST) | 164 | @RequestMapping(value = "/file", method = RequestMethod.POST) |
PFE06/src/main/java/com/PFE/ServerManager/TeamRepository.java
@@ -9,6 +9,8 @@ import java.util.List; | @@ -9,6 +9,8 @@ import java.util.List; | ||
9 | @Repository | 9 | @Repository |
10 | public interface TeamRepository extends JpaRepository<Team, Integer> { | 10 | public interface TeamRepository extends JpaRepository<Team, Integer> { |
11 | 11 | ||
12 | + Team findByTeam(String team); | ||
13 | + | ||
12 | Team findByCustomersContaining(Customer customer); | 14 | Team findByCustomersContaining(Customer customer); |
13 | 15 | ||
14 | @Override | 16 | @Override |
PFE06/src/main/resources/templates/login.html
@@ -29,11 +29,11 @@ | @@ -29,11 +29,11 @@ | ||
29 | <form id="Login" th:action="@{/login}" method="POST"> | 29 | <form id="Login" th:action="@{/login}" method="POST"> |
30 | 30 | ||
31 | <div class="form-team"> | 31 | <div class="form-team"> |
32 | - <input type="email" class="form-control" id="inputEmail" placeholder="Email" name="email"> | 32 | + <input type="email" class="form-control" id="inputEmail" placeholder="Email" name="email" minlength="6" required> |
33 | </div> | 33 | </div> |
34 | <br/> | 34 | <br/> |
35 | <div class="form-team"> | 35 | <div class="form-team"> |
36 | - <input type="password" class="form-control" id="inputPassword" placeholder="Mot de passe" name="password"> | 36 | + <input type="password" class="form-control" id="inputPassword" placeholder="Mot de passe" name="password" minlength="6" required> |
37 | </div> | 37 | </div> |
38 | <br/> | 38 | <br/> |
39 | <button @click.prevent="login" type="submit" class="btn btn-primary">Se connecter</button> | 39 | <button @click.prevent="login" type="submit" class="btn btn-primary">Se connecter</button> |
PFE06/src/main/resources/templates/registration.html
@@ -38,32 +38,19 @@ | @@ -38,32 +38,19 @@ | ||
38 | </div> | 38 | </div> |
39 | </nav> | 39 | </nav> |
40 | 40 | ||
41 | + <div class="container"> | ||
42 | + <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Formulaire d'ajout d'un utilisateur</h1> | ||
43 | + <p>Merci d'entrer le login et le mot de passe du nouvel utilisateur</p> | ||
44 | + </div> | ||
41 | <div class="login-form"> | 45 | <div class="login-form"> |
42 | <div class="main-div"> | 46 | <div class="main-div"> |
43 | - <div class="panel"> | ||
44 | - <h2>Formulaire d'ajout</h2> | ||
45 | - <p>Merci d'entrer le login et le mot de passe du nouvel utilisateur</p> | ||
46 | - </div> | ||
47 | - | ||
48 | - <div th:if="${ok}"> | ||
49 | - <div class="alert alert-success" role="alert"> | ||
50 | - <span th:utext="${message}"></span> | ||
51 | - </div> | ||
52 | - </div> | ||
53 | - | ||
54 | - <div th:if="${fail}"> | ||
55 | - <div class="alert alert-danger" role="alert"> | ||
56 | - <span th:utext="${message}"></span> | ||
57 | - </div> | ||
58 | - </div> | ||
59 | - | ||
60 | - <form id="Login" th:action="@{/registration}" method="POST"> | 47 | + <form id="Login" th:action="@{/addUser}" method="POST"> |
61 | <div class="form-team"> | 48 | <div class="form-team"> |
62 | - <input type="email" class="form-control" id="username" placeholder="Entrer l'email" name="email"> | 49 | + <input type="email" class="form-control" id="username" placeholder="Entrer l'email" name="email" minlength="6" required> |
63 | </div> | 50 | </div> |
64 | <br/> | 51 | <br/> |
65 | <div class="form-team"> | 52 | <div class="form-team"> |
66 | - <input type="password" class="form-control" id="password" placeholder="Entrer le mot de passe" name="password"> | 53 | + <input type="password" class="form-control" id="password" placeholder="Entrer le mot de passe (6 caractères min.)" name="password" minlength="6" required> |
67 | </div> | 54 | </div> |
68 | <br/> | 55 | <br/> |
69 | <div class="form3"> | 56 | <div class="form3"> |
@@ -74,10 +61,45 @@ | @@ -74,10 +61,45 @@ | ||
74 | <label for="role2">User</label> | 61 | <label for="role2">User</label> |
75 | </div> | 62 | </div> |
76 | <br/> | 63 | <br/> |
64 | + <div class="form-group"> | ||
65 | + <label for="sel2">Selectionnez un groupe de travail</label> | ||
66 | + <select class="form-control" id="sel2" name="team" required> | ||
67 | + <option name="team" th:each="team : ${allTeams}" th:value="${team.getTeam()}" th:utext="${team.getTeam()}"/> | ||
68 | + </select> | ||
69 | + </div> | ||
77 | <button @click.prevent="registration" type="submit" class="btn btn-primary">Ajouter</button> | 70 | <button @click.prevent="registration" type="submit" class="btn btn-primary">Ajouter</button> |
78 | </form> | 71 | </form> |
79 | </div> | 72 | </div> |
80 | </div> | 73 | </div> |
74 | + <div style="max-width:38%; margin:50px auto; padding:10px 70px 10px 71px"> | ||
75 | + <div th:if="${succeed == 1}"> | ||
76 | + <div class="alert alert-success" role="alert"> | ||
77 | + <span th:utext="${message + ' a été ajouté'}"></span> | ||
78 | + </div> | ||
79 | + </div> | ||
80 | + | ||
81 | + <div th:if="${succeed == -1}"> | ||
82 | + <div class="alert alert-danger" role="alert"> | ||
83 | + <span th:utext="${message + ' existe déjà'}"></span> | ||
84 | + </div> | ||
85 | + </div> | ||
86 | + </div> | ||
87 | + <div class="container"> | ||
88 | + <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Formulaire d'ajout d'un groupe de travail</h1> | ||
89 | + <p>Merci d'entrer le nom du nouveau groupe</p> | ||
90 | + </div> | ||
91 | + <div class="login-form"> | ||
92 | + <div class="main-div"> | ||
93 | + <form id="addTeam" th:action="@{/addTeam}" method="POST"> | ||
94 | + <div class="form-team"> | ||
95 | + <input type="text" class="form-control" id="teamName" placeholder="Entrer le nom du groupe" name="teamName" required> | ||
96 | + </div> | ||
97 | + <br/> | ||
98 | + <button @click.prevent="registration" type="submit" class="btn btn-primary">Ajouter</button> | ||
99 | + </form> | ||
100 | + </div> | ||
101 | + </div> | ||
102 | + </div> | ||
81 | 103 | ||
82 | <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> | 104 | <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> |
83 | <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> | 105 | <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> |