|
|
@@ -10,22 +10,28 @@ import jakarta.servlet.http.HttpSession;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
-import org.springframework.web.bind.annotation.GetMapping;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
+
|
|
|
+import com.mysql.cj.protocol.x.OkBuilder;
|
|
|
|
|
|
import es.uv.saic.domain.Organ;
|
|
|
import es.uv.saic.domain.Rol;
|
|
|
import es.uv.saic.domain.Usuari;
|
|
|
import es.uv.saic.domain.UsuarisRol;
|
|
|
+import es.uv.saic.dto.OrganDTO;
|
|
|
+import es.uv.saic.dto.RolDTO;
|
|
|
+import es.uv.saic.dto.UsuariDTO;
|
|
|
+import es.uv.saic.dto.UsuarisRolDTO;
|
|
|
import es.uv.saic.service.OrganService;
|
|
|
import es.uv.saic.service.RolService;
|
|
|
import es.uv.saic.service.UsuariService;
|
|
|
import es.uv.saic.service.UsuarisRolService;
|
|
|
|
|
|
// Controller for the managers administration page
|
|
|
-@Controller
|
|
|
+@RestController
|
|
|
public class ManagersController {
|
|
|
|
|
|
@Autowired
|
|
|
@@ -46,56 +52,64 @@ public class ManagersController {
|
|
|
* - If there is a roleExists attribute in the session, load it too
|
|
|
* - The view is managers.html
|
|
|
*/
|
|
|
- @SuppressWarnings("unchecked")
|
|
|
@PostMapping("/managers")
|
|
|
- public HashMap<String, Object> managersForm(@RequestBody Usuari usuari, HttpSession session) {
|
|
|
+ public HashMap<String, Object> managersForm(@RequestBody String usuari) {
|
|
|
HashMap<String, Object> model = new HashMap<>();
|
|
|
- List<Organ> sup_centres;
|
|
|
- List<Organ> sup_titulacions;
|
|
|
- if(urs.isGrantedUser((Usuari) usuari)){
|
|
|
- sup_centres = this.ors.getCentres();
|
|
|
- sup_titulacions = this.ors.getTitulacions();
|
|
|
+ Usuari u = us.findByUsername(usuari);
|
|
|
+
|
|
|
+ List<OrganDTO> sup_centres = new ArrayList<>();
|
|
|
+ List<OrganDTO> sup_titulacions = new ArrayList<>();
|
|
|
+ List<Organ> centres;
|
|
|
+ List<Organ> titulacions;
|
|
|
+ if(u.isGranted()){
|
|
|
+ centres = this.ors.getCentres();
|
|
|
+ titulacions = this.ors.getTitulacions();
|
|
|
}
|
|
|
else {
|
|
|
- sup_centres = this.ors.getUsuariCentres((usuari).getUsuari());
|
|
|
- if(sup_centres != null) {
|
|
|
- if(sup_centres.size() > 0) {
|
|
|
- sup_titulacions = this.ors.getTitulacionsByCentres(sup_centres);
|
|
|
+ centres = this.ors.getUsuariCentres(usuari);
|
|
|
+ if(centres != null) {
|
|
|
+ if(centres.size() > 0) {
|
|
|
+ titulacions = this.ors.getTitulacionsByCentres(centres);
|
|
|
}
|
|
|
else {
|
|
|
- sup_titulacions = this.ors.getUsuariTitulacions(usuari.getUsuari());
|
|
|
- for(Organ o : sup_titulacions) {
|
|
|
- sup_centres.add(o.getOrgan());
|
|
|
+ titulacions = this.ors.getUsuariTitulacions(usuari);
|
|
|
+ for(Organ o : titulacions) {
|
|
|
+ centres.add(o.getOrgan());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
- sup_titulacions = this.ors.getUsuariTitulacions(usuari.getUsuari());
|
|
|
+ titulacions = this.ors.getUsuariTitulacions(usuari);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ for(Organ o : centres) {
|
|
|
+ sup_centres.add(new OrganDTO(o));
|
|
|
+ }
|
|
|
+
|
|
|
+ for(Organ o : titulacions) {
|
|
|
+ sup_titulacions.add(new OrganDTO(o));
|
|
|
+ }
|
|
|
+
|
|
|
model.put("sup_centres", sup_centres);
|
|
|
model.put("sup_titulacions", sup_titulacions);
|
|
|
|
|
|
- List<Usuari> users = us.findAll();
|
|
|
- List<Rol> roles = rs.findAssignables();
|
|
|
- model.put("users", users);
|
|
|
- model.put("roles", roles);
|
|
|
-
|
|
|
-
|
|
|
- if(session.getAttribute("respTitulacions") != null && session.getAttribute("respCentres") != null ) {
|
|
|
- model.put("restoreCentres", ((List<Integer>)session.getAttribute("respCentres")).toString());
|
|
|
- model.put("restoreTitulacions", ((List<Integer>)session.getAttribute("respTitulacions")).toString());
|
|
|
- this.loadManagers(model, (List<Integer>)session.getAttribute("respCentres"), (List<Integer>)session.getAttribute("respTitulacions"));
|
|
|
- session.removeAttribute("respTitulacions");
|
|
|
- session.removeAttribute("respCentres");
|
|
|
+ List<Usuari> sup_users = us.findAll();
|
|
|
+ List<Rol> sup_roles = rs.findAssignables();
|
|
|
+ List<UsuariDTO> users = new ArrayList<>();
|
|
|
+ List<RolDTO> roles = new ArrayList<>();
|
|
|
+
|
|
|
+ for(Usuari usu : sup_users) {
|
|
|
+ users.add(new UsuariDTO(usu));
|
|
|
}
|
|
|
-
|
|
|
- if(session.getAttribute("roleExists") != null) {
|
|
|
- model.put("roleExists", true);
|
|
|
- session.removeAttribute("roleExists");
|
|
|
+
|
|
|
+ for(Rol r : sup_roles) {
|
|
|
+ roles.add(new RolDTO(r));
|
|
|
}
|
|
|
|
|
|
- model.put("ok", "managers");
|
|
|
+ model.put("users", users);
|
|
|
+ model.put("roles", roles);
|
|
|
+
|
|
|
return model;
|
|
|
}
|
|
|
|
|
|
@@ -106,20 +120,11 @@ public class ManagersController {
|
|
|
* @Return The view component list_managers
|
|
|
*/
|
|
|
@PostMapping("/managers/search")
|
|
|
- public String managersSearch(@RequestBody HashMap<String, Object> model,
|
|
|
- @RequestParam("center") List<Integer> centres,
|
|
|
- @RequestParam(name="titulation[]", required=false) List<Integer> titulacions,
|
|
|
- HttpSession session) {
|
|
|
-
|
|
|
- if(titulacions == null) {
|
|
|
- titulacions = new ArrayList<Integer>();
|
|
|
- }
|
|
|
- this.loadManagers(model, centres, titulacions);
|
|
|
-
|
|
|
- session.setAttribute("respTitulacions", titulacions);
|
|
|
- session.setAttribute("respCentres", centres);
|
|
|
+ public HashMap<String, Object> managersSearch(@RequestParam("center") List<Integer> centres,
|
|
|
+ @RequestParam(name="titulation[]", required=false) List<Integer> titulacions) {
|
|
|
+ HashMap<String, Object> map = this.loadManagers(centres, titulacions);
|
|
|
|
|
|
- return "components/list_managers";
|
|
|
+ return map;
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
@@ -128,9 +133,10 @@ public class ManagersController {
|
|
|
* @Param centres List of centre ids to search managers in
|
|
|
* @Param titulacions List of titulacion ids to search managers in
|
|
|
*/
|
|
|
- public void loadManagers(HashMap<String, Object> model, List<Integer> centres, List<Integer> titulacions) {
|
|
|
- List<UsuarisRol> resp_centre = urs.findManagerByCentres(centres);
|
|
|
- Collections.sort(resp_centre, new Comparator<UsuarisRol>() {
|
|
|
+ public HashMap<String, Object> loadManagers(List<Integer> centres, List<Integer> titulacions) {
|
|
|
+ HashMap<String, Object> model = new HashMap<>();
|
|
|
+ List<UsuarisRol> centre = urs.findManagerByCentres(centres);
|
|
|
+ Collections.sort(centre, new Comparator<UsuarisRol>() {
|
|
|
@Override
|
|
|
public int compare(UsuarisRol a, UsuarisRol b) {
|
|
|
|
|
|
@@ -147,10 +153,10 @@ public class ManagersController {
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- List<UsuarisRol> resp_titulacio = new ArrayList<UsuarisRol>();
|
|
|
+ List<UsuarisRol> titulacio = new ArrayList<UsuarisRol>();
|
|
|
if(titulacions.size() > 0) {
|
|
|
- resp_titulacio = urs.findManagerByTitulacions(titulacions);
|
|
|
- Collections.sort(resp_titulacio, new Comparator<UsuarisRol>() {
|
|
|
+ titulacio = urs.findManagerByTitulacions(titulacions);
|
|
|
+ Collections.sort(titulacio, new Comparator<UsuarisRol>() {
|
|
|
@Override
|
|
|
public int compare(UsuarisRol a, UsuarisRol b) {
|
|
|
|
|
|
@@ -167,15 +173,28 @@ public class ManagersController {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ List<UsuarisRolDTO> resp_centre = new ArrayList<>();
|
|
|
+ List<UsuarisRolDTO> resp_titulacio = new ArrayList<>();
|
|
|
+
|
|
|
+ for(UsuarisRol ur : centre) {
|
|
|
+ resp_centre.add(new UsuarisRolDTO(ur));
|
|
|
+ }
|
|
|
+ for(UsuarisRol ur : titulacio) {
|
|
|
+ resp_titulacio.add(new UsuarisRolDTO(ur));
|
|
|
+ }
|
|
|
|
|
|
- if(resp_centre == null) {
|
|
|
+ if(centre == null) {
|
|
|
model.put("results", false);
|
|
|
}
|
|
|
else{
|
|
|
+
|
|
|
model.put("results", true);
|
|
|
model.put("resp_centres", resp_centre);
|
|
|
model.put("resp_titulacions", resp_titulacio);
|
|
|
}
|
|
|
+
|
|
|
+ return model;
|
|
|
}
|
|
|
|
|
|
}
|