@cerema/cadriciel 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (842) hide show
  1. package/.vscode/settings.json +3 -0
  2. package/_template/.idea/compiler.xml +28 -0
  3. package/_template/.idea/encodings.xml +13 -0
  4. package/_template/.idea/jarRepositories.xml +30 -0
  5. package/_template/.idea/jpa-buddy.xml +7 -0
  6. package/_template/.idea/misc.xml +15 -0
  7. package/_template/README.md +118 -0
  8. package/_template/angular.json +139 -0
  9. package/_template/docker/data/db/.gitkeep +0 -0
  10. package/_template/docker/data/pgadmin/.gitkeep +0 -0
  11. package/_template/docker/docker-compose.yml +22 -0
  12. package/_template/mvnw +310 -0
  13. package/_template/mvnw.cmd +182 -0
  14. package/_template/package-lock.json +5 -0
  15. package/_template/package.json +77 -0
  16. package/_template/pom.xml +234 -0
  17. package/_template/yarn.lock +7005 -0
  18. package/_template/{{project}}-data/Readme.md +27 -0
  19. package/_template/{{project}}-data/pom.xml +46 -0
  20. package/_template/{{project}}-data/src/main/resources/db/dev/Readme.md +5 -0
  21. package/_template/{{project}}-data/src/main/resources/db/dev/V202206021513__dev-data.sql +5 -0
  22. package/_template/{{project}}-data/src/main/resources/db/migration/Readme.md +38 -0
  23. package/_template/{{project}}-data/src/main/resources/db/migration/V202110140819__Init.sql +23 -0
  24. package/_template/{{project}}-data/src/main/resources/flyway.properties +10 -0
  25. package/_template/{{project}}-ihm/karma.conf.js +65 -0
  26. package/_template/{{project}}-ihm/pom.xml +192 -0
  27. package/_template/{{project}}-ihm/src/app/app-routing.module.ts +35 -0
  28. package/_template/{{project}}-ihm/src/app/app.component.css +40 -0
  29. package/_template/{{project}}-ihm/src/app/app.component.html +1 -0
  30. package/_template/{{project}}-ihm/src/app/app.component.spec.ts +25 -0
  31. package/_template/{{project}}-ihm/src/app/app.component.ts +60 -0
  32. package/_template/{{project}}-ihm/src/app/app.module.ts +104 -0
  33. package/_template/{{project}}-ihm/src/app/layout/api/menuchangeevent.ts +4 -0
  34. package/_template/{{project}}-ihm/src/app/layout/api/tabcloseevent.ts +6 -0
  35. package/_template/{{project}}-ihm/src/app/layout/app.breadcrumb.component.html +14 -0
  36. package/_template/{{project}}-ihm/src/app/layout/app.breadcrumb.component.ts +48 -0
  37. package/_template/{{project}}-ihm/src/app/layout/app.footer.component.html +20 -0
  38. package/_template/{{project}}-ihm/src/app/layout/app.footer.component.ts +22 -0
  39. package/_template/{{project}}-ihm/src/app/layout/app.menu.component.html +3 -0
  40. package/_template/{{project}}-ihm/src/app/layout/app.menu.component.ts +30 -0
  41. package/_template/{{project}}-ihm/src/app/layout/app.menu.service.ts +23 -0
  42. package/_template/{{project}}-ihm/src/app/layout/app.menuitem.component.ts +213 -0
  43. package/_template/{{project}}-ihm/src/app/layout/app.sidebar.component.html +5 -0
  44. package/_template/{{project}}-ihm/src/app/layout/app.sidebar.component.ts +13 -0
  45. package/_template/{{project}}-ihm/src/app/layout/app.topbar.component.html +78 -0
  46. package/_template/{{project}}-ihm/src/app/layout/app.topbar.component.ts +72 -0
  47. package/_template/{{project}}-ihm/src/app/layout/config/app.config.component.html +85 -0
  48. package/_template/{{project}}-ihm/src/app/layout/config/app.config.component.ts +230 -0
  49. package/_template/{{project}}-ihm/src/app/layout/config/config.module.ts +27 -0
  50. package/_template/{{project}}-ihm/src/app/layout/main/main.component.html +15 -0
  51. package/_template/{{project}}-ihm/src/app/layout/main/main.component.spec.ts +29 -0
  52. package/_template/{{project}}-ihm/src/app/layout/main/main.component.ts +156 -0
  53. package/_template/{{project}}-ihm/src/app/layout/main-routing.module.ts +32 -0
  54. package/_template/{{project}}-ihm/src/app/layout/main.module.ts +45 -0
  55. package/_template/{{project}}-ihm/src/app/layout/service/app.layout.service.ts +124 -0
  56. package/_template/{{project}}-ihm/src/app/shared/components/code/code.component.ts +22 -0
  57. package/_template/{{project}}-ihm/src/app/shared/components/indic/indic.component.html +8 -0
  58. package/_template/{{project}}-ihm/src/app/shared/components/indic/indic.component.scss +0 -0
  59. package/_template/{{project}}-ihm/src/app/shared/components/indic/indic.component.spec.ts +23 -0
  60. package/_template/{{project}}-ihm/src/app/shared/components/indic/indic.component.ts +61 -0
  61. package/_template/{{project}}-ihm/src/app/shared/constants/dateFormat.constants.ts +1 -0
  62. package/_template/{{project}}-ihm/src/app/shared/constants/mocks/user-mocks.constants.ts +36 -0
  63. package/_template/{{project}}-ihm/src/app/shared/constants/pagination.constants.ts +1 -0
  64. package/_template/{{project}}-ihm/src/app/shared/core/config/application-config.service.spec.ts +16 -0
  65. package/_template/{{project}}-ihm/src/app/shared/core/config/application-config.service.ts +46 -0
  66. package/_template/{{project}}-ihm/src/app/shared/core/guard/can-modify.guard.spec.ts +98 -0
  67. package/_template/{{project}}-ihm/src/app/shared/core/guard/can-modify.guard.ts +36 -0
  68. package/_template/{{project}}-ihm/src/app/shared/core/guard/login.guard.spec.ts +21 -0
  69. package/_template/{{project}}-ihm/src/app/shared/core/guard/login.guard.ts +23 -0
  70. package/_template/{{project}}-ihm/src/app/shared/core/interceptor/handle-req.interceptor.ts +31 -0
  71. package/_template/{{project}}-ihm/src/app/shared/core/interceptor/index.ts +10 -0
  72. package/_template/{{project}}-ihm/src/app/shared/core/request/pageable.model.ts +5 -0
  73. package/_template/{{project}}-ihm/src/app/shared/core/request/request-util.ts +21 -0
  74. package/_template/{{project}}-ihm/src/app/shared/core/resolver/accueil.resolver.spec.ts +21 -0
  75. package/_template/{{project}}-ihm/src/app/shared/core/resolver/accueil.resolver.ts +18 -0
  76. package/_template/{{project}}-ihm/src/app/shared/core/storage/MyLocalStorageService.ts +23 -0
  77. package/_template/{{project}}-ihm/src/app/shared/core/storage/MyStorageService.ts +17 -0
  78. package/_template/{{project}}-ihm/src/app/shared/entities/claims.model.ts +9 -0
  79. package/_template/{{project}}-ihm/src/app/shared/entities/user.model.ts +9 -0
  80. package/_template/{{project}}-ihm/src/app/shared/enums/roles.enums.ts +6 -0
  81. package/_template/{{project}}-ihm/src/app/shared/service/user.service.spec.ts +64 -0
  82. package/_template/{{project}}-ihm/src/app/shared/service/user.service.ts +46 -0
  83. package/_template/{{project}}-ihm/src/app/shared/shared.module.ts +15 -0
  84. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied-routing.module.ts +12 -0
  85. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied.component.html +11 -0
  86. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied.component.ts +7 -0
  87. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied.module.ts +18 -0
  88. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/auth-routing.module.ts +14 -0
  89. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/auth.module.ts +13 -0
  90. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error-routing.module.ts +12 -0
  91. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error.component.html +10 -0
  92. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error.component.ts +7 -0
  93. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error.module.ts +18 -0
  94. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login-routing.module.ts +12 -0
  95. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login.component.html +15 -0
  96. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login.component.ts +46 -0
  97. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login.module.ts +22 -0
  98. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.html +8 -0
  99. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.scss +21 -0
  100. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.spec.ts +26 -0
  101. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.ts +15 -0
  102. package/_template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout.module.ts +27 -0
  103. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.html +132 -0
  104. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.scss +0 -0
  105. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.spec.ts +23 -0
  106. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.ts +86 -0
  107. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.html +3 -0
  108. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.scss +0 -0
  109. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.spec.ts +23 -0
  110. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.ts +15 -0
  111. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.html +3 -0
  112. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.scss +0 -0
  113. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.spec.ts +23 -0
  114. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.ts +15 -0
  115. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/documentation-routing.module.ts +25 -0
  116. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/documentation.module.ts +39 -0
  117. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.html +3 -0
  118. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.scss +0 -0
  119. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.spec.ts +23 -0
  120. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.ts +15 -0
  121. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.html +117 -0
  122. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.scss +0 -0
  123. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.spec.ts +23 -0
  124. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.ts +25 -0
  125. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.html +3 -0
  126. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.scss +0 -0
  127. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.spec.ts +23 -0
  128. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.ts +15 -0
  129. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.html +3 -0
  130. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.scss +0 -0
  131. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.spec.ts +23 -0
  132. package/_template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.ts +15 -0
  133. package/_template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound-routing.module.ts +12 -0
  134. package/_template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound.component.html +42 -0
  135. package/_template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound.component.ts +7 -0
  136. package/_template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound.module.ts +18 -0
  137. package/_template/{{project}}-ihm/src/assets/.gitkeep +0 -0
  138. package/_template/{{project}}-ihm/src/assets/favicon.ico +0 -0
  139. package/_template/{{project}}-ihm/src/assets/i18n/fr.json +33 -0
  140. package/_template/{{project}}-ihm/src/assets/images/angular.png +0 -0
  141. package/_template/{{project}}-ihm/src/assets/images/orionavatar.png +0 -0
  142. package/_template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-300.woff +0 -0
  143. package/_template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-300.woff2 +0 -0
  144. package/_template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-700.woff +0 -0
  145. package/_template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-700.woff2 +0 -0
  146. package/_template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-regular.woff +0 -0
  147. package/_template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-regular.woff2 +0 -0
  148. package/_template/{{project}}-ihm/src/assets/layout/images/LogoCerema.svg +226 -0
  149. package/_template/{{project}}-ihm/src/assets/layout/images/LogoCerema_horizontal.svg +167 -0
  150. package/_template/{{project}}-ihm/src/assets/layout/images/SpinnerCerema.svg +5 -0
  151. package/_template/{{project}}-ihm/src/assets/layout/images/avatar.png +0 -0
  152. package/_template/{{project}}-ihm/src/assets/layout/images/logo-dark.png +0 -0
  153. package/_template/{{project}}-ihm/src/assets/layout/images/logo-light.png +0 -0
  154. package/_template/{{project}}-ihm/src/assets/layout/images/user.png +0 -0
  155. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_breadcrumb.scss +18 -0
  156. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_config.scss +33 -0
  157. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_content.scss +20 -0
  158. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_fonts.scss +27 -0
  159. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_footer.scss +25 -0
  160. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_main.scss +29 -0
  161. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_responsive.scss +159 -0
  162. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_sidebar.scss +2 -0
  163. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_topbar.scss +250 -0
  164. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_typography.scss +63 -0
  165. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/_utils.scss +19 -0
  166. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/layout.scss +15 -0
  167. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/preloading.css +64 -0
  168. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/preloading.scss +79 -0
  169. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/sidebar/_sidebar_slim.scss +131 -0
  170. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/sidebar/_sidebar_vertical.scss +133 -0
  171. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_dark.scss +10 -0
  172. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_light.scss +10 -0
  173. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_primary.scss +10 -0
  174. package/_template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_themes.scss +3 -0
  175. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_colors.scss +17 -0
  176. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_common.scss +68 -0
  177. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_components.scss +102 -0
  178. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_mixins.scss +203 -0
  179. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/button/_button.scss +560 -0
  180. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/button/_speeddial.scss +81 -0
  181. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/button/_splitbutton.scss +381 -0
  182. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_carousel.scss +37 -0
  183. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_datatable.scss +278 -0
  184. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_dataview.scss +55 -0
  185. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_filter.scss +138 -0
  186. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_fullcalendar.scss +329 -0
  187. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_orderlist.scss +103 -0
  188. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_organizationchart.scss +50 -0
  189. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_paginator.scss +92 -0
  190. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_picklist.scss +103 -0
  191. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_timeline.scss +38 -0
  192. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_tree.scss +144 -0
  193. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_treetable.scss +246 -0
  194. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_virtualscroller.scss +28 -0
  195. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/file/_fileupload.scss +58 -0
  196. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_autocomplete.scss +117 -0
  197. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_calendar.scss +263 -0
  198. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_cascadeselect.scss +109 -0
  199. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_checkbox.scss +85 -0
  200. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_chips.scss +54 -0
  201. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_colorpicker.scss +19 -0
  202. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_dropdown.scss +135 -0
  203. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_editor.scss +122 -0
  204. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputgroup.scss +75 -0
  205. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputmask.scss +16 -0
  206. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputnumber.scss +28 -0
  207. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputswitch.scss +60 -0
  208. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputtext.scss +99 -0
  209. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_listbox.scss +82 -0
  210. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_multiselect.scss +171 -0
  211. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_password.scss +53 -0
  212. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_radiobutton.scss +78 -0
  213. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_rating.scss +48 -0
  214. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_selectbutton.scss +50 -0
  215. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_slider.scss +71 -0
  216. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_togglebutton.scss +48 -0
  217. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_treeselect.scss +139 -0
  218. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_breadcrumb.scss +42 -0
  219. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_contextmenu.scss +56 -0
  220. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_dock.scss +86 -0
  221. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_megamenu.scss +106 -0
  222. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_menu.scss +45 -0
  223. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_menubar.scss +183 -0
  224. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_panelmenu.scss +140 -0
  225. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_slidemenu.scss +59 -0
  226. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_steps.scss +56 -0
  227. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_tabmenu.scss +69 -0
  228. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_tieredmenu.scss +60 -0
  229. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/messages/_inlinemessage.scss +64 -0
  230. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/messages/_message.scss +102 -0
  231. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/messages/_toast.scss +95 -0
  232. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_avatar.scss +30 -0
  233. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_badge.scss +48 -0
  234. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_blockui.scss +0 -0
  235. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_chip.scss +38 -0
  236. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_inplace.scss +17 -0
  237. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_progressbar.scss +17 -0
  238. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_scrolltop.scss +20 -0
  239. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_skeleton.scss +8 -0
  240. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_tag.scss +35 -0
  241. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_terminal.scss +11 -0
  242. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/multimedia/_galleria.scss +139 -0
  243. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/multimedia/_image.scss +44 -0
  244. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_confirmpopup.scss +65 -0
  245. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_dialog.scss +64 -0
  246. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_overlaypanel.scss +62 -0
  247. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_sidebar.scss +23 -0
  248. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_tooltip.scss +33 -0
  249. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_accordion.scss +119 -0
  250. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_card.scss +30 -0
  251. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_divider.scss +31 -0
  252. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_fieldset.scss +47 -0
  253. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_panel.scss +58 -0
  254. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_scrollpanel.scss +6 -0
  255. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_splitter.scss +19 -0
  256. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_tabview.scss +78 -0
  257. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_toolbar.scss +10 -0
  258. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/_extensions.scss +90 -0
  259. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/_variables.scss +867 -0
  260. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/blue/theme.css +7341 -0
  261. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/blue/theme.scss +12 -0
  262. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/cyan/theme.css +7341 -0
  263. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/cyan/theme.scss +12 -0
  264. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/deeppurple/theme.css +7341 -0
  265. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/deeppurple/theme.scss +12 -0
  266. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/green/theme.css +7341 -0
  267. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/green/theme.scss +12 -0
  268. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/indigo/theme.css +6228 -0
  269. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/indigo/theme.scss +12 -0
  270. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/lime/theme.css +7341 -0
  271. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/lime/theme.scss +12 -0
  272. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/orange/theme.css +7341 -0
  273. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/orange/theme.scss +12 -0
  274. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/pink/theme.css +7341 -0
  275. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/pink/theme.scss +12 -0
  276. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/purple/theme.css +7341 -0
  277. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/purple/theme.scss +12 -0
  278. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/yellow/theme.css +7341 -0
  279. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/yellow/theme.scss +12 -0
  280. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/_extensions.scss +90 -0
  281. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/_variables.scss +870 -0
  282. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/blue/theme.css +7341 -0
  283. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/blue/theme.scss +12 -0
  284. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/cyan/theme.css +7341 -0
  285. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/cyan/theme.scss +12 -0
  286. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/deeppurple/theme.css +7341 -0
  287. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/deeppurple/theme.scss +12 -0
  288. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/green/theme.css +7341 -0
  289. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/green/theme.scss +12 -0
  290. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/indigo/theme.css +7341 -0
  291. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/indigo/theme.scss +12 -0
  292. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/lime/theme.css +7341 -0
  293. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/lime/theme.scss +12 -0
  294. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/orange/theme.css +7341 -0
  295. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/orange/theme.scss +12 -0
  296. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/pink/theme.css +7341 -0
  297. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/pink/theme.scss +12 -0
  298. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/purple/theme.css +7341 -0
  299. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/purple/theme.scss +12 -0
  300. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/yellow/theme.css +7341 -0
  301. package/_template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/yellow/theme.scss +12 -0
  302. package/_template/{{project}}-ihm/src/assets/{{project}}/data/chat.json +124 -0
  303. package/_template/{{project}}-ihm/src/assets/{{project}}/data/countries.json +972 -0
  304. package/_template/{{project}}-ihm/src/assets/{{project}}/data/customers-large.json +3604 -0
  305. package/_template/{{project}}-ihm/src/assets/{{project}}/data/customers-medium.json +804 -0
  306. package/_template/{{project}}-ihm/src/assets/{{project}}/data/customers-small.json +164 -0
  307. package/_template/{{project}}-ihm/src/assets/{{project}}/data/file-management.json +197 -0
  308. package/_template/{{project}}-ihm/src/assets/{{project}}/data/files-lazy.json +25 -0
  309. package/_template/{{project}}-ihm/src/assets/{{project}}/data/files.json +120 -0
  310. package/_template/{{project}}-ihm/src/assets/{{project}}/data/filesystem-lazy.json +20 -0
  311. package/_template/{{project}}-ihm/src/assets/{{project}}/data/filesystem.json +312 -0
  312. package/_template/{{project}}-ihm/src/assets/{{project}}/data/gares.json +6179 -0
  313. package/_template/{{project}}-ihm/src/assets/{{project}}/data/icons.json +8516 -0
  314. package/_template/{{project}}-ihm/src/assets/{{project}}/data/kanban.json +304 -0
  315. package/_template/{{project}}-ihm/src/assets/{{project}}/data/mail.json +365 -0
  316. package/_template/{{project}}-ihm/src/assets/{{project}}/data/members.json +49 -0
  317. package/_template/{{project}}-ihm/src/assets/{{project}}/data/photos.json +94 -0
  318. package/_template/{{project}}-ihm/src/assets/{{project}}/data/products-mixed.json +364 -0
  319. package/_template/{{project}}-ihm/src/assets/{{project}}/data/products-orders-small.json +341 -0
  320. package/_template/{{project}}-ihm/src/assets/{{project}}/data/products-orders.json +833 -0
  321. package/_template/{{project}}-ihm/src/assets/{{project}}/data/products-small.json +124 -0
  322. package/_template/{{project}}-ihm/src/assets/{{project}}/data/products.json +394 -0
  323. package/_template/{{project}}-ihm/src/assets/{{project}}/data/scheduleevents.json +79 -0
  324. package/_template/{{project}}-ihm/src/assets/{{project}}/data/tasks.json +205 -0
  325. package/_template/{{project}}-ihm/src/assets/{{project}}/images/auth/access-denied.svg +103 -0
  326. package/_template/{{project}}-ihm/src/assets/{{project}}/images/auth/error.svg +343 -0
  327. package/_template/{{project}}-ihm/src/assets/{{project}}/styles/badges.css +109 -0
  328. package/_template/{{project}}-ihm/src/assets/{{project}}/styles/badges.scss +109 -0
  329. package/_template/{{project}}-ihm/src/assets/{{project}}/styles/flags/flags.css +1 -0
  330. package/_template/{{project}}-ihm/src/assets/{{project}}/styles/flags/flags_responsive.png +0 -0
  331. package/_template/{{project}}-ihm/src/assets/{{project}}/styles/marep_leaflet.css +4 -0
  332. package/_template/{{project}}-ihm/src/environments/environment.ts +24 -0
  333. package/_template/{{project}}-ihm/src/index.html +28 -0
  334. package/_template/{{project}}-ihm/src/main.ts +13 -0
  335. package/_template/{{project}}-ihm/src/polyfills.ts +64 -0
  336. package/_template/{{project}}-ihm/src/styles.scss +27 -0
  337. package/_template/{{project}}-ihm/src/test.ts +24 -0
  338. package/_template/{{project}}-ihm/src/themes.scss +84 -0
  339. package/_template/{{project}}-ihm/tsconfig.app.json +13 -0
  340. package/_template/{{project}}-ihm/tsconfig.json +36 -0
  341. package/_template/{{project}}-ihm/tsconfig.spec.json +13 -0
  342. package/_template/{{project}}-metier/pom.xml +134 -0
  343. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/ContentMailService.java +18 -0
  344. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/GenericService.java +30 -0
  345. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/GenericServiceImpl.java +62 -0
  346. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/MailService.java +42 -0
  347. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/ProfilService.java +24 -0
  348. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/UserService.java +36 -0
  349. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/impl/ProfilServiceImpl.java +26 -0
  350. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/impl/UserServiceImpl.java +75 -0
  351. package/_template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/security/UserSecurityServiceUtil.java +30 -0
  352. package/_template/{{project}}-metier/src/test/java/fr/cerema/dsi/marep/services/marep/UserServiceImplTest.java +60 -0
  353. package/_template/{{project}}-persistance/pom.xml +72 -0
  354. package/_template/{{project}}-persistance/src/main/java/fr/cerema/dsi/commons/repositories/AbstractDao.java +118 -0
  355. package/_template/{{project}}-persistance/src/main/java/fr/cerema/dsi/commons/repositories/GenericRepository.java +101 -0
  356. package/_template/{{project}}-persistance/src/main/java/fr/cerema/dsi/commons/repositories/IAbstractDao.java +66 -0
  357. package/_template/{{project}}-persistance/src/main/java/fr/cerema/dsi/marep/repositories/marep/ProfilRepository.java +18 -0
  358. package/_template/{{project}}-persistance/src/main/java/fr/cerema/dsi/marep/repositories/marep/UserRepository.java +28 -0
  359. package/_template/{{project}}-presentation/Readme.md +98 -0
  360. package/_template/{{project}}-presentation/pom.xml +258 -0
  361. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/beans/errors/ApiSubError.java +5 -0
  362. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/beans/errors/ApiValidationSubError.java +13 -0
  363. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/beans/errors/JsonApiError.java +308 -0
  364. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/controllers/AbstractErrorHandler.java +67 -0
  365. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/controllers/CustomErrorController.java +57 -0
  366. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/controllers/RestResponseEntityExceptionHandler.java +75 -0
  367. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/auth/jwt/exceptions/InvalidTokenException.java +30 -0
  368. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/exceptions/AuthenticationServiceException.java +30 -0
  369. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/exceptions/NoRoleForUserServiceException.java +29 -0
  370. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/filters/AppCorsFilter.java +45 -0
  371. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/App.java +20 -0
  372. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/AspectJConfiguration.java +58 -0
  373. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/AuthenticationTokenFilter.java +126 -0
  374. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/MailConfig.java +54 -0
  375. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/ResourceServerConfig.java +78 -0
  376. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/WebConfiguration.java +60 -0
  377. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/service/CustomUserDetailsService.java +41 -0
  378. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/service/StaticResourcesWebConfiguration.java +41 -0
  379. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/AccountController.java +59 -0
  380. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/ApiOpenController.java +62 -0
  381. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/HelloWorld.java +11 -0
  382. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/UserController.java +63 -0
  383. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/CommuneDTO.java +19 -0
  384. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/CommuneWithGeoDTO.java +19 -0
  385. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/DepartementDTO.java +19 -0
  386. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/DepartementWithGeoDTO.java +18 -0
  387. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/GareDTO.java +49 -0
  388. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/GenericDTO.java +20 -0
  389. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/ProfilDTO.java +26 -0
  390. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/RegionDTO.java +19 -0
  391. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/RegionWithGeoDTO.java +18 -0
  392. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/UserDTO.java +57 -0
  393. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/UserWithCurrentAuthorityDTO.java +31 -0
  394. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/mapper/UserMapper.java +26 -0
  395. package/_template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/utils/GeometryUtils.java +17 -0
  396. package/_template/{{project}}-presentation/src/main/resources/META-INF/spring.factories +2 -0
  397. package/_template/{{project}}-presentation/src/main/resources/banner.txt +3 -0
  398. package/_template/{{project}}-presentation/src/main/resources/logback-spring.xml +15 -0
  399. package/_template/{{project}}-presentation/src/main/resources-filtered/application-dev.yml +143 -0
  400. package/_template/{{project}}-presentation/src/main/resources-filtered/application.yml +131 -0
  401. package/_template/{{project}}-presentation/src/test/java/fr/cerema/dsi/marep/service/IntegrationTest.java +18 -0
  402. package/_template/{{project}}-presentation/src/test/java/fr/cerema/dsi/marep/service/UserServiceImplIT.java +43 -0
  403. package/_template/{{project}}-presentation/src/test/resources/application.yml +41 -0
  404. package/_template/{{project}}-presentation/src/test/resources/db.migration/Readme.md +6 -0
  405. package/_template/{{project}}-transverse/pom.xml +0 -0
  406. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/entities/GenericEntity.java +43 -0
  407. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/BadRequestException.java +43 -0
  408. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/EntityNotFoundException.java +9 -0
  409. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/GenericRepositoryException.java +29 -0
  410. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/GenericServiceException.java +29 -0
  411. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/UserNotFoundException.java +11 -0
  412. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/UtilsException.java +13 -0
  413. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Commune.java +37 -0
  414. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Departement.java +37 -0
  415. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Gare.java +48 -0
  416. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Profil.java +53 -0
  417. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Region.java +30 -0
  418. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/User.java +79 -0
  419. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/enums/Role.java +8 -0
  420. package/_template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/exceptions/JwtConfMalformedException.java +9 -0
  421. package/cli.js +156 -0
  422. package/package.json +23 -0
  423. package/template/.idea/compiler.xml +28 -0
  424. package/template/.idea/encodings.xml +13 -0
  425. package/template/.idea/jarRepositories.xml +30 -0
  426. package/template/.idea/jpa-buddy.xml +7 -0
  427. package/template/.idea/misc.xml +15 -0
  428. package/template/README.md +118 -0
  429. package/template/angular.json +139 -0
  430. package/template/docker/data/db/.gitkeep +0 -0
  431. package/template/docker/data/pgadmin/.gitkeep +0 -0
  432. package/template/docker/docker-compose.yml +22 -0
  433. package/template/mvnw +310 -0
  434. package/template/mvnw.cmd +182 -0
  435. package/template/package-lock.json +5 -0
  436. package/template/package.json +77 -0
  437. package/template/pom.xml +234 -0
  438. package/template/yarn.lock +7005 -0
  439. package/template/{{project}}-data/Readme.md +27 -0
  440. package/template/{{project}}-data/pom.xml +46 -0
  441. package/template/{{project}}-data/src/main/resources/db/dev/Readme.md +5 -0
  442. package/template/{{project}}-data/src/main/resources/db/dev/V202206021513__dev-data.sql +5 -0
  443. package/template/{{project}}-data/src/main/resources/db/migration/Readme.md +38 -0
  444. package/template/{{project}}-data/src/main/resources/db/migration/V202110140819__Init.sql +23 -0
  445. package/template/{{project}}-data/src/main/resources/flyway.properties +10 -0
  446. package/template/{{project}}-ihm/karma.conf.js +65 -0
  447. package/template/{{project}}-ihm/pom.xml +192 -0
  448. package/template/{{project}}-ihm/src/app/app-routing.module.ts +35 -0
  449. package/template/{{project}}-ihm/src/app/app.component.css +40 -0
  450. package/template/{{project}}-ihm/src/app/app.component.html +1 -0
  451. package/template/{{project}}-ihm/src/app/app.component.spec.ts +25 -0
  452. package/template/{{project}}-ihm/src/app/app.component.ts +60 -0
  453. package/template/{{project}}-ihm/src/app/app.module.ts +104 -0
  454. package/template/{{project}}-ihm/src/app/layout/api/menuchangeevent.ts +4 -0
  455. package/template/{{project}}-ihm/src/app/layout/api/tabcloseevent.ts +6 -0
  456. package/template/{{project}}-ihm/src/app/layout/app.breadcrumb.component.html +14 -0
  457. package/template/{{project}}-ihm/src/app/layout/app.breadcrumb.component.ts +48 -0
  458. package/template/{{project}}-ihm/src/app/layout/app.footer.component.html +20 -0
  459. package/template/{{project}}-ihm/src/app/layout/app.footer.component.ts +22 -0
  460. package/template/{{project}}-ihm/src/app/layout/app.menu.component.html +3 -0
  461. package/template/{{project}}-ihm/src/app/layout/app.menu.component.ts +30 -0
  462. package/template/{{project}}-ihm/src/app/layout/app.menu.service.ts +23 -0
  463. package/template/{{project}}-ihm/src/app/layout/app.menuitem.component.ts +213 -0
  464. package/template/{{project}}-ihm/src/app/layout/app.sidebar.component.html +5 -0
  465. package/template/{{project}}-ihm/src/app/layout/app.sidebar.component.ts +13 -0
  466. package/template/{{project}}-ihm/src/app/layout/app.topbar.component.html +78 -0
  467. package/template/{{project}}-ihm/src/app/layout/app.topbar.component.ts +72 -0
  468. package/template/{{project}}-ihm/src/app/layout/config/app.config.component.html +85 -0
  469. package/template/{{project}}-ihm/src/app/layout/config/app.config.component.ts +230 -0
  470. package/template/{{project}}-ihm/src/app/layout/config/config.module.ts +27 -0
  471. package/template/{{project}}-ihm/src/app/layout/main/main.component.html +15 -0
  472. package/template/{{project}}-ihm/src/app/layout/main/main.component.spec.ts +29 -0
  473. package/template/{{project}}-ihm/src/app/layout/main/main.component.ts +156 -0
  474. package/template/{{project}}-ihm/src/app/layout/main-routing.module.ts +32 -0
  475. package/template/{{project}}-ihm/src/app/layout/main.module.ts +45 -0
  476. package/template/{{project}}-ihm/src/app/layout/service/app.layout.service.ts +124 -0
  477. package/template/{{project}}-ihm/src/app/shared/components/code/code.component.ts +22 -0
  478. package/template/{{project}}-ihm/src/app/shared/components/indic/indic.component.html +8 -0
  479. package/template/{{project}}-ihm/src/app/shared/components/indic/indic.component.scss +0 -0
  480. package/template/{{project}}-ihm/src/app/shared/components/indic/indic.component.spec.ts +23 -0
  481. package/template/{{project}}-ihm/src/app/shared/components/indic/indic.component.ts +61 -0
  482. package/template/{{project}}-ihm/src/app/shared/constants/dateFormat.constants.ts +1 -0
  483. package/template/{{project}}-ihm/src/app/shared/constants/mocks/user-mocks.constants.ts +36 -0
  484. package/template/{{project}}-ihm/src/app/shared/constants/pagination.constants.ts +1 -0
  485. package/template/{{project}}-ihm/src/app/shared/core/config/application-config.service.spec.ts +16 -0
  486. package/template/{{project}}-ihm/src/app/shared/core/config/application-config.service.ts +46 -0
  487. package/template/{{project}}-ihm/src/app/shared/core/guard/can-modify.guard.spec.ts +98 -0
  488. package/template/{{project}}-ihm/src/app/shared/core/guard/can-modify.guard.ts +36 -0
  489. package/template/{{project}}-ihm/src/app/shared/core/guard/login.guard.spec.ts +21 -0
  490. package/template/{{project}}-ihm/src/app/shared/core/guard/login.guard.ts +23 -0
  491. package/template/{{project}}-ihm/src/app/shared/core/interceptor/handle-req.interceptor.ts +31 -0
  492. package/template/{{project}}-ihm/src/app/shared/core/interceptor/index.ts +10 -0
  493. package/template/{{project}}-ihm/src/app/shared/core/request/pageable.model.ts +5 -0
  494. package/template/{{project}}-ihm/src/app/shared/core/request/request-util.ts +21 -0
  495. package/template/{{project}}-ihm/src/app/shared/core/resolver/accueil.resolver.spec.ts +21 -0
  496. package/template/{{project}}-ihm/src/app/shared/core/resolver/accueil.resolver.ts +18 -0
  497. package/template/{{project}}-ihm/src/app/shared/core/storage/MyLocalStorageService.ts +23 -0
  498. package/template/{{project}}-ihm/src/app/shared/core/storage/MyStorageService.ts +17 -0
  499. package/template/{{project}}-ihm/src/app/shared/entities/claims.model.ts +9 -0
  500. package/template/{{project}}-ihm/src/app/shared/entities/user.model.ts +9 -0
  501. package/template/{{project}}-ihm/src/app/shared/enums/roles.enums.ts +6 -0
  502. package/template/{{project}}-ihm/src/app/shared/service/user.service.spec.ts +64 -0
  503. package/template/{{project}}-ihm/src/app/shared/service/user.service.ts +46 -0
  504. package/template/{{project}}-ihm/src/app/shared/shared.module.ts +15 -0
  505. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied-routing.module.ts +12 -0
  506. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied.component.html +11 -0
  507. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied.component.ts +7 -0
  508. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/accessdenied/accessdenied.module.ts +18 -0
  509. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/auth-routing.module.ts +14 -0
  510. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/auth.module.ts +13 -0
  511. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error-routing.module.ts +12 -0
  512. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error.component.html +10 -0
  513. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error.component.ts +7 -0
  514. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/error/error.module.ts +18 -0
  515. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login-routing.module.ts +12 -0
  516. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login.component.html +15 -0
  517. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login.component.ts +46 -0
  518. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/login/login.module.ts +22 -0
  519. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.html +8 -0
  520. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.scss +21 -0
  521. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.spec.ts +26 -0
  522. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout/logout.component.ts +15 -0
  523. package/template/{{project}}-ihm/src/app/{{project}}/components/auth/logout/logout.module.ts +27 -0
  524. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.html +132 -0
  525. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.scss +0 -0
  526. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.spec.ts +23 -0
  527. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/architecture/architecture.component.ts +86 -0
  528. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.html +3 -0
  529. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.scss +0 -0
  530. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.spec.ts +23 -0
  531. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/demarrer/demarrer.component.ts +15 -0
  532. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.html +3 -0
  533. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.scss +0 -0
  534. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.spec.ts +23 -0
  535. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/deploiement/deploiement.component.ts +15 -0
  536. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/documentation-routing.module.ts +25 -0
  537. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/documentation.module.ts +39 -0
  538. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.html +3 -0
  539. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.scss +0 -0
  540. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.spec.ts +23 -0
  541. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/persitance/persitance.component.ts +15 -0
  542. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.html +117 -0
  543. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.scss +0 -0
  544. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.spec.ts +23 -0
  545. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/portail/portail.component.ts +25 -0
  546. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.html +3 -0
  547. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.scss +0 -0
  548. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.spec.ts +23 -0
  549. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/securite/securite.component.ts +15 -0
  550. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.html +3 -0
  551. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.scss +0 -0
  552. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.spec.ts +23 -0
  553. package/template/{{project}}-ihm/src/app/{{project}}/components/documentation/tests/tests.component.ts +15 -0
  554. package/template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound-routing.module.ts +12 -0
  555. package/template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound.component.html +42 -0
  556. package/template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound.component.ts +7 -0
  557. package/template/{{project}}-ihm/src/app/{{project}}/components/notfound/notfound.module.ts +18 -0
  558. package/template/{{project}}-ihm/src/assets/.gitkeep +0 -0
  559. package/template/{{project}}-ihm/src/assets/favicon.ico +0 -0
  560. package/template/{{project}}-ihm/src/assets/i18n/fr.json +33 -0
  561. package/template/{{project}}-ihm/src/assets/images/angular.png +0 -0
  562. package/template/{{project}}-ihm/src/assets/images/orionavatar.png +0 -0
  563. package/template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-300.woff +0 -0
  564. package/template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-300.woff2 +0 -0
  565. package/template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-700.woff +0 -0
  566. package/template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-700.woff2 +0 -0
  567. package/template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-regular.woff +0 -0
  568. package/template/{{project}}-ihm/src/assets/layout/fonts/lato-v17-latin-ext_latin-regular.woff2 +0 -0
  569. package/template/{{project}}-ihm/src/assets/layout/images/LogoCerema.svg +226 -0
  570. package/template/{{project}}-ihm/src/assets/layout/images/LogoCerema_horizontal.svg +167 -0
  571. package/template/{{project}}-ihm/src/assets/layout/images/SpinnerCerema.svg +5 -0
  572. package/template/{{project}}-ihm/src/assets/layout/images/avatar.png +0 -0
  573. package/template/{{project}}-ihm/src/assets/layout/images/logo-dark.png +0 -0
  574. package/template/{{project}}-ihm/src/assets/layout/images/logo-light.png +0 -0
  575. package/template/{{project}}-ihm/src/assets/layout/images/user.png +0 -0
  576. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_breadcrumb.scss +18 -0
  577. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_config.scss +33 -0
  578. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_content.scss +20 -0
  579. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_fonts.scss +27 -0
  580. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_footer.scss +25 -0
  581. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_main.scss +29 -0
  582. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_responsive.scss +159 -0
  583. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_sidebar.scss +2 -0
  584. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_topbar.scss +250 -0
  585. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_typography.scss +63 -0
  586. package/template/{{project}}-ihm/src/assets/layout/styles/layout/_utils.scss +19 -0
  587. package/template/{{project}}-ihm/src/assets/layout/styles/layout/layout.scss +15 -0
  588. package/template/{{project}}-ihm/src/assets/layout/styles/layout/preloading.css +64 -0
  589. package/template/{{project}}-ihm/src/assets/layout/styles/layout/preloading.scss +79 -0
  590. package/template/{{project}}-ihm/src/assets/layout/styles/layout/sidebar/_sidebar_slim.scss +131 -0
  591. package/template/{{project}}-ihm/src/assets/layout/styles/layout/sidebar/_sidebar_vertical.scss +133 -0
  592. package/template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_dark.scss +10 -0
  593. package/template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_light.scss +10 -0
  594. package/template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_primary.scss +10 -0
  595. package/template/{{project}}-ihm/src/assets/layout/styles/layout/theme/_themes.scss +3 -0
  596. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_colors.scss +17 -0
  597. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_common.scss +68 -0
  598. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_components.scss +102 -0
  599. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/_mixins.scss +203 -0
  600. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/button/_button.scss +560 -0
  601. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/button/_speeddial.scss +81 -0
  602. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/button/_splitbutton.scss +381 -0
  603. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_carousel.scss +37 -0
  604. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_datatable.scss +278 -0
  605. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_dataview.scss +55 -0
  606. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_filter.scss +138 -0
  607. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_fullcalendar.scss +329 -0
  608. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_orderlist.scss +103 -0
  609. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_organizationchart.scss +50 -0
  610. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_paginator.scss +92 -0
  611. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_picklist.scss +103 -0
  612. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_timeline.scss +38 -0
  613. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_tree.scss +144 -0
  614. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_treetable.scss +246 -0
  615. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/data/_virtualscroller.scss +28 -0
  616. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/file/_fileupload.scss +58 -0
  617. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_autocomplete.scss +117 -0
  618. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_calendar.scss +263 -0
  619. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_cascadeselect.scss +109 -0
  620. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_checkbox.scss +85 -0
  621. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_chips.scss +54 -0
  622. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_colorpicker.scss +19 -0
  623. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_dropdown.scss +135 -0
  624. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_editor.scss +122 -0
  625. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputgroup.scss +75 -0
  626. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputmask.scss +16 -0
  627. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputnumber.scss +28 -0
  628. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputswitch.scss +60 -0
  629. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_inputtext.scss +99 -0
  630. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_listbox.scss +82 -0
  631. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_multiselect.scss +171 -0
  632. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_password.scss +53 -0
  633. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_radiobutton.scss +78 -0
  634. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_rating.scss +48 -0
  635. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_selectbutton.scss +50 -0
  636. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_slider.scss +71 -0
  637. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_togglebutton.scss +48 -0
  638. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/input/_treeselect.scss +139 -0
  639. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_breadcrumb.scss +42 -0
  640. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_contextmenu.scss +56 -0
  641. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_dock.scss +86 -0
  642. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_megamenu.scss +106 -0
  643. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_menu.scss +45 -0
  644. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_menubar.scss +183 -0
  645. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_panelmenu.scss +140 -0
  646. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_slidemenu.scss +59 -0
  647. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_steps.scss +56 -0
  648. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_tabmenu.scss +69 -0
  649. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/menu/_tieredmenu.scss +60 -0
  650. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/messages/_inlinemessage.scss +64 -0
  651. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/messages/_message.scss +102 -0
  652. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/messages/_toast.scss +95 -0
  653. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_avatar.scss +30 -0
  654. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_badge.scss +48 -0
  655. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_blockui.scss +0 -0
  656. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_chip.scss +38 -0
  657. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_inplace.scss +17 -0
  658. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_progressbar.scss +17 -0
  659. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_scrolltop.scss +20 -0
  660. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_skeleton.scss +8 -0
  661. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_tag.scss +35 -0
  662. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/misc/_terminal.scss +11 -0
  663. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/multimedia/_galleria.scss +139 -0
  664. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/multimedia/_image.scss +44 -0
  665. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_confirmpopup.scss +65 -0
  666. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_dialog.scss +64 -0
  667. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_overlaypanel.scss +62 -0
  668. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_sidebar.scss +23 -0
  669. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/overlay/_tooltip.scss +33 -0
  670. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_accordion.scss +119 -0
  671. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_card.scss +30 -0
  672. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_divider.scss +31 -0
  673. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_fieldset.scss +47 -0
  674. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_panel.scss +58 -0
  675. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_scrollpanel.scss +6 -0
  676. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_splitter.scss +19 -0
  677. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_tabview.scss +78 -0
  678. package/template/{{project}}-ihm/src/assets/layout/styles/theme/designer/components/panel/_toolbar.scss +10 -0
  679. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/_extensions.scss +90 -0
  680. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/_variables.scss +867 -0
  681. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/blue/theme.css +7341 -0
  682. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/blue/theme.scss +12 -0
  683. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/cyan/theme.css +7341 -0
  684. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/cyan/theme.scss +12 -0
  685. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/deeppurple/theme.css +7341 -0
  686. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/deeppurple/theme.scss +12 -0
  687. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/green/theme.css +7341 -0
  688. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/green/theme.scss +12 -0
  689. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/indigo/theme.css +6228 -0
  690. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/indigo/theme.scss +12 -0
  691. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/lime/theme.css +7341 -0
  692. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/lime/theme.scss +12 -0
  693. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/orange/theme.css +7341 -0
  694. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/orange/theme.scss +12 -0
  695. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/pink/theme.css +7341 -0
  696. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/pink/theme.scss +12 -0
  697. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/purple/theme.css +7341 -0
  698. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/purple/theme.scss +12 -0
  699. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/yellow/theme.css +7341 -0
  700. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-dark/yellow/theme.scss +12 -0
  701. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/_extensions.scss +90 -0
  702. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/_variables.scss +870 -0
  703. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/blue/theme.css +7341 -0
  704. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/blue/theme.scss +12 -0
  705. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/cyan/theme.css +7341 -0
  706. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/cyan/theme.scss +12 -0
  707. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/deeppurple/theme.css +7341 -0
  708. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/deeppurple/theme.scss +12 -0
  709. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/green/theme.css +7341 -0
  710. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/green/theme.scss +12 -0
  711. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/indigo/theme.css +7341 -0
  712. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/indigo/theme.scss +12 -0
  713. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/lime/theme.css +7341 -0
  714. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/lime/theme.scss +12 -0
  715. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/orange/theme.css +7341 -0
  716. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/orange/theme.scss +12 -0
  717. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/pink/theme.css +7341 -0
  718. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/pink/theme.scss +12 -0
  719. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/purple/theme.css +7341 -0
  720. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/purple/theme.scss +12 -0
  721. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/yellow/theme.css +7341 -0
  722. package/template/{{project}}-ihm/src/assets/layout/styles/theme/theme-light/yellow/theme.scss +12 -0
  723. package/template/{{project}}-ihm/src/assets/{{project}}/data/chat.json +124 -0
  724. package/template/{{project}}-ihm/src/assets/{{project}}/data/countries.json +972 -0
  725. package/template/{{project}}-ihm/src/assets/{{project}}/data/customers-large.json +3604 -0
  726. package/template/{{project}}-ihm/src/assets/{{project}}/data/customers-medium.json +804 -0
  727. package/template/{{project}}-ihm/src/assets/{{project}}/data/customers-small.json +164 -0
  728. package/template/{{project}}-ihm/src/assets/{{project}}/data/file-management.json +197 -0
  729. package/template/{{project}}-ihm/src/assets/{{project}}/data/files-lazy.json +25 -0
  730. package/template/{{project}}-ihm/src/assets/{{project}}/data/files.json +120 -0
  731. package/template/{{project}}-ihm/src/assets/{{project}}/data/filesystem-lazy.json +20 -0
  732. package/template/{{project}}-ihm/src/assets/{{project}}/data/filesystem.json +312 -0
  733. package/template/{{project}}-ihm/src/assets/{{project}}/data/gares.json +6179 -0
  734. package/template/{{project}}-ihm/src/assets/{{project}}/data/icons.json +8516 -0
  735. package/template/{{project}}-ihm/src/assets/{{project}}/data/kanban.json +304 -0
  736. package/template/{{project}}-ihm/src/assets/{{project}}/data/mail.json +365 -0
  737. package/template/{{project}}-ihm/src/assets/{{project}}/data/members.json +49 -0
  738. package/template/{{project}}-ihm/src/assets/{{project}}/data/photos.json +94 -0
  739. package/template/{{project}}-ihm/src/assets/{{project}}/data/products-mixed.json +364 -0
  740. package/template/{{project}}-ihm/src/assets/{{project}}/data/products-orders-small.json +341 -0
  741. package/template/{{project}}-ihm/src/assets/{{project}}/data/products-orders.json +833 -0
  742. package/template/{{project}}-ihm/src/assets/{{project}}/data/products-small.json +124 -0
  743. package/template/{{project}}-ihm/src/assets/{{project}}/data/products.json +394 -0
  744. package/template/{{project}}-ihm/src/assets/{{project}}/data/scheduleevents.json +79 -0
  745. package/template/{{project}}-ihm/src/assets/{{project}}/data/tasks.json +205 -0
  746. package/template/{{project}}-ihm/src/assets/{{project}}/images/auth/access-denied.svg +103 -0
  747. package/template/{{project}}-ihm/src/assets/{{project}}/images/auth/error.svg +343 -0
  748. package/template/{{project}}-ihm/src/assets/{{project}}/styles/badges.css +109 -0
  749. package/template/{{project}}-ihm/src/assets/{{project}}/styles/badges.scss +109 -0
  750. package/template/{{project}}-ihm/src/assets/{{project}}/styles/flags/flags.css +1 -0
  751. package/template/{{project}}-ihm/src/assets/{{project}}/styles/flags/flags_responsive.png +0 -0
  752. package/template/{{project}}-ihm/src/assets/{{project}}/styles/marep_leaflet.css +4 -0
  753. package/template/{{project}}-ihm/src/environments/environment.ts +24 -0
  754. package/template/{{project}}-ihm/src/index.html +28 -0
  755. package/template/{{project}}-ihm/src/main.ts +13 -0
  756. package/template/{{project}}-ihm/src/polyfills.ts +64 -0
  757. package/template/{{project}}-ihm/src/styles.scss +27 -0
  758. package/template/{{project}}-ihm/src/test.ts +24 -0
  759. package/template/{{project}}-ihm/src/themes.scss +84 -0
  760. package/template/{{project}}-ihm/tsconfig.app.json +13 -0
  761. package/template/{{project}}-ihm/tsconfig.json +36 -0
  762. package/template/{{project}}-ihm/tsconfig.spec.json +13 -0
  763. package/template/{{project}}-metier/pom.xml +134 -0
  764. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/ContentMailService.java +18 -0
  765. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/GenericService.java +30 -0
  766. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/GenericServiceImpl.java +62 -0
  767. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/commons/services/MailService.java +42 -0
  768. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/ProfilService.java +24 -0
  769. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/UserService.java +36 -0
  770. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/impl/ProfilServiceImpl.java +26 -0
  771. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/marep/impl/UserServiceImpl.java +75 -0
  772. package/template/{{project}}-metier/src/main/java/fr/cerema/dsi/marep/services/security/UserSecurityServiceUtil.java +30 -0
  773. package/template/{{project}}-metier/src/test/java/fr/cerema/dsi/marep/services/marep/UserServiceImplTest.java +60 -0
  774. package/template/{{project}}-persistance/pom.xml +72 -0
  775. package/template/{{project}}-persistance/src/main/java/fr/cerema/dsi/commons/repositories/AbstractDao.java +118 -0
  776. package/template/{{project}}-persistance/src/main/java/fr/cerema/dsi/commons/repositories/GenericRepository.java +101 -0
  777. package/template/{{project}}-persistance/src/main/java/fr/cerema/dsi/commons/repositories/IAbstractDao.java +66 -0
  778. package/template/{{project}}-persistance/src/main/java/fr/cerema/dsi/marep/repositories/marep/ProfilRepository.java +18 -0
  779. package/template/{{project}}-persistance/src/main/java/fr/cerema/dsi/marep/repositories/marep/UserRepository.java +28 -0
  780. package/template/{{project}}-presentation/Readme.md +98 -0
  781. package/template/{{project}}-presentation/pom.xml +258 -0
  782. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/beans/errors/ApiSubError.java +5 -0
  783. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/beans/errors/ApiValidationSubError.java +13 -0
  784. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/beans/errors/JsonApiError.java +308 -0
  785. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/controllers/AbstractErrorHandler.java +67 -0
  786. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/controllers/CustomErrorController.java +57 -0
  787. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/controllers/RestResponseEntityExceptionHandler.java +75 -0
  788. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/auth/jwt/exceptions/InvalidTokenException.java +30 -0
  789. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/exceptions/AuthenticationServiceException.java +30 -0
  790. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/exceptions/NoRoleForUserServiceException.java +29 -0
  791. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/commons/security/filters/AppCorsFilter.java +45 -0
  792. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/App.java +20 -0
  793. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/AspectJConfiguration.java +58 -0
  794. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/AuthenticationTokenFilter.java +126 -0
  795. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/MailConfig.java +54 -0
  796. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/ResourceServerConfig.java +78 -0
  797. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/WebConfiguration.java +60 -0
  798. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/service/CustomUserDetailsService.java +41 -0
  799. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/config/service/StaticResourcesWebConfiguration.java +41 -0
  800. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/AccountController.java +59 -0
  801. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/ApiOpenController.java +62 -0
  802. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/HelloWorld.java +11 -0
  803. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/controllers/UserController.java +63 -0
  804. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/CommuneDTO.java +19 -0
  805. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/CommuneWithGeoDTO.java +19 -0
  806. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/DepartementDTO.java +19 -0
  807. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/DepartementWithGeoDTO.java +18 -0
  808. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/GareDTO.java +49 -0
  809. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/GenericDTO.java +20 -0
  810. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/ProfilDTO.java +26 -0
  811. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/RegionDTO.java +19 -0
  812. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/RegionWithGeoDTO.java +18 -0
  813. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/UserDTO.java +57 -0
  814. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/dto/UserWithCurrentAuthorityDTO.java +31 -0
  815. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/mapper/UserMapper.java +26 -0
  816. package/template/{{project}}-presentation/src/main/java/fr/cerema/dsi/marep/utils/GeometryUtils.java +17 -0
  817. package/template/{{project}}-presentation/src/main/resources/META-INF/spring.factories +2 -0
  818. package/template/{{project}}-presentation/src/main/resources/banner.txt +3 -0
  819. package/template/{{project}}-presentation/src/main/resources/logback-spring.xml +15 -0
  820. package/template/{{project}}-presentation/src/main/resources-filtered/application-dev.yml +143 -0
  821. package/template/{{project}}-presentation/src/main/resources-filtered/application.yml +131 -0
  822. package/template/{{project}}-presentation/src/test/java/fr/cerema/dsi/marep/service/IntegrationTest.java +18 -0
  823. package/template/{{project}}-presentation/src/test/java/fr/cerema/dsi/marep/service/UserServiceImplIT.java +43 -0
  824. package/template/{{project}}-presentation/src/test/resources/application.yml +41 -0
  825. package/template/{{project}}-presentation/src/test/resources/db.migration/Readme.md +6 -0
  826. package/template/{{project}}-transverse/pom.xml +33 -0
  827. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/entities/GenericEntity.java +43 -0
  828. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/BadRequestException.java +43 -0
  829. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/EntityNotFoundException.java +9 -0
  830. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/GenericRepositoryException.java +29 -0
  831. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/GenericServiceException.java +29 -0
  832. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/UserNotFoundException.java +11 -0
  833. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/UtilsException.java +13 -0
  834. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Commune.java +37 -0
  835. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Departement.java +37 -0
  836. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Gare.java +48 -0
  837. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Profil.java +53 -0
  838. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/Region.java +30 -0
  839. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/entities/User.java +79 -0
  840. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/enums/Role.java +8 -0
  841. package/template/{{project}}-transverse/src/main/java/fr/cerema/dsi/marep/exceptions/JwtConfMalformedException.java +9 -0
  842. package/template.zip +0 -0
@@ -0,0 +1,17 @@
1
+ import {Injectable} from '@angular/core';
2
+ import {OAuthStorage} from 'angular-oauth2-oidc';
3
+
4
+ @Injectable()
5
+ export class MyStorageService implements OAuthStorage {
6
+ getItem(key: string): string | null {
7
+ return sessionStorage.getItem(key);
8
+ }
9
+
10
+ removeItem(key: string): void {
11
+ sessionStorage.removeItem(key);
12
+ }
13
+
14
+ setItem(key: string, data: string): void {
15
+ sessionStorage.setItem(key, data);
16
+ }
17
+ }
@@ -0,0 +1,9 @@
1
+ export interface Claims {
2
+ name: string;
3
+ preferred_username: string;
4
+ department: string;
5
+ given_name: string;
6
+ family_name: string;
7
+ email: string;
8
+ adminDisplayName: string;
9
+ }
@@ -0,0 +1,9 @@
1
+ export interface User {
2
+ email: string;
3
+ nom: string;
4
+ prenom: string;
5
+ id: number;
6
+ idDirectionCourante: number;
7
+ roleActifList: string[];
8
+ nbDirections: number;
9
+ }
@@ -0,0 +1,6 @@
1
+ export enum Roles {
2
+ Admin{{projectID}} = 'ADMIN_{{projectUpper}}',
3
+ AdminSi = 'ADMIN_SI',
4
+ Operateur = 'OPERATEUR',
5
+ Consultant = 'CONSULTANT',
6
+ }
@@ -0,0 +1,64 @@
1
+ import {TestBed} from '@angular/core/testing';
2
+
3
+ import {UserService} from './user.service';
4
+ import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
5
+ import {User} from '../entities/user.model';
6
+ import {Roles} from '../enums/roles.enums';
7
+ import {mockedAdmin{{projectID}}List, mockedUser} from '../constants/mocks/user-mocks.constants';
8
+
9
+ describe('UserService', () => {
10
+ let service: UserService;
11
+ let httpMock: HttpTestingController;
12
+ let resultat: User | null;
13
+
14
+ beforeEach(() => {
15
+ TestBed.configureTestingModule({
16
+ imports: [HttpClientTestingModule],
17
+ });
18
+ service = TestBed.inject(UserService);
19
+ httpMock = TestBed.inject(HttpTestingController);
20
+ });
21
+
22
+ it('should be created', () => {
23
+ expect(service).toBeTruthy();
24
+ });
25
+
26
+ it('should get current user', () => {
27
+ const valeurAttendue: User = {
28
+ nbDirections: 0,
29
+ email: '',
30
+ id: 0,
31
+ idDirectionCourante: 0,
32
+ roleActifList: [],
33
+ };
34
+ service.getCurrentUser().subscribe(res => {
35
+ resultat = res.body;
36
+ });
37
+ const testRequete = httpMock.expectOne({ method: 'GET' });
38
+ testRequete.flush(valeurAttendue);
39
+ expect(resultat).toEqual(valeurAttendue);
40
+ });
41
+
42
+ it('should return true when calling userHasRole with Admin{{projectID}}', () => {
43
+ service.currentUser = mockedUser;
44
+ const resultat = service.userHasRole(Roles.Admin{{projectID}});
45
+ expect(resultat).toBeTrue();
46
+ });
47
+
48
+ it('should return false when calling userHasRole with Consultant', () => {
49
+ service.currentUser = mockedUser;
50
+ const resultat = service.userHasRole(Roles.Consultant);
51
+ expect(resultat).toBeFalse();
52
+ });
53
+
54
+ it('should return all {{project}} admin of the active direction', () => {
55
+ let result: User[] = [];
56
+ const valeurAttendue = mockedAdmin{{projectID}}List;
57
+ service.getAllAdmin{{projectID}}().subscribe(res => {
58
+ result = res;
59
+ });
60
+ const testRequete = httpMock.expectOne({ method: 'GET' });
61
+ testRequete.flush(valeurAttendue);
62
+ expect(result).toEqual(valeurAttendue);
63
+ });
64
+ });
@@ -0,0 +1,46 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { HttpClient, HttpResponse } from '@angular/common/http';
3
+ import { Observable } from 'rxjs';
4
+ import { User } from '../entities/user.model';
5
+ import { Roles } from '../enums/roles.enums';
6
+ import { ApplicationConfigService } from '../core/config/application-config.service';
7
+ import { Claims } from "../entities/claims.model";
8
+
9
+ @Injectable({
10
+ providedIn: 'root',
11
+ })
12
+ export class UserService {
13
+ get currentUser(): User {
14
+ return this._currentUser;
15
+ }
16
+
17
+ set currentUser(value: User) {
18
+ this._currentUser = value;
19
+ }
20
+
21
+ private _currentUser!: User;
22
+
23
+ constructor(private httpClient: HttpClient, private applicationConfigService: ApplicationConfigService) {}
24
+
25
+ getCurrentUser(): Observable<HttpResponse<User>> {
26
+ const url = '/user';
27
+ return this.httpClient.get<User>(this.applicationConfigService.getEndpointFor(url), { observe: 'response' });
28
+ }
29
+
30
+ userHasRole(...roles: Roles[]): boolean {
31
+ return roles.some(role => this.currentUser.roleActifList.indexOf(role) >= 0);
32
+ }
33
+
34
+ getAllAdmin{{projectID}}(): Observable<User[]> {
35
+ return this.httpClient.get<User[]>(this.applicationConfigService.getEndpointFor('/users/admin-{{project}}'));
36
+ }
37
+
38
+ getAllAdmin{{projectID}}WithoutAuthentication(): Observable<User[]> {
39
+ return this.httpClient.get<User[]>(this.applicationConfigService.getEndpointForApiOpen('/users/admin-{{project}}'));
40
+ }
41
+
42
+ addInfoFromClaims(identityClaims: Claims) {
43
+ this._currentUser.nom = identityClaims.family_name;
44
+ this._currentUser.prenom = identityClaims.given_name;
45
+ }
46
+ }
@@ -0,0 +1,15 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { IndicComponent } from './components/indic/indic.component';
4
+
5
+ @NgModule({
6
+ declarations: [
7
+ IndicComponent
8
+ ],
9
+ imports: [CommonModule],
10
+ exports: [
11
+ IndicComponent
12
+ ],
13
+ })
14
+ export class SharedModule {
15
+ }
@@ -0,0 +1,12 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ import { AccessdeniedComponent } from './accessdenied.component';
4
+
5
+ @NgModule({
6
+ imports: [RouterModule.forChild([
7
+ {path: '', component: AccessdeniedComponent}
8
+ ])],
9
+ exports: [RouterModule]
10
+ })
11
+ export class AccessdeniedRoutingModule {
12
+ }
@@ -0,0 +1,11 @@
1
+ <div class="surface-ground h-screen w-screen flex align-items-center justify-content-center">
2
+ <div class="surface-card py-7 px-5 sm:px-7 shadow-2 flex flex-column w-11 sm:w-30rem" style="border-radius:14px">
3
+ <h1 class="font-bold text-2xl mt-0 mb-2">ACCESS DENIED</h1>
4
+ <p class="text-color-secondary mb-4">You are not authorized to access this resource..</p>
5
+ <img src="../../../../../assets/{{project}}/images/auth/access-denied.svg" alt="access-denied"
6
+ class="mb-4 align-self-center">
7
+ <button [routerLink]="['/']" pButton pRipple label="Go to Dashboard"></button>
8
+ </div>
9
+ </div>
10
+
11
+ <app-config [minimal]="true"></app-config>
@@ -0,0 +1,7 @@
1
+ import { Component } from '@angular/core';
2
+
3
+ @Component({
4
+ templateUrl: './accessdenied.component.html'
5
+ })
6
+ export class AccessdeniedComponent {
7
+ }
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AccessdeniedRoutingModule } from './accessdenied-routing.module';
4
+ import { AccessdeniedComponent } from './accessdenied.component'
5
+ import { ButtonModule } from 'primeng/button';
6
+ import { AppConfigModule } from 'src/app/layout/config/config.module';
7
+
8
+ @NgModule({
9
+ imports: [
10
+ CommonModule,
11
+ AccessdeniedRoutingModule,
12
+ ButtonModule,
13
+ AppConfigModule
14
+ ],
15
+ declarations: [AccessdeniedComponent]
16
+ })
17
+ export class AccessdeniedModule {
18
+ }
@@ -0,0 +1,14 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+
4
+ @NgModule({
5
+ imports: [RouterModule.forChild([
6
+ {path: 'error', loadChildren: () => import('./error/error.module').then(m => m.ErrorModule)},
7
+ {path: 'access', loadChildren: () => import('./accessdenied/accessdenied.module').then(m => m.AccessdeniedModule)},
8
+ {path: 'login', loadChildren: () => import('./login/login.module').then(m => m.LoginModule)},
9
+ {path: '**', redirectTo: '/notfound'}
10
+ ])],
11
+ exports: [RouterModule]
12
+ })
13
+ export class AuthRoutingModule {
14
+ }
@@ -0,0 +1,13 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AuthRoutingModule } from './auth-routing.module';
4
+
5
+ @NgModule({
6
+ declarations: [],
7
+ imports: [
8
+ CommonModule,
9
+ AuthRoutingModule
10
+ ]
11
+ })
12
+ export class AuthModule {
13
+ }
@@ -0,0 +1,12 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ import { ErrorComponent } from './error.component';
4
+
5
+ @NgModule({
6
+ imports: [RouterModule.forChild([
7
+ {path: '', component: ErrorComponent}
8
+ ])],
9
+ exports: [RouterModule]
10
+ })
11
+ export class ErrorRoutingModule {
12
+ }
@@ -0,0 +1,10 @@
1
+ <div class="surface-ground h-screen w-screen flex align-items-center justify-content-center">
2
+ <div class="surface-card py-7 px-5 sm:px-7 shadow-2 flex flex-column w-11 sm:w-30rem" style="border-radius:14px">
3
+ <h1 class="font-bold text-2xl mt-0 mb-2">ERROR</h1>
4
+ <p class="text-color-secondary mb-4">Unexpected error happened. Resource is not available.</p>
5
+ <img src="../../../../../assets/{{project}}/images/auth/error.svg" alt="error" class="mb-4 align-self-center">
6
+ <button [routerLink]="['/']" pButton pRipple label="Go to Dashboard"></button>
7
+ </div>
8
+ </div>
9
+
10
+ <app-config [minimal]="true"></app-config>
@@ -0,0 +1,7 @@
1
+ import { Component } from '@angular/core';
2
+
3
+ @Component({
4
+ templateUrl: './error.component.html'
5
+ })
6
+ export class ErrorComponent {
7
+ }
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ErrorRoutingModule } from './error-routing.module';
4
+ import { ErrorComponent } from './error.component';
5
+ import { ButtonModule } from 'primeng/button';
6
+ import { AppConfigModule } from 'src/app/layout/config/config.module';
7
+
8
+ @NgModule({
9
+ imports: [
10
+ CommonModule,
11
+ ErrorRoutingModule,
12
+ ButtonModule,
13
+ AppConfigModule
14
+ ],
15
+ declarations: [ErrorComponent]
16
+ })
17
+ export class ErrorModule {
18
+ }
@@ -0,0 +1,12 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ import { LoginComponent } from './login.component';
4
+
5
+ @NgModule({
6
+ imports: [RouterModule.forChild([
7
+ {path: '', component: LoginComponent}
8
+ ])],
9
+ exports: [RouterModule]
10
+ })
11
+ export class LoginRoutingModule {
12
+ }
@@ -0,0 +1,15 @@
1
+ <div class="flex h-screen w-screen align-items-center justify-content-center">
2
+ <div *ngIf="!canNavigate" class="card">
3
+ <h5>Votre utilisateur n'a pas de droit dans l'application. Veuillez contacter l'administrateur.</h5>
4
+ <div class="flex justify-content-center col-12">
5
+ <button pButton pRipple label="Contacter l'administrateur" (click)="contacterAdministrateur()">
6
+ <i class="pi pi-envelope mr-3"></i>
7
+ </button>
8
+ </div>
9
+ </div>
10
+ <div *ngIf="canNavigate">
11
+ <img src="/assets/layout/images/SpinnerCerema.svg">
12
+ </div>
13
+ </div>
14
+
15
+ <app-config [minimal]="true"></app-config>
@@ -0,0 +1,46 @@
1
+ import { Component, Inject, OnDestroy, OnInit } from '@angular/core';
2
+ import { LayoutService } from 'src/app/layout/service/app.layout.service';
3
+ import { Subscription } from "rxjs";
4
+ import { OAuthService } from "angular-oauth2-oidc";
5
+ import { Router } from "@angular/router";
6
+ import { UserService } from "../../../../shared/service/user.service";
7
+ import { DOCUMENT } from "@angular/common";
8
+
9
+ @Component({
10
+ templateUrl: './login.component.html'
11
+ })
12
+ export class LoginComponent implements OnInit, OnDestroy {
13
+ private eventSubscription: Subscription | undefined;
14
+ canNavigate = true;
15
+
16
+ constructor(private layoutService: LayoutService, private oauthService: OAuthService, private router: Router,
17
+ private userService: UserService,
18
+ @Inject(DOCUMENT) private document: Document) {
19
+ }
20
+
21
+ ngOnInit(): void {
22
+ this.eventSubscription = this.oauthService.events.subscribe(async ({type}) => {
23
+ if (type === 'token_received' || type === 'token_refreshed') {
24
+ this.router.navigateByUrl('/').catch(reason => {
25
+ this.canNavigate = false;
26
+ });
27
+ }
28
+ });
29
+ }
30
+
31
+ login(): void {
32
+ this.oauthService.initLoginFlow();
33
+ }
34
+
35
+ ngOnDestroy(): void {
36
+ this.eventSubscription?.unsubscribe();
37
+ }
38
+
39
+ contacterAdministrateur(): void {
40
+ console.log("récup liste admin")
41
+ this.userService.getAllAdmin{{projectID}}WithoutAuthentication().subscribe(value => {
42
+ const emailList = value.map(admin => admin.email).join(';');
43
+ this.document.location.href = `mailto:${emailList}?subject={{projectUpper}} : `;
44
+ });
45
+ }
46
+ }
@@ -0,0 +1,22 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { LoginRoutingModule } from './login-routing.module';
4
+ import { LoginComponent } from './login.component';
5
+ import { AppConfigModule } from 'src/app/layout/config/config.module';
6
+ import { ProgressSpinnerModule } from "primeng/progressspinner";
7
+ import { ButtonModule } from "primeng/button";
8
+ import { RippleModule } from "primeng/ripple";
9
+
10
+ @NgModule({
11
+ imports: [
12
+ CommonModule,
13
+ LoginRoutingModule,
14
+ AppConfigModule,
15
+ ProgressSpinnerModule,
16
+ ButtonModule,
17
+ RippleModule,
18
+ ],
19
+ declarations: [LoginComponent]
20
+ })
21
+ export class LoginModule {
22
+ }
@@ -0,0 +1,8 @@
1
+ <div class="flex h-screen w-screen align-items-center justify-content-center">
2
+ <div class="block font-bold text-center p-4 border-round mb-3">Vous êtes bien déconnecté !</div>
3
+ <div class="block font-bold text-center p-4 border-round mb-3">
4
+ <button class="block" [routerLink]="['/']" pButton pRipple label="Se reconnecter"></button>
5
+ </div>
6
+ </div>
7
+
8
+ <app-config [minimal]="true"></app-config>
@@ -0,0 +1,21 @@
1
+ .conteneur {
2
+ width: 100vw;
3
+ height: 100vh;
4
+ display: flex;
5
+ align-items: center;
6
+ justify-content: center;
7
+ }
8
+
9
+ .card {
10
+ width: auto;
11
+ height: auto;
12
+ }
13
+
14
+ .card-header {
15
+ text-align: center;
16
+ }
17
+
18
+ .card-body {
19
+ padding: 1rem 1.5rem;
20
+ }
21
+
@@ -0,0 +1,26 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+
3
+ import { LogoutComponent } from './logout.component';
4
+ import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
5
+
6
+ describe('DeconnexionComponent', () => {
7
+ let component: LogoutComponent;
8
+ let fixture: ComponentFixture<LogoutComponent>;
9
+
10
+ beforeEach(async () => {
11
+ await TestBed.configureTestingModule({
12
+ declarations: [LogoutComponent],
13
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
14
+ }).compileComponents();
15
+ });
16
+
17
+ beforeEach(() => {
18
+ fixture = TestBed.createComponent(LogoutComponent);
19
+ component = fixture.componentInstance;
20
+ fixture.detectChanges();
21
+ });
22
+
23
+ it('should create', () => {
24
+ expect(component).toBeTruthy();
25
+ });
26
+ });
@@ -0,0 +1,15 @@
1
+ import { Component, OnInit } from '@angular/core';
2
+
3
+ @Component({
4
+ selector: 'app-deconnexion',
5
+ templateUrl: './logout.component.html',
6
+ styleUrls: ['./logout.component.scss']
7
+ })
8
+ export class LogoutComponent implements OnInit {
9
+
10
+ constructor() {
11
+ }
12
+
13
+ ngOnInit(): void {
14
+ }
15
+ }
@@ -0,0 +1,27 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { LogoutComponent } from './logout/logout.component';
4
+ import { RouterModule } from '@angular/router';
5
+ import { InplaceModule } from "primeng/inplace";
6
+ import { RippleModule } from "primeng/ripple";
7
+ import { SharedModule } from "../../../../shared/shared.module";
8
+ import { AppConfigModule } from "../../../../layout/config/config.module";
9
+
10
+ @NgModule({
11
+ declarations: [LogoutComponent],
12
+ imports: [
13
+ CommonModule,
14
+ SharedModule,
15
+ RouterModule.forChild([
16
+ {
17
+ path: '',
18
+ component: LogoutComponent,
19
+ },
20
+ ]),
21
+ InplaceModule,
22
+ RippleModule,
23
+ AppConfigModule,
24
+ ],
25
+ })
26
+ export class LogoutModule {
27
+ }
@@ -0,0 +1,132 @@
1
+ <div class="card">
2
+ <h2>Architecture</h2>
3
+ <h3>Organisation du Backend</h3>
4
+ <h4>De l'utilisation des bons objets pour transférer les données.</h4>
5
+ <p> Il existe plusieurs types d'objets permettant de transférer des données entre les différentes couches de
6
+ l'application. Nous distinguons :</p>
7
+ <ul pl-5 line-height-3>
8
+ <li>Les <b>DTO</b> : Data Transfert Object</li>
9
+ <li>Les <b>QO</b> : Query Object</li>
10
+ </ul>
11
+ <h5>DTO</h5>
12
+ <p>Les DTO sont indispensables lors de la récupération des données provenant du frontend. Ils sont un élément clé de
13
+ la sécurité, car ils permettent de restreindre les données reçues. En effet, nous utilisons par commodité une
14
+ librairie permettant de faire du mapping automatisé : mapstruct. Elle évite les fastidieuses fonctions de transfert
15
+ de données entre les différents objets du Backend.</p>
16
+ <p>Avec une telle librairie, si nous acceptons en entrée des objets contenant l'intégralité des données contenues en
17
+ base nous nous exposons alors à la faille suivante : l'utilisateur malicieux peut envoyer des données en utilisant
18
+ simplement les bons champs correspondants à l'objet entité utilisé finalement pour l'enregistrement en base.
19
+ </p>
20
+ <p>Il faut donc soit procéder au transfert des données de manière manuelle en prenant soin de n'enregistrer que les
21
+ éléments autorisés, soit utiliser une librairie de mapping automatique en passant par des objets contenants
22
+ uniquement les données que l'on souhaite autoriser.
23
+ </p>
24
+
25
+ <h6>Mapping</h6>
26
+
27
+ <p>Nous recommandons l'usage de <b>mapstruct</b>, car il est facile à configurer, offre de nombreuses possibilités de
28
+ paramétrage et est l'une des librairies les plus rapides disponibles. Le critère performance est important, parce
29
+ que le Backend passe beaucoup de temps à transférer des données entre les différents objets. Cette librairie génère
30
+ automatiquement les mappers à partir d'interfaces contenant des annotations. C'est une des raisons pour lesquelles
31
+ sa performance est bonne, il y a moins de choses à faire lors de l'exécution.</p>
32
+
33
+ <p>Mapstruct se présente sous la forme d'un plugin Maven, qui lors de la phase de build va générer l'implémentation
34
+ des mappers que nous auront décrit soit via des interfaces, soit via des classes abstraites. Les classes seront
35
+ générées dans le répertoire : <i>target/generated-sources/annotations/</i>. Il est parfaitement possible de les
36
+ consulter pour voir les détails de l'implémentation.</p>
37
+
38
+ <app-indic type="astuce">
39
+ A chaque modification d'un mapper, il faut relancer un mvn compile pour forcer la génération.
40
+ </app-indic>
41
+
42
+ <p>Le mapper le plus simple est le suivant. Une simple interface suffit.</p>
43
+
44
+ <app-code [code]="codeMapperSimple"></app-code>
45
+
46
+ <p>Pour la première fonction `toDTO`, tous les champs de même nom seront copiés de la source, ici la Gare, dans la
47
+ destination, ici la GareDTO, qui sera un nouvel objet créé et retourné.</p>
48
+
49
+ <p>Lorsque le nom des champs ne correspond pas, il suffit de l'indiquer dans une annotation :</p>
50
+
51
+ <app-code [code]="codeMapperTarget"></app-code>
52
+
53
+ <p>Pour pouvoir injecter le mapper dans le reste de l'application, il faut ajouter cette option, ou la configurer par
54
+ défaut dans le paramétrage global.</p>
55
+
56
+ <app-code [code]="codeMapperComponentModel"></app-code>
57
+
58
+ <p>Dans certains cas, on veut pouvoir ajouter des comportements ou injecter des services dans le mapper. Dans ce cas,
59
+ on peut passer par une classe abstraite.</p>
60
+
61
+ <app-code [code]="codeExpression"></app-code>
62
+
63
+ <app-indic type="danger">
64
+ Il faut bien mettre le service en protected, car la classe générée va hériter de la classe abstraite et devra
65
+ pouvoir accéder à ce champ.
66
+ </app-indic>
67
+
68
+ <app-indic type="astuce">
69
+ Les méthodes déclarées abstract seront générées automatiquement, mais il est possible de définir des méthodes
70
+ concrètes si l'on souhaite fournir une implémentation spécifique. On peut mixer les deux.
71
+ </app-indic>
72
+
73
+ <h6>JSON</h6>
74
+
75
+ <p>Les DTO sont amenés à être sérialisés en JSON pour le transfert au niveau de l'API. Nous utilisons la librairie
76
+ Jackson pour faciliter ce travail</p>
77
+
78
+ <p>Il est possible de modifier le nom des propriétés lors de la sérialisation</p>
79
+
80
+ <app-code [code]="codeJSonProperty"></app-code>
81
+
82
+ <p>Pour certains type de données, il est nécessaire de spécifier la classe permettant de séerialiser et désérialiser
83
+ la donnée</p>
84
+
85
+ <app-code [code]="codeJSonSerialize"></app-code>
86
+
87
+ <h6>Validation</h6>
88
+
89
+ <p>Les objets DTO sont en première ligne : ils reçoivent les données provenant de l'extérieur. Une règle d'or de
90
+ sécurité consiste à considérer toutes les entrées comme potentiellement compromises. Il est donc nécessaire de
91
+ valider chacune de ces entrées.</p>
92
+
93
+ <p>On utilise le validator Hibernate pour faciliter ces vérifications.</p>
94
+
95
+ <p>On ajoute @Validated sur la classe du Controller.</p>
96
+
97
+ <app-code [code]="codeValid"></app-code>
98
+
99
+ <p>On ajoute un @Valid sur le DTO en argument de la function qui récupère le paramètre.</p>
100
+
101
+ <app-code [code]="codeValidDto"></app-code>
102
+
103
+ <p>On peut ensuite ajouter les annotations de validation sur les champs :</p>
104
+
105
+ <app-code [code]="codeValidChamp"></app-code>
106
+
107
+ <p>Voir
108
+ <a href="https://docs.jboss.org/hibernate/validator/8.0/reference/en-US/html_single/#section-builtin-constraints">
109
+ la liste des annotations disponibles</a>.
110
+ </p>
111
+
112
+ <p>Les plus courantes sont :</p>
113
+
114
+ <app-code [code]="codeValidCourant"></app-code>
115
+
116
+ <h6>Documentation</h6>
117
+
118
+ <p>Les objets DTO font partis du contrat de l'interface de l'API, puisqu'ils servent à l'échange des données vers
119
+ l'extérieur. Il faut donc les documenter.</p>
120
+
121
+ <p>On utilise les annotations swagger pour générer automatiquement cette documentation.</p>
122
+
123
+ <app-code [code]="codeDoc"></app-code>
124
+
125
+ <h5>QO</h5>
126
+
127
+ <p>Les Query Object (QO) sont des objets de transfert permettant de gérer les critères de recherche. Ils sont très
128
+ similaires aux DTO ci-dessus, mais ne nécessitent généralement pas de mapping.</p>
129
+ <p>Il faut toutefois les valider et les documenter, car ils sont une entrée de l'API. Les mêmes principes s'appliquent
130
+ que pour les DTO.</p>
131
+
132
+ </div>