feat: gestion des utilisateurs, rôles et équipes
- Ajout de la section de gestion des utilisateurs avec rôles (Admin, Trésorerie, Agent de Saisie). - Restriction des accès par rôle (Admin a tout, Trésorerie a adhérents/paiements, Agent de saisie a adhérents/planning). - Flux de modification obligatoire de mot de passe temporaire au premier login (par défaut AsTalange123). - Intégration de la configuration des équipes du club.
This commit is contained in:
@@ -3,6 +3,7 @@ package com.astalange.web.controller;
|
||||
import com.astalange.core.entity.*;
|
||||
import com.astalange.core.repository.CategorieRepository;
|
||||
import com.astalange.core.repository.CreneauEntrainementRepository;
|
||||
import com.astalange.core.repository.EquipeRepository;
|
||||
import com.astalange.core.repository.SaisonRepository;
|
||||
import com.astalange.core.repository.TerrainRepository;
|
||||
import org.springframework.stereotype.Controller;
|
||||
@@ -21,15 +22,18 @@ public class PlanningController {
|
||||
private final TerrainRepository terrainRepository;
|
||||
private final CategorieRepository categorieRepository;
|
||||
private final SaisonRepository saisonRepository;
|
||||
private final EquipeRepository equipeRepository;
|
||||
|
||||
public PlanningController(CreneauEntrainementRepository creneauRepository,
|
||||
TerrainRepository terrainRepository,
|
||||
CategorieRepository categorieRepository,
|
||||
SaisonRepository saisonRepository) {
|
||||
SaisonRepository saisonRepository,
|
||||
EquipeRepository equipeRepository) {
|
||||
this.creneauRepository = creneauRepository;
|
||||
this.terrainRepository = terrainRepository;
|
||||
this.categorieRepository = categorieRepository;
|
||||
this.saisonRepository = saisonRepository;
|
||||
this.equipeRepository = equipeRepository;
|
||||
}
|
||||
|
||||
@GetMapping
|
||||
@@ -92,6 +96,7 @@ public class PlanningController {
|
||||
model.addAttribute("terrains", terrainRepository.findAll());
|
||||
model.addAttribute("zones", ZoneTerrain.values());
|
||||
model.addAttribute("jours", JourSemaine.values());
|
||||
model.addAttribute("equipes", List.of());
|
||||
|
||||
return "planning/form";
|
||||
}
|
||||
@@ -107,6 +112,12 @@ public class PlanningController {
|
||||
model.addAttribute("zones", ZoneTerrain.values());
|
||||
model.addAttribute("jours", JourSemaine.values());
|
||||
|
||||
if (creneau.getCategorie() != null) {
|
||||
model.addAttribute("equipes", equipeRepository.findByCategorieId(creneau.getCategorie().getId()));
|
||||
} else {
|
||||
model.addAttribute("equipes", List.of());
|
||||
}
|
||||
|
||||
return "planning/form";
|
||||
}
|
||||
|
||||
@@ -122,6 +133,10 @@ public class PlanningController {
|
||||
}
|
||||
}
|
||||
|
||||
if (creneau.getEquipe() != null && creneau.getEquipe().getId() == null) {
|
||||
creneau.setEquipe(null);
|
||||
}
|
||||
|
||||
if (result.hasErrors()) {
|
||||
Saison saison = creneau.getSaison();
|
||||
if (saison == null) {
|
||||
@@ -132,6 +147,11 @@ public class PlanningController {
|
||||
model.addAttribute("terrains", terrainRepository.findAll());
|
||||
model.addAttribute("zones", ZoneTerrain.values());
|
||||
model.addAttribute("jours", JourSemaine.values());
|
||||
if (creneau.getCategorie() != null && creneau.getCategorie().getId() != null) {
|
||||
model.addAttribute("equipes", equipeRepository.findByCategorieId(creneau.getCategorie().getId()));
|
||||
} else {
|
||||
model.addAttribute("equipes", List.of());
|
||||
}
|
||||
return "planning/form";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user