CreateDefaultValues.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. package fr.triplea.demovote;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. import java.util.Locale;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.beans.factory.annotation.Value;
  7. import org.springframework.context.ApplicationListener;
  8. import org.springframework.context.event.ContextRefreshedEvent;
  9. import org.springframework.stereotype.Component;
  10. import org.springframework.transaction.annotation.Transactional;
  11. import fr.triplea.demovote.dao.ParticipantRepository;
  12. import fr.triplea.demovote.dao.RoleRepository;
  13. import fr.triplea.demovote.dao.VariableRepository;
  14. import fr.triplea.demovote.model.Participant;
  15. import fr.triplea.demovote.model.Role;
  16. import fr.triplea.demovote.model.Variable;
  17. @Component
  18. public class CreateDefaultValues implements ApplicationListener<ContextRefreshedEvent>
  19. {
  20. @Value("${admin.email.address}")
  21. private String adminEmailAddress;
  22. boolean initialise = false;
  23. @Autowired
  24. private ParticipantRepository participantRepository;
  25. @Autowired
  26. private RoleRepository roleRepository;
  27. @Autowired
  28. private VariableRepository variableRepository;
  29. @Override
  30. @Transactional
  31. public void onApplicationEvent(ContextRefreshedEvent event)
  32. {
  33. if (initialise) { return; }
  34. Locale.setDefault(Locale.ENGLISH);
  35. Role adminRole = addRoleIfMissing("ROLE_ADMIN");
  36. Role orgaRole = addRoleIfMissing("ROLE_ORGA");
  37. Role userRole = addRoleIfMissing("ROLE_USER");
  38. List<Participant> participants = participantRepository.findAll();
  39. for (Participant participant : participants)
  40. {
  41. boolean changed = false;
  42. List<Role> roles = participant.getRoles();
  43. if (roles == null)
  44. {
  45. roles = Arrays.asList(userRole);
  46. changed = true;
  47. }
  48. else
  49. {
  50. if (!roles.contains(userRole))
  51. {
  52. roles.add(userRole);
  53. changed = true;
  54. }
  55. }
  56. if (adminEmailAddress != null)
  57. {
  58. if (participant.getEmail().equalsIgnoreCase(adminEmailAddress))
  59. {
  60. if (!roles.contains(adminRole)) { roles.add(adminRole); changed = true; }
  61. if (!roles.contains(orgaRole)) { roles.add(orgaRole); changed = true; }
  62. }
  63. }
  64. if (changed)
  65. {
  66. participant.setRoles(roles);
  67. participantRepository.saveAndFlush(participant);
  68. }
  69. }
  70. addVariableIfMissing("Application", "TIME_ZONE", "Europe/Paris");
  71. addVariableIfMissing("Application", "LIBELLE_COURT_JOUR1", "Ven1");
  72. addVariableIfMissing("Application", "LIBELLE_COURT_JOUR2", "Sam2");
  73. addVariableIfMissing("Application", "LIBELLE_COURT_JOUR3", "Dim3");
  74. addVariableIfMissing("Application", "LIBELLE_LONG_JOUR1", "Vendredi 1er Novembre");
  75. addVariableIfMissing("Application", "LIBELLE_LONG_JOUR2", "Samedi 2 Novembre");
  76. addVariableIfMissing("Application", "LIBELLE_LONG_JOUR3", "Dimanche 3 Novembre");
  77. addVariableIfMissing("Accueil", "PARTICIPANTS_ARRIVES_SEULEMENT", "TRUE");
  78. addVariableIfMissing("Navigation", "LISTE_PARTICIPANTS_MAX", "300");
  79. addVariableIfMissing("Navigation", "LISTE_VARIABLES_MAX", "100");
  80. addVariableIfMissing("Catégories", "ETAPE1_DEADLINE_EFFECTUEE", "TRUE");
  81. addVariableIfMissing("Catégories", "ETAPE2_SCRUTIN_CLOTURE", "TRUE");
  82. addVariableIfMissing("Catégories", "ETAPE3_RESULTATS_DEMASQUES", "TRUE");
  83. addVariableIfMissing("Résultats", "NOMBRE_CHOIX", "3");
  84. addVariableIfMissing("Résultats", "POINTS_POSITION_01", "3");
  85. addVariableIfMissing("Résultats", "POINTS_POSITION_02", "2");
  86. addVariableIfMissing("Résultats", "POINTS_POSITION_03", "1");
  87. addVariableIfMissing("Résultats", "POINTS_POSITION_04", "0");
  88. addVariableIfMissing("Résultats", "POINTS_POSITION_05", "0");
  89. addVariableIfMissing("Résultats", "POINTS_POSITION_06", "0");
  90. addVariableIfMissing("Résultats", "POINTS_POSITION_07", "0");
  91. addVariableIfMissing("Résultats", "POINTS_POSITION_08", "0");
  92. addVariableIfMissing("Résultats", "POINTS_POSITION_09", "0");
  93. addVariableIfMissing("Résultats", "POINTS_POSITION_10", "0");
  94. addVariableIfMissing("Messages", "ACCUEIL_ERREUR", "message d'erreur paramétrable côté backend.");
  95. addVariableIfMissing("Messages", "ACCUEIL_ALERTE", "message d'alerte paramétrable côté backend. ");
  96. addVariableIfMissing("Messages", "ACCUEIL_INFORMATION", "message d'information paramétrable côté backend. ");
  97. addVariableIfMissing("Messages", "ACCUEIL_AUTRE", "message neutre paramétrable côté backend. ");
  98. addVariableIfMissing("Caméras", "RECUPERATION_ACTIVE", "TRUE");
  99. addVariableIfMissing("Caméras", "RECUPERATION_IMAGE_1", "https://www.triplea.fr/alchimie/images/webcams/hirezcam.jpg");
  100. addVariableIfMissing("Caméras", "RECUPERATION_IMAGE_2", "https://www.triplea.fr/alchimie/images/webcams/mobilecam.jpg");
  101. addVariableIfMissing("Caméras", "RECUPERATION_IMAGE_3", "https://www.triplea.fr/alchimie/images/webcams/mobilecam2.jpg");
  102. addVariableIfMissing("Caméras", "RECUPERATION_IMAGE_4", "NONE");
  103. addVariableIfMissing("Caméras", "RECUPERATION_PAUSE", "25");
  104. initialise = true;
  105. }
  106. @Transactional
  107. public Role addRoleIfMissing(final String libelle)
  108. {
  109. Role role = roleRepository.findByLibelle(libelle);
  110. if (role == null)
  111. {
  112. role = new Role();
  113. role.setLibelle(libelle);
  114. role = roleRepository.saveAndFlush(role);
  115. }
  116. return role;
  117. }
  118. @Transactional
  119. public void addVariableIfMissing(final String type, final String code, final String valeur)
  120. {
  121. String str = variableRepository.findByTypeAndCode(type, code);
  122. if (str == null)
  123. {
  124. Variable variable = new Variable();
  125. variable.setType(type);
  126. variable.setCode(code);
  127. variable.setValeur(valeur);
  128. variableRepository.saveAndFlush(variable);
  129. }
  130. }
  131. }