@cerema/cadriciel 1.4.23 → 1.4.26

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 (1359) hide show
  1. package/aqtion/.cadriciel/.settings +25 -0
  2. package/aqtion/.cadriciel/bin/.settings +0 -0
  3. package/aqtion/.cadriciel/bin/build.js +106 -0
  4. package/aqtion/.cadriciel/bin/env.js +145 -0
  5. package/aqtion/.cadriciel/bin/gen/api/api.js +886 -0
  6. package/aqtion/.cadriciel/bin/gen/component/component.js +36 -0
  7. package/aqtion/.cadriciel/bin/gen/db/db.js +3 -0
  8. package/aqtion/.cadriciel/bin/gen/db/ext/create.js +124 -0
  9. package/aqtion/.cadriciel/bin/gen/db/ext/ext.js +91 -0
  10. package/aqtion/.cadriciel/bin/gen/db/ext/import.js +636 -0
  11. package/aqtion/.cadriciel/bin/gen/db/ext/models.js +843 -0
  12. package/aqtion/.cadriciel/bin/gen/db/ext/query.js +127 -0
  13. package/aqtion/.cadriciel/bin/gen/db/ext/reverse.js +201 -0
  14. package/aqtion/.cadriciel/bin/gen/db/ext/reverse_lib.js +253 -0
  15. package/aqtion/.cadriciel/bin/gen/db/ext/snapshot.js +112 -0
  16. package/aqtion/.cadriciel/bin/gen/db/ext/sql.js +380 -0
  17. package/aqtion/.cadriciel/bin/gen/page/page.js +163 -0
  18. package/aqtion/.cadriciel/bin/gen/project/project.js +220 -0
  19. package/aqtion/.cadriciel/bin/gen/service/service.js +18 -0
  20. package/aqtion/.cadriciel/bin/gen.js +19 -0
  21. package/aqtion/.cadriciel/bin/lib/cadriciel.js +91 -0
  22. package/aqtion/.cadriciel/bin/lib/convert.js +94 -0
  23. package/aqtion/.cadriciel/bin/lib/docker.js +63 -0
  24. package/aqtion/.cadriciel/bin/lib/global.js +140 -0
  25. package/aqtion/.cadriciel/bin/lib/templates.js +48 -0
  26. package/aqtion/.cadriciel/bin/lib/utils.js +268 -0
  27. package/aqtion/.cadriciel/bin/link.js +139 -0
  28. package/aqtion/.cadriciel/bin/logs.js +42 -0
  29. package/aqtion/.cadriciel/bin/project/_update.js +268 -0
  30. package/aqtion/.cadriciel/bin/project/ext/logo.js +109 -0
  31. package/aqtion/.cadriciel/bin/project/ext/version.js +267 -0
  32. package/aqtion/.cadriciel/bin/project/update.js +3 -0
  33. package/aqtion/.cadriciel/bin/project.js +12 -0
  34. package/aqtion/.cadriciel/bin/reset.js +73 -0
  35. package/aqtion/.cadriciel/bin/rm/api/api.js +244 -0
  36. package/aqtion/.cadriciel/bin/rm/component/component.js +16 -0
  37. package/aqtion/.cadriciel/bin/rm/db/db.js +3 -0
  38. package/aqtion/.cadriciel/bin/rm/db/ext/ext.js +60 -0
  39. package/aqtion/.cadriciel/bin/rm/db/ext/models.js +357 -0
  40. package/aqtion/.cadriciel/bin/rm/page/page.js +62 -0
  41. package/aqtion/.cadriciel/bin/rm/service/service.js +17 -0
  42. package/aqtion/.cadriciel/bin/rm.js +18 -0
  43. package/aqtion/.cadriciel/bin/run/backend.js +122 -0
  44. package/aqtion/.cadriciel/bin/run/frontend.js +52 -0
  45. package/aqtion/.cadriciel/bin/run/stop-backend.js +39 -0
  46. package/aqtion/.cadriciel/bin/run/stop-frontend.js +55 -0
  47. package/aqtion/.cadriciel/bin/start/docker.js +448 -0
  48. package/aqtion/.cadriciel/bin/start/update.js +120 -0
  49. package/aqtion/.cadriciel/bin/start/workspace.js +398 -0
  50. package/aqtion/.cadriciel/bin/start.js +29 -0
  51. package/aqtion/.cadriciel/bin/stop/docker.js +28 -0
  52. package/aqtion/.cadriciel/bin/stop/workspace.js +54 -0
  53. package/aqtion/.cadriciel/bin/stop.js +26 -0
  54. package/aqtion/.cadriciel/bin/templates/angular-prod/main.module.ts +43 -0
  55. package/aqtion/.cadriciel/bin/templates/angular-prod/shared.module.ts +10 -0
  56. package/aqtion/.cadriciel/bin/templates/components/{{name}}.component.html +1 -0
  57. package/aqtion/.cadriciel/bin/templates/components/{{name}}.component.scss +0 -0
  58. package/aqtion/.cadriciel/bin/templates/components/{{name}}.component.ts +15 -0
  59. package/aqtion/.cadriciel/bin/templates/environment.tpl.ts +12 -0
  60. package/aqtion/.cadriciel/bin/templates/idea/compiler.xml +28 -0
  61. package/aqtion/.cadriciel/bin/templates/idea/dataSources.local.xml +20 -0
  62. package/aqtion/.cadriciel/bin/templates/idea/dataSources.xml +12 -0
  63. package/aqtion/.cadriciel/bin/templates/idea/encodings.xml +12 -0
  64. package/aqtion/.cadriciel/bin/templates/idea/jarRepositories.xml +20 -0
  65. package/aqtion/.cadriciel/bin/templates/idea/jpa-buddy-datasource.xml +8 -0
  66. package/aqtion/.cadriciel/bin/templates/idea/jpa-buddy.xml +7 -0
  67. package/aqtion/.cadriciel/bin/templates/idea/misc.xml +16 -0
  68. package/aqtion/.cadriciel/bin/templates/idea/modules.xml +8 -0
  69. package/aqtion/.cadriciel/bin/templates/idea/vcs.xml +6 -0
  70. package/aqtion/.cadriciel/bin/templates/idea/workspace-docker.xml +114 -0
  71. package/aqtion/.cadriciel/bin/templates/idea/workspace.xml +122 -0
  72. package/aqtion/.cadriciel/bin/templates/java/config.java +59 -0
  73. package/aqtion/.cadriciel/bin/templates/jpb/jpb-settings.xml +12 -0
  74. package/aqtion/.cadriciel/bin/templates/routing.module.ts +30 -0
  75. package/aqtion/.cadriciel/bin/templates/start/backend.sh +15 -0
  76. package/aqtion/.cadriciel/bin/templates/start/frontend.sh +3 -0
  77. package/aqtion/.cadriciel/bin/templates/studio-env.tpl.ts +9 -0
  78. package/aqtion/.cadriciel/bin/templates/{{name}}.component.html +1 -0
  79. package/aqtion/.cadriciel/bin/templates/{{name}}.component.scss +0 -0
  80. package/aqtion/.cadriciel/bin/templates/{{name}}.component.ts +16 -0
  81. package/aqtion/.cadriciel/bin/templates/{{name}}.service.ts +20 -0
  82. package/aqtion/.cadriciel/bin/unlink.js +0 -0
  83. package/aqtion/.cadriciel/bin/upgrade.js +0 -0
  84. package/aqtion/.cadriciel/bin/version.json +4 -0
  85. package/aqtion/.cadriciel/cli/build.js +8 -0
  86. package/aqtion/.cadriciel/cli/env.js +9 -0
  87. package/aqtion/.cadriciel/cli/gen.js +34 -0
  88. package/aqtion/.cadriciel/cli/link.js +8 -0
  89. package/aqtion/.cadriciel/cli/logs.js +8 -0
  90. package/aqtion/.cadriciel/cli/project.js +14 -0
  91. package/aqtion/.cadriciel/cli/reset.js +8 -0
  92. package/aqtion/.cadriciel/cli/restart.js +8 -0
  93. package/aqtion/.cadriciel/cli/rm.js +34 -0
  94. package/aqtion/.cadriciel/cli/start.js +8 -0
  95. package/aqtion/.cadriciel/cli/stop.js +8 -0
  96. package/aqtion/.cadriciel/cli/unlink.js +8 -0
  97. package/aqtion/.cadriciel/cli/upgrade.js +8 -0
  98. package/aqtion/.cadriciel/routes/root.json +1 -0
  99. package/aqtion/.cadriciel/shared/.gitkeep +0 -0
  100. package/aqtion/.cadriciel/watcher/pid +1 -0
  101. package/aqtion/.dockerignore +5 -0
  102. package/aqtion/.gitlab-ci.yml +102 -0
  103. package/aqtion/.jpb/jpb-settings.xml +12 -0
  104. package/aqtion/.project +1 -0
  105. package/aqtion/.vscode/launch.json +23 -0
  106. package/aqtion/.vscode/settings.json +3 -0
  107. package/aqtion/.vscode/tasks.json +55 -0
  108. package/aqtion/Dockerfile +8 -0
  109. package/aqtion/angular.json +208 -0
  110. package/aqtion/backend/.mvn/wrapper/MavenWrapperDownloader.java +116 -0
  111. package/aqtion/backend/.mvn/wrapper/maven-wrapper.properties +4 -0
  112. package/aqtion/backend/Dockerfile +13 -0
  113. package/aqtion/backend/aqtion-data/Readme.md +27 -0
  114. package/aqtion/backend/aqtion-data/pom.xml +36 -0
  115. package/aqtion/backend/aqtion-data/src/main/resources/db/dev/Readme.md +5 -0
  116. package/aqtion/backend/aqtion-data/src/main/resources/db/dev/V2022.06.02.1513__dev-data.sql +7 -0
  117. package/aqtion/backend/aqtion-data/src/main/resources/db/migration/Readme.md +38 -0
  118. package/aqtion/backend/aqtion-data/src/main/resources/db/migration/V2021.10.14.0819__Init.sql +23 -0
  119. package/aqtion/backend/aqtion-data/target/classes/db/dev/Readme.md +5 -0
  120. package/aqtion/backend/aqtion-data/target/classes/db/dev/V2022.06.02.1513__dev-data.sql +7 -0
  121. package/aqtion/backend/aqtion-data/target/classes/db/migration/Readme.md +38 -0
  122. package/aqtion/backend/aqtion-data/target/classes/db/migration/V2021.10.14.0819__Init.sql +23 -0
  123. package/aqtion/backend/aqtion-data/target/maven-archiver/pom.properties +3 -0
  124. package/aqtion/backend/aqtion-metier/pom.xml +110 -0
  125. package/aqtion/backend/aqtion-metier/src/main/java/fr/cerema/dsi/aqtion/services/CustomUserDetailsService.java +12 -0
  126. package/aqtion/backend/aqtion-metier/src/main/java/fr/cerema/dsi/aqtion/services/ProfilService.java +24 -0
  127. package/aqtion/backend/aqtion-metier/src/main/java/fr/cerema/dsi/aqtion/services/UserService.java +36 -0
  128. package/aqtion/backend/aqtion-metier/src/main/java/fr/cerema/dsi/aqtion/services/impl/CustomUserDetailsServiceImpl.java +79 -0
  129. package/aqtion/backend/aqtion-metier/src/main/java/fr/cerema/dsi/aqtion/services/impl/ProfilServiceImpl.java +27 -0
  130. package/aqtion/backend/aqtion-metier/src/main/java/fr/cerema/dsi/aqtion/services/impl/UserServiceImpl.java +75 -0
  131. package/aqtion/backend/aqtion-metier/src/main/java/fr/cerema/dsi/commons/security/UserSecurityServiceUtil.java +30 -0
  132. package/aqtion/backend/aqtion-metier/src/main/java/fr/cerema/dsi/commons/services/GenericService.java +30 -0
  133. package/aqtion/backend/aqtion-metier/src/main/java/fr/cerema/dsi/commons/services/GenericServiceImpl.java +62 -0
  134. package/aqtion/backend/aqtion-metier/src/test/java/fr/cerema/dsi/aqtion/services/UserServiceImplTest.java +60 -0
  135. package/aqtion/backend/aqtion-metier/target/maven-archiver/pom.properties +3 -0
  136. package/aqtion/backend/aqtion-metier/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +9 -0
  137. package/aqtion/backend/aqtion-metier/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +9 -0
  138. package/aqtion/backend/aqtion-metier/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst +1 -0
  139. package/aqtion/backend/aqtion-metier/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +1 -0
  140. package/aqtion/backend/aqtion-persistance/pom.xml +33 -0
  141. package/aqtion/backend/aqtion-persistance/src/main/java/fr/cerema/dsi/aqtion/repositories/ProfilRepository.java +18 -0
  142. package/aqtion/backend/aqtion-persistance/src/main/java/fr/cerema/dsi/aqtion/repositories/UserRepository.java +28 -0
  143. package/aqtion/backend/aqtion-persistance/src/main/java/fr/cerema/dsi/commons/repositories/AbstractDao.java +118 -0
  144. package/aqtion/backend/aqtion-persistance/src/main/java/fr/cerema/dsi/commons/repositories/GenericRepository.java +101 -0
  145. package/aqtion/backend/aqtion-persistance/src/main/java/fr/cerema/dsi/commons/repositories/IAbstractDao.java +66 -0
  146. package/aqtion/backend/aqtion-persistance/target/maven-archiver/pom.properties +3 -0
  147. package/aqtion/backend/aqtion-persistance/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +5 -0
  148. package/aqtion/backend/aqtion-persistance/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +5 -0
  149. package/aqtion/backend/aqtion-presentation/Readme.md +98 -0
  150. package/aqtion/backend/aqtion-presentation/pom.xml +185 -0
  151. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/aqtion/App.java +20 -0
  152. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/aqtion/config/AspectJConfiguration.java +58 -0
  153. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/aqtion/config/AuthenticationTokenFilter.java +134 -0
  154. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/aqtion/config/SecurityConfiguration.java +80 -0
  155. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/aqtion/config/StaticResourcesWebConfiguration.java +41 -0
  156. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/aqtion/config/WebConfiguration.java +59 -0
  157. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/aqtion/controllers/AccountController.java +64 -0
  158. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/aqtion/controllers/ApiOpenController.java +71 -0
  159. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/aqtion/controllers/UserController.java +65 -0
  160. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/aqtion/dto/GenericDTO.java +20 -0
  161. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/aqtion/dto/ProfilDTO.java +26 -0
  162. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/aqtion/dto/UserDTO.java +57 -0
  163. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/aqtion/dto/UserWithCurrentAuthorityDTO.java +31 -0
  164. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/aqtion/mapper/UserMapper.java +33 -0
  165. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/commons/beans/errors/ApiSubError.java +5 -0
  166. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/commons/beans/errors/ApiValidationSubError.java +13 -0
  167. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/commons/beans/errors/JsonApiError.java +308 -0
  168. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/commons/controllers/AbstractErrorHandler.java +67 -0
  169. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/commons/controllers/ClientForwardController.java +19 -0
  170. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/commons/controllers/CustomErrorController.java +57 -0
  171. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/commons/controllers/RestResponseEntityExceptionHandler.java +75 -0
  172. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/commons/security/auth/jwt/exceptions/InvalidTokenException.java +30 -0
  173. package/aqtion/backend/aqtion-presentation/src/main/java/fr/cerema/dsi/commons/security/filters/AppCorsFilter.java +45 -0
  174. package/aqtion/backend/aqtion-presentation/src/main/resources/META-INF/spring.factories +2 -0
  175. package/aqtion/backend/aqtion-presentation/src/main/resources/banner.txt +3 -0
  176. package/aqtion/backend/aqtion-presentation/src/main/resources/logback-spring-ci.xml +15 -0
  177. package/aqtion/backend/aqtion-presentation/src/main/resources/logback-spring.xml +15 -0
  178. package/aqtion/backend/aqtion-presentation/src/main/resources-filtered/application-prod.yml +80 -0
  179. package/aqtion/backend/aqtion-presentation/src/main/resources-filtered/application.yml +94 -0
  180. package/aqtion/backend/aqtion-presentation/src/test/java/fr/cerema/dsi/aqtion/service/IntegrationTest.java +18 -0
  181. package/aqtion/backend/aqtion-presentation/src/test/resources/application.yml +41 -0
  182. package/aqtion/backend/aqtion-presentation/src/test/resources/db.migration/Readme.md +6 -0
  183. package/aqtion/backend/aqtion-presentation/target/generated-sources/annotations/fr/cerema/dsi/aqtion/mapper/UserMapperImpl.java +134 -0
  184. package/aqtion/backend/aqtion-presentation/target/maven-archiver/pom.properties +3 -0
  185. package/aqtion/backend/aqtion-presentation/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +25 -0
  186. package/aqtion/backend/aqtion-presentation/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +23 -0
  187. package/aqtion/backend/aqtion-presentation/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst +1 -0
  188. package/aqtion/backend/aqtion-presentation/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +1 -0
  189. package/aqtion/backend/aqtion-transverse/pom.xml +22 -0
  190. package/aqtion/backend/aqtion-transverse/src/main/java/fr/cerema/dsi/aqtion/entities/Profil.java +53 -0
  191. package/aqtion/backend/aqtion-transverse/src/main/java/fr/cerema/dsi/aqtion/entities/User.java +79 -0
  192. package/aqtion/backend/aqtion-transverse/src/main/java/fr/cerema/dsi/aqtion/enums/Role.java +8 -0
  193. package/aqtion/backend/aqtion-transverse/src/main/java/fr/cerema/dsi/aqtion/exceptions/JwtConfMalformedException.java +9 -0
  194. package/aqtion/backend/aqtion-transverse/src/main/java/fr/cerema/dsi/aqtion/exceptions/security/AuthenticationServiceException.java +30 -0
  195. package/aqtion/backend/aqtion-transverse/src/main/java/fr/cerema/dsi/aqtion/exceptions/security/NoRoleForUserServiceException.java +29 -0
  196. package/aqtion/backend/aqtion-transverse/src/main/java/fr/cerema/dsi/aqtion/exceptions/security/UserNotFoundServiceException.java +29 -0
  197. package/aqtion/backend/aqtion-transverse/src/main/java/fr/cerema/dsi/commons/entities/GenericEntity.java +43 -0
  198. package/aqtion/backend/aqtion-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/BadRequestException.java +43 -0
  199. package/aqtion/backend/aqtion-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/EntityNotFoundException.java +9 -0
  200. package/aqtion/backend/aqtion-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/GenericRepositoryException.java +29 -0
  201. package/aqtion/backend/aqtion-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/GenericServiceException.java +29 -0
  202. package/aqtion/backend/aqtion-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/UserNotFoundException.java +11 -0
  203. package/aqtion/backend/aqtion-transverse/src/main/java/fr/cerema/dsi/commons/exceptions/UtilsException.java +13 -0
  204. package/aqtion/backend/aqtion-transverse/target/maven-archiver/pom.properties +3 -0
  205. package/aqtion/backend/aqtion-transverse/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +15 -0
  206. package/aqtion/backend/aqtion-transverse/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +14 -0
  207. package/aqtion/backend/mvnw +311 -0
  208. package/aqtion/backend/mvnw.cmd +182 -0
  209. package/aqtion/backend/pom.xml +144 -0
  210. package/aqtion/banner.png +0 -0
  211. package/aqtion/bun.lockb +0 -0
  212. package/aqtion/docker/config/keycloak/realms/export/realm.json +63 -0
  213. package/aqtion/docker/config/keycloak/themes/README.txt +3 -0
  214. package/aqtion/docker/config/keycloak/themes/base/account/account.ftl +70 -0
  215. package/aqtion/docker/config/keycloak/themes/base/account/applications.ftl +76 -0
  216. package/aqtion/docker/config/keycloak/themes/base/account/federatedIdentity.ftl +42 -0
  217. package/aqtion/docker/config/keycloak/themes/base/account/log.ftl +35 -0
  218. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_ca.properties +147 -0
  219. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_cs.properties +171 -0
  220. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_da.properties +339 -0
  221. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_de.properties +353 -0
  222. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_en.properties +397 -0
  223. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_es.properties +147 -0
  224. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_fi.properties +400 -0
  225. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_fr.properties +180 -0
  226. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_hu.properties +334 -0
  227. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_it.properties +336 -0
  228. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_ja.properties +335 -0
  229. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_lt.properties +154 -0
  230. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_lv.properties +197 -0
  231. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_nl.properties +133 -0
  232. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_no.properties +152 -0
  233. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_pl.properties +248 -0
  234. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_pt_BR.properties +356 -0
  235. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_ru.properties +155 -0
  236. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_sk.properties +196 -0
  237. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_sv.properties +150 -0
  238. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_tr.properties +315 -0
  239. package/aqtion/docker/config/keycloak/themes/base/account/messages/messages_zh_CN.properties +153 -0
  240. package/aqtion/docker/config/keycloak/themes/base/account/password.ftl +59 -0
  241. package/aqtion/docker/config/keycloak/themes/base/account/resource-detail.ftl +277 -0
  242. package/aqtion/docker/config/keycloak/themes/base/account/resources.ftl +403 -0
  243. package/aqtion/docker/config/keycloak/themes/base/account/sessions.ftl +44 -0
  244. package/aqtion/docker/config/keycloak/themes/base/account/template.ftl +88 -0
  245. package/aqtion/docker/config/keycloak/themes/base/account/theme.properties +1 -0
  246. package/aqtion/docker/config/keycloak/themes/base/account/totp.ftl +141 -0
  247. package/aqtion/docker/config/keycloak/themes/base/admin/index.ftl +99 -0
  248. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_ca.properties +477 -0
  249. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_de.properties +1627 -0
  250. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_en.properties +2030 -0
  251. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_es.properties +479 -0
  252. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_fi.properties +1 -0
  253. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_fr.properties +155 -0
  254. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_it.properties +0 -0
  255. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_ja.properties +1641 -0
  256. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_lt.properties +1221 -0
  257. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_lv.properties +1 -0
  258. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_nl.properties +0 -0
  259. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_no.properties +1129 -0
  260. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_pl.properties +1 -0
  261. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_pt_BR.properties +1101 -0
  262. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_ru.properties +1279 -0
  263. package/aqtion/docker/config/keycloak/themes/base/admin/messages/admin-messages_zh_CN.properties +1230 -0
  264. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_ca.properties +8 -0
  265. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_de.properties +29 -0
  266. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_en.properties +67 -0
  267. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_es.properties +8 -0
  268. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_fi.properties +1 -0
  269. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_fr.properties +8 -0
  270. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_it.properties +0 -0
  271. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_ja.properties +30 -0
  272. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_lt.properties +25 -0
  273. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_lv.properties +1 -0
  274. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_nl.properties +27 -0
  275. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_no.properties +14 -0
  276. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_pl.properties +1 -0
  277. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_pt_BR.properties +18 -0
  278. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_ru.properties +26 -0
  279. package/aqtion/docker/config/keycloak/themes/base/admin/messages/messages_zh_CN.properties +26 -0
  280. package/aqtion/docker/config/keycloak/themes/base/admin/resources/js/app.js +3858 -0
  281. package/aqtion/docker/config/keycloak/themes/base/admin/resources/js/authz/authz-app.js +569 -0
  282. package/aqtion/docker/config/keycloak/themes/base/admin/resources/js/authz/authz-controller.js +2845 -0
  283. package/aqtion/docker/config/keycloak/themes/base/admin/resources/js/authz/authz-services.js +218 -0
  284. package/aqtion/docker/config/keycloak/themes/base/admin/resources/js/controllers/clients.js +4054 -0
  285. package/aqtion/docker/config/keycloak/themes/base/admin/resources/js/controllers/groups.js +625 -0
  286. package/aqtion/docker/config/keycloak/themes/base/admin/resources/js/controllers/realm.js +4552 -0
  287. package/aqtion/docker/config/keycloak/themes/base/admin/resources/js/controllers/roles.js +48 -0
  288. package/aqtion/docker/config/keycloak/themes/base/admin/resources/js/controllers/users.js +2042 -0
  289. package/aqtion/docker/config/keycloak/themes/base/admin/resources/js/loaders.js +587 -0
  290. package/aqtion/docker/config/keycloak/themes/base/admin/resources/js/services.js +2265 -0
  291. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authentication-flow-bindings.html +83 -0
  292. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authentication-flows.html +72 -0
  293. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authenticator-config.html +52 -0
  294. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/mgmt/broker-permissions.html +40 -0
  295. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/mgmt/client-permissions.html +39 -0
  296. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/mgmt/client-role-permissions.html +40 -0
  297. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/mgmt/group-permissions.html +39 -0
  298. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/mgmt/realm-role-permissions.html +39 -0
  299. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/mgmt/users-permissions.html +35 -0
  300. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/permission/provider/resource-server-policy-resource-detail.html +131 -0
  301. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/permission/provider/resource-server-policy-scope-detail.html +137 -0
  302. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/permission/resource-server-permission-list.html +118 -0
  303. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/policy/provider/resource-server-policy-aggregate-detail.html +123 -0
  304. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/policy/provider/resource-server-policy-client-detail.html +93 -0
  305. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/policy/provider/resource-server-policy-client-scope-detail.html +126 -0
  306. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/policy/provider/resource-server-policy-group-detail.html +126 -0
  307. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/policy/provider/resource-server-policy-js-detail.html +68 -0
  308. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/policy/provider/resource-server-policy-regex-detail.html +100 -0
  309. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/policy/provider/resource-server-policy-role-detail.html +169 -0
  310. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/policy/provider/resource-server-policy-time-detail.html +119 -0
  311. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/policy/provider/resource-server-policy-user-detail.html +93 -0
  312. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/policy/resource-server-policy-evaluate-result.html +72 -0
  313. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/policy/resource-server-policy-evaluate.html +267 -0
  314. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/policy/resource-server-policy-list.html +117 -0
  315. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/resource-server-detail.html +77 -0
  316. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/resource-server-export-settings.html +35 -0
  317. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/resource-server-list.html +49 -0
  318. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/resource-server-resource-detail.html +126 -0
  319. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/resource-server-resource-list.html +169 -0
  320. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/resource-server-scope-detail.html +50 -0
  321. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/authz/resource-server-scope-list.html +102 -0
  322. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/brute-force.html +114 -0
  323. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/ciba-policy.html +63 -0
  324. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/claims.html +62 -0
  325. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-clustering-node.html +37 -0
  326. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-clustering.html +76 -0
  327. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-credentials-generic.html +14 -0
  328. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-credentials-jwt.html +26 -0
  329. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-credentials-secret-jwt.html +55 -0
  330. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-credentials-secret.html +33 -0
  331. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-credentials-x509.html +28 -0
  332. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-credentials.html +38 -0
  333. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-detail.html +1080 -0
  334. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-import.html +46 -0
  335. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-initial-access-create.html +63 -0
  336. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-initial-access.html +55 -0
  337. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-installation.html +36 -0
  338. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-keys.html +146 -0
  339. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-list.html +68 -0
  340. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-mappers-add.html +53 -0
  341. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-mappers.html +55 -0
  342. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-offline-sessions.html +59 -0
  343. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-oidc-key-export.html +57 -0
  344. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-oidc-key-import.html +62 -0
  345. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-oidc-keys.html +108 -0
  346. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-policies-json.html +60 -0
  347. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-policies-list.html +74 -0
  348. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-policies-policy-edit-condition.html +65 -0
  349. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-policies-policy-edit.html +140 -0
  350. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-policies-profiles-edit-executor.html +65 -0
  351. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-policies-profiles-edit.html +97 -0
  352. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-policies-profiles-json.html +60 -0
  353. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-policies-profiles-list.html +80 -0
  354. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-protocol-mapper-detail.html +13 -0
  355. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-reg-policies.html +106 -0
  356. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-reg-policy-detail.html +68 -0
  357. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-reg-trusted-host-create.html +55 -0
  358. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-reg-trusted-host-detail.html +64 -0
  359. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-registration-access-token.html +18 -0
  360. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-revocation.html +30 -0
  361. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-role-attributes.html +45 -0
  362. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-role-detail.html +140 -0
  363. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-role-list.html +64 -0
  364. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-role-users.html +52 -0
  365. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-saml-key-export.html +63 -0
  366. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-saml-key-import.html +62 -0
  367. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-saml-keys.html +66 -0
  368. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-scope-detail.html +102 -0
  369. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-scope-list.html +60 -0
  370. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-scope-mappers-add.html +53 -0
  371. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-scope-mappers.html +55 -0
  372. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-scope-mappings.html +127 -0
  373. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-scope-protocol-mapper-detail.html +13 -0
  374. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-scope-scope-mappings.html +116 -0
  375. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-scopes-evaluate.html +268 -0
  376. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-scopes-realm-default.html +99 -0
  377. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-scopes-setup.html +123 -0
  378. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-service-account-roles.html +140 -0
  379. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-sessions.html +57 -0
  380. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-storage-generic.html +207 -0
  381. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/client-storage-list.html +67 -0
  382. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/create-client.html +72 -0
  383. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/create-execution.html +31 -0
  384. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/create-flow-execution.html +55 -0
  385. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/create-flow.html +43 -0
  386. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/create-group.html +25 -0
  387. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/default-groups.html +91 -0
  388. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/defense-headers.html +71 -0
  389. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/forbidden.html +7 -0
  390. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/group-attributes.html +41 -0
  391. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/group-detail.html +28 -0
  392. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/group-list.html +50 -0
  393. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/group-members.html +48 -0
  394. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/group-role-mappings.html +111 -0
  395. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/home.html +4 -0
  396. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/identity-provider-mapper-detail.html +84 -0
  397. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/identity-provider-mappers.html +49 -0
  398. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/menu.html +26 -0
  399. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/modal/group-selector.html +50 -0
  400. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/modal/realm-events-admin-auth.html +8 -0
  401. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/modal/realm-events-admin-representation.html +3 -0
  402. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/modal/role-selector.html +39 -0
  403. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/modal/unregistered-required-action-selector.html +21 -0
  404. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/modal/user-credential-data.html +8 -0
  405. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/modal/view-key.html +18 -0
  406. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/modal/view-object.html +3 -0
  407. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/notfound.html +7 -0
  408. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/otp-policy.html +96 -0
  409. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/pagenotfound.html +7 -0
  410. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/partial-export.html +34 -0
  411. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/partial-import.html +130 -0
  412. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/password-policy.html +51 -0
  413. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/protocol-mapper-detail.html +64 -0
  414. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-cache-settings.html +30 -0
  415. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-create.html +45 -0
  416. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-default-roles.html +88 -0
  417. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-detail.html +90 -0
  418. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-events-admin.html +134 -0
  419. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-events-config.html +106 -0
  420. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-events.html +124 -0
  421. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-bitbucket.html +142 -0
  422. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-facebook-ext.html +7 -0
  423. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-facebook.html +1 -0
  424. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-github-ext.html +14 -0
  425. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-github.html +1 -0
  426. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-gitlab.html +142 -0
  427. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-google-ext.html +21 -0
  428. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-google.html +1 -0
  429. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-instagram-ext.html +0 -0
  430. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-instagram.html +1 -0
  431. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-keycloak-oidc.html +1 -0
  432. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-linkedin-ext.html +0 -0
  433. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-linkedin.html +1 -0
  434. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-microsoft-ext.html +0 -0
  435. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-microsoft.html +1 -0
  436. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-oidc.html +388 -0
  437. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-openshift-v3-ext.html +7 -0
  438. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-openshift-v3.html +164 -0
  439. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-openshift-v4-ext.html +7 -0
  440. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-openshift-v4.html +164 -0
  441. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-paypal-ext.html +7 -0
  442. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-paypal.html +1 -0
  443. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-saml.html +435 -0
  444. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-social.html +157 -0
  445. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-stackoverflow-ext.html +7 -0
  446. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-stackoverflow.html +1 -0
  447. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-twitter-ext.html +0 -0
  448. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider-twitter.html +1 -0
  449. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-identity-provider.html +81 -0
  450. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-keys-disabled.html +70 -0
  451. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-keys-generic.html +69 -0
  452. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-keys-passive.html +70 -0
  453. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-keys-providers.html +75 -0
  454. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-keys.html +73 -0
  455. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-list.html +20 -0
  456. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-localization-detail.html +50 -0
  457. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-localization-upload.html +37 -0
  458. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-localization.html +61 -0
  459. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-login-settings.html +107 -0
  460. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-role-users.html +50 -0
  461. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-smtp.html +96 -0
  462. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-theme-settings.html +97 -0
  463. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-tokens.html +401 -0
  464. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/realm-user-profile.html +372 -0
  465. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/required-actions.html +38 -0
  466. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/role-attributes.html +41 -0
  467. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/role-detail.html +135 -0
  468. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/role-list.html +63 -0
  469. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/role-mappings.html +119 -0
  470. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/server-info-providers.html +55 -0
  471. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/server-info.html +135 -0
  472. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/session-realm.html +34 -0
  473. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/session-revocation.html +30 -0
  474. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-attributes.html +41 -0
  475. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-consents.html +41 -0
  476. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-credentials.html +173 -0
  477. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-detail.html +186 -0
  478. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-federated-identity-detail.html +53 -0
  479. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-federated-identity-list.html +41 -0
  480. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-federation.html +69 -0
  481. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-group-membership.html +114 -0
  482. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-list.html +69 -0
  483. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-offline-sessions.html +35 -0
  484. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-sessions.html +43 -0
  485. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-storage-generic.html +246 -0
  486. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-storage-kerberos.html +264 -0
  487. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-storage-ldap-mapper-detail.html +64 -0
  488. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-storage-ldap-mappers.html +46 -0
  489. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-storage-ldap.html +568 -0
  490. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/user-storage.html +45 -0
  491. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/webauthn-policy-passwordless.html +177 -0
  492. package/aqtion/docker/config/keycloak/themes/base/admin/resources/partials/webauthn-policy.html +159 -0
  493. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/authz/kc-authz-modal.html +11 -0
  494. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/authz/kc-tabs-resource-server.html +14 -0
  495. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-component-config.html +67 -0
  496. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-copy.html +18 -0
  497. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-dropdown.html +12 -0
  498. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-edit.html +22 -0
  499. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-menu.html +65 -0
  500. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-modal-message.html +10 -0
  501. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-modal.html +11 -0
  502. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-paging.html +25 -0
  503. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-provider-config.html +104 -0
  504. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-switch.html +12 -0
  505. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-tabs-authentication.html +16 -0
  506. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-tabs-client-role.html +17 -0
  507. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-tabs-client-scope.html +20 -0
  508. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-tabs-client.html +65 -0
  509. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-tabs-clients.html +16 -0
  510. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-tabs-group-list.html +11 -0
  511. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-tabs-group.html +17 -0
  512. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-tabs-identity-provider.html +16 -0
  513. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-tabs-ldap.html +12 -0
  514. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-tabs-realm.html +24 -0
  515. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-tabs-role.html +16 -0
  516. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-tabs-user-storage.html +11 -0
  517. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-tabs-user.html +18 -0
  518. package/aqtion/docker/config/keycloak/themes/base/admin/resources/templates/kc-tabs-users.html +11 -0
  519. package/aqtion/docker/config/keycloak/themes/base/admin/theme.properties +1 -0
  520. package/aqtion/docker/config/keycloak/themes/base/email/html/email-test.ftl +4 -0
  521. package/aqtion/docker/config/keycloak/themes/base/email/html/email-update-confirmation.ftl +5 -0
  522. package/aqtion/docker/config/keycloak/themes/base/email/html/email-verification-with-code.ftl +4 -0
  523. package/aqtion/docker/config/keycloak/themes/base/email/html/email-verification.ftl +4 -0
  524. package/aqtion/docker/config/keycloak/themes/base/email/html/event-login_error.ftl +4 -0
  525. package/aqtion/docker/config/keycloak/themes/base/email/html/event-remove_totp.ftl +4 -0
  526. package/aqtion/docker/config/keycloak/themes/base/email/html/event-update_password.ftl +4 -0
  527. package/aqtion/docker/config/keycloak/themes/base/email/html/event-update_totp.ftl +4 -0
  528. package/aqtion/docker/config/keycloak/themes/base/email/html/executeActions.ftl +8 -0
  529. package/aqtion/docker/config/keycloak/themes/base/email/html/identity-provider-link.ftl +4 -0
  530. package/aqtion/docker/config/keycloak/themes/base/email/html/password-reset.ftl +4 -0
  531. package/aqtion/docker/config/keycloak/themes/base/email/html/template.ftl +7 -0
  532. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_ca.properties +21 -0
  533. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_cs.properties +60 -0
  534. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_da.properties +47 -0
  535. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_de.properties +43 -0
  536. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_en.properties +55 -0
  537. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_es.properties +21 -0
  538. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_fi.properties +46 -0
  539. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_fr.properties +46 -0
  540. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_hu.properties +47 -0
  541. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_it.properties +50 -0
  542. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_ja.properties +52 -0
  543. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_lt.properties +25 -0
  544. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_nl.properties +38 -0
  545. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_no.properties +24 -0
  546. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_pl.properties +56 -0
  547. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_pt_BR.properties +51 -0
  548. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_ru.properties +25 -0
  549. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_sk.properties +48 -0
  550. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_sv.properties +25 -0
  551. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_tr.properties +51 -0
  552. package/aqtion/docker/config/keycloak/themes/base/email/messages/messages_zh_CN.properties +25 -0
  553. package/aqtion/docker/config/keycloak/themes/base/email/text/email-test.ftl +2 -0
  554. package/aqtion/docker/config/keycloak/themes/base/email/text/email-update-confirmation.ftl +2 -0
  555. package/aqtion/docker/config/keycloak/themes/base/email/text/email-verification-with-code.ftl +2 -0
  556. package/aqtion/docker/config/keycloak/themes/base/email/text/email-verification.ftl +2 -0
  557. package/aqtion/docker/config/keycloak/themes/base/email/text/event-login_error.ftl +2 -0
  558. package/aqtion/docker/config/keycloak/themes/base/email/text/event-remove_totp.ftl +2 -0
  559. package/aqtion/docker/config/keycloak/themes/base/email/text/event-update_password.ftl +2 -0
  560. package/aqtion/docker/config/keycloak/themes/base/email/text/event-update_totp.ftl +2 -0
  561. package/aqtion/docker/config/keycloak/themes/base/email/text/executeActions.ftl +4 -0
  562. package/aqtion/docker/config/keycloak/themes/base/email/text/identity-provider-link.ftl +2 -0
  563. package/aqtion/docker/config/keycloak/themes/base/email/text/password-reset.ftl +2 -0
  564. package/aqtion/docker/config/keycloak/themes/base/email/theme.properties +1 -0
  565. package/aqtion/docker/config/keycloak/themes/base/login/cli_splash.ftl +7 -0
  566. package/aqtion/docker/config/keycloak/themes/base/login/code.ftl +19 -0
  567. package/aqtion/docker/config/keycloak/themes/base/login/delete-account-confirm.ftl +33 -0
  568. package/aqtion/docker/config/keycloak/themes/base/login/error.ftl +16 -0
  569. package/aqtion/docker/config/keycloak/themes/base/login/frontchannel-logout.ftl +30 -0
  570. package/aqtion/docker/config/keycloak/themes/base/login/idp-review-user-profile.ftl +23 -0
  571. package/aqtion/docker/config/keycloak/themes/base/login/info.ftl +24 -0
  572. package/aqtion/docker/config/keycloak/themes/base/login/login-config-totp.ftl +108 -0
  573. package/aqtion/docker/config/keycloak/themes/base/login/login-idp-link-confirm.ftl +13 -0
  574. package/aqtion/docker/config/keycloak/themes/base/login/login-idp-link-email.ftl +16 -0
  575. package/aqtion/docker/config/keycloak/themes/base/login/login-oauth-grant.ftl +68 -0
  576. package/aqtion/docker/config/keycloak/themes/base/login/login-oauth2-device-verify-user-code.ftl +31 -0
  577. package/aqtion/docker/config/keycloak/themes/base/login/login-otp.ftl +58 -0
  578. package/aqtion/docker/config/keycloak/themes/base/login/login-page-expired.ftl +11 -0
  579. package/aqtion/docker/config/keycloak/themes/base/login/login-password.ftl +43 -0
  580. package/aqtion/docker/config/keycloak/themes/base/login/login-recovery-authn-code-config.ftl +184 -0
  581. package/aqtion/docker/config/keycloak/themes/base/login/login-recovery-authn-code-input.ftl +32 -0
  582. package/aqtion/docker/config/keycloak/themes/base/login/login-reset-password.ftl +39 -0
  583. package/aqtion/docker/config/keycloak/themes/base/login/login-update-password.ftl +71 -0
  584. package/aqtion/docker/config/keycloak/themes/base/login/login-update-profile.ftl +99 -0
  585. package/aqtion/docker/config/keycloak/themes/base/login/login-username.ftl +87 -0
  586. package/aqtion/docker/config/keycloak/themes/base/login/login-verify-email.ftl +14 -0
  587. package/aqtion/docker/config/keycloak/themes/base/login/login-x509-info.ftl +55 -0
  588. package/aqtion/docker/config/keycloak/themes/base/login/login.ftl +105 -0
  589. package/aqtion/docker/config/keycloak/themes/base/login/logout-confirm.ftl +38 -0
  590. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_ca.properties +200 -0
  591. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_cs.properties +425 -0
  592. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_da.properties +363 -0
  593. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_de.properties +420 -0
  594. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_en.properties +501 -0
  595. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_es.properties +201 -0
  596. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_fi.properties +443 -0
  597. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_fr.properties +405 -0
  598. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_hu.properties +356 -0
  599. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_it.properties +354 -0
  600. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_ja.properties +356 -0
  601. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_lt.properties +216 -0
  602. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_lv.properties +254 -0
  603. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_nl.properties +294 -0
  604. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_no.properties +214 -0
  605. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_pl.properties +318 -0
  606. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_pt_BR.properties +381 -0
  607. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_ru.properties +217 -0
  608. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_sk.properties +265 -0
  609. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_sv.properties +214 -0
  610. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_tr.properties +296 -0
  611. package/aqtion/docker/config/keycloak/themes/base/login/messages/messages_zh_CN.properties +216 -0
  612. package/aqtion/docker/config/keycloak/themes/base/login/register-user-profile.ftl +74 -0
  613. package/aqtion/docker/config/keycloak/themes/base/login/register.ftl +141 -0
  614. package/aqtion/docker/config/keycloak/themes/base/login/resources/js/base64url.js +114 -0
  615. package/aqtion/docker/config/keycloak/themes/base/login/saml-post-form.ftl +25 -0
  616. package/aqtion/docker/config/keycloak/themes/base/login/select-authenticator.ftl +43 -0
  617. package/aqtion/docker/config/keycloak/themes/base/login/template.ftl +154 -0
  618. package/aqtion/docker/config/keycloak/themes/base/login/terms.ftl +15 -0
  619. package/aqtion/docker/config/keycloak/themes/base/login/theme.properties +1 -0
  620. package/aqtion/docker/config/keycloak/themes/base/login/update-email.ftl +42 -0
  621. package/aqtion/docker/config/keycloak/themes/base/login/update-user-profile.ftl +28 -0
  622. package/aqtion/docker/config/keycloak/themes/base/login/user-profile-commons.ftl +187 -0
  623. package/aqtion/docker/config/keycloak/themes/base/login/webauthn-authenticate.ftl +168 -0
  624. package/aqtion/docker/config/keycloak/themes/base/login/webauthn-error.ftl +36 -0
  625. package/aqtion/docker/config/keycloak/themes/base/login/webauthn-register.ftl +192 -0
  626. package/aqtion/docker/config/keycloak/themes/cerema/account/account.ftl +93 -0
  627. package/aqtion/docker/config/keycloak/themes/cerema/account/messages/messages_fr.properties +1 -0
  628. package/aqtion/docker/config/keycloak/themes/cerema/account/resources/css/account.css +292 -0
  629. package/aqtion/docker/config/keycloak/themes/cerema/account/resources/img/favicon.ico +0 -0
  630. package/aqtion/docker/config/keycloak/themes/cerema/account/resources/img/icon-sidebar-active.png +0 -0
  631. package/aqtion/docker/config/keycloak/themes/cerema/account/resources/img/keycloak-logo.png +0 -0
  632. package/aqtion/docker/config/keycloak/themes/cerema/account/resources/img/logo.png +0 -0
  633. package/aqtion/docker/config/keycloak/themes/cerema/account/theme.properties +11 -0
  634. package/aqtion/docker/config/keycloak/themes/cerema/admin/resources/css/styles.css +420 -0
  635. package/aqtion/docker/config/keycloak/themes/cerema/admin/resources/img/favicon.ico +0 -0
  636. package/aqtion/docker/config/keycloak/themes/cerema/admin/resources/img/keyclok-logo.png +0 -0
  637. package/aqtion/docker/config/keycloak/themes/cerema/admin/resources/img/keyclok-logo.svg +215 -0
  638. package/aqtion/docker/config/keycloak/themes/cerema/admin/resources/img/select-arrow.png +0 -0
  639. package/aqtion/docker/config/keycloak/themes/cerema/admin/theme.properties +3 -0
  640. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/angular/errors.json +150 -0
  641. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/angular/treeview/LICENSE +20 -0
  642. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/angular/treeview/README.md +128 -0
  643. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/angular/treeview/angular.treeview.js +97 -0
  644. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/angular/treeview/angular.treeview.min.js +9 -0
  645. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/angular/treeview/css/angular.treeview.css +99 -0
  646. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/angular/treeview/img/file.png +0 -0
  647. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/angular/treeview/img/folder-closed.png +0 -0
  648. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/angular/treeview/img/folder.png +0 -0
  649. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/angular/ui-bootstrap-tpls-0.11.0.js +4172 -0
  650. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/angular/version.json +22 -0
  651. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/components/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  652. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/components/font-awesome/fonts/fontawesome-webfont.svg +1085 -0
  653. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/components/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  654. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/components/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  655. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/components/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  656. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/filesaver/FileSaver.js +189 -0
  657. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/fileupload/FileAPI.min.js +72 -0
  658. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/fileupload/angular-file-upload-html5-shim.js +25 -0
  659. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/fileupload/angular-file-upload-html5-shim.min.js +2 -0
  660. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/fileupload/angular-file-upload-shim.js +237 -0
  661. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/fileupload/angular-file-upload-shim.min.js +2 -0
  662. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/fileupload/angular-file-upload.js +156 -0
  663. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/fileupload/angular-file-upload.min.js +2 -0
  664. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/css/patternfly.css +14320 -0
  665. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Bold-webfont.eot +0 -0
  666. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Bold-webfont.svg +2014 -0
  667. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Bold-webfont.ttf +0 -0
  668. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Bold-webfont.woff +0 -0
  669. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  670. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-BoldItalic-webfont.svg +2019 -0
  671. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-BoldItalic-webfont.ttf +0 -0
  672. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  673. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-ExtraBold-webfont.eot +0 -0
  674. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-ExtraBold-webfont.svg +2016 -0
  675. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-ExtraBold-webfont.ttf +0 -0
  676. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-ExtraBold-webfont.woff +0 -0
  677. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-ExtraBoldItalic-webfont.eot +0 -0
  678. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-ExtraBoldItalic-webfont.svg +2024 -0
  679. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-ExtraBoldItalic-webfont.ttf +0 -0
  680. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-ExtraBoldItalic-webfont.woff +0 -0
  681. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Italic-webfont.eot +0 -0
  682. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Italic-webfont.svg +2019 -0
  683. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Italic-webfont.ttf +0 -0
  684. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Italic-webfont.woff +0 -0
  685. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Light-webfont.eot +0 -0
  686. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Light-webfont.svg +2013 -0
  687. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Light-webfont.ttf +0 -0
  688. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Light-webfont.woff +0 -0
  689. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  690. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-LightItalic-webfont.svg +2021 -0
  691. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-LightItalic-webfont.ttf +0 -0
  692. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  693. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Regular-webfont.eot +0 -0
  694. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Regular-webfont.svg +2017 -0
  695. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Regular-webfont.ttf +0 -0
  696. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Regular-webfont.woff +0 -0
  697. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Semibold-webfont.eot +0 -0
  698. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Semibold-webfont.svg +2015 -0
  699. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  700. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-Semibold-webfont.woff +0 -0
  701. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  702. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-SemiboldItalic-webfont.svg +2019 -0
  703. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  704. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  705. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/PatternFlyIcons-webfont.eot +0 -0
  706. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/PatternFlyIcons-webfont.svg +133 -0
  707. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/PatternFlyIcons-webfont.ttf +0 -0
  708. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/fonts/PatternFlyIcons-webfont.woff +0 -0
  709. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/img/apple-touch-icon-114-precomposed.png +0 -0
  710. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/img/apple-touch-icon-144-precomposed.png +0 -0
  711. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/img/apple-touch-icon-57-precomposed.png +0 -0
  712. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/img/apple-touch-icon-72-precomposed.png +0 -0
  713. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/img/bg-login.jpg +0 -0
  714. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/img/spinner-lg.gif +0 -0
  715. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/img/spinner-sm.gif +0 -0
  716. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/img/spinner-xs.gif +0 -0
  717. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/patternfly/img/spinner.gif +0 -0
  718. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/ui-ace/ace.js +18957 -0
  719. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/ui-ace/min/ace.js +7950 -0
  720. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/ui-ace/min/mode-javascript.js +1 -0
  721. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/ui-ace/min/theme-github.js +1 -0
  722. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/ui-ace/min/worker-javascript.js +1 -0
  723. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/ui-ace/mode-javascript.js +1140 -0
  724. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/ui-ace/theme-github.js +103 -0
  725. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/ui-ace/ui-ace.js +327 -0
  726. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/ui-ace/ui-ace.min.js +7 -0
  727. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/ui-ace/worker-javascript.js +12651 -0
  728. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/zocial/zocial-regular-webfont.eot +0 -0
  729. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/zocial/zocial-regular-webfont.svg +1108 -0
  730. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/zocial/zocial-regular-webfont.ttf +0 -0
  731. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/zocial/zocial-regular-webfont.woff +0 -0
  732. package/aqtion/docker/config/keycloak/themes/cerema/common/resources/lib/zocial/zocial.css +1215 -0
  733. package/aqtion/docker/config/keycloak/themes/cerema/email/html/email-verification.ftl +4 -0
  734. package/aqtion/docker/config/keycloak/themes/cerema/email/html/template.ftl +7 -0
  735. package/aqtion/docker/config/keycloak/themes/cerema/email/messages/messages_en.properties +9 -0
  736. package/aqtion/docker/config/keycloak/themes/cerema/email/messages/messages_fr.properties +9 -0
  737. package/aqtion/docker/config/keycloak/themes/cerema/email/theme.properties +1 -0
  738. package/aqtion/docker/config/keycloak/themes/cerema/login/login-oauth-grant.ftl +57 -0
  739. package/aqtion/docker/config/keycloak/themes/cerema/login/login-reset-password.ftl +32 -0
  740. package/aqtion/docker/config/keycloak/themes/cerema/login/login.ftl +87 -0
  741. package/aqtion/docker/config/keycloak/themes/cerema/login/messages/messages_fr.properties +29 -0
  742. package/aqtion/docker/config/keycloak/themes/cerema/login/register.ftl +169 -0
  743. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/css/bamboo.css +238 -0
  744. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/css/main.css +1029 -0
  745. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/css/util.css +9826 -0
  746. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Linearicons-Free-v1.0.0/WebFont/Linearicons-Free.eot +0 -0
  747. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Linearicons-Free-v1.0.0/WebFont/Linearicons-Free.svg +541 -0
  748. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Linearicons-Free-v1.0.0/WebFont/Linearicons-Free.ttf +0 -0
  749. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Linearicons-Free-v1.0.0/WebFont/Linearicons-Free.woff +0 -0
  750. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Linearicons-Free-v1.0.0/WebFont/Linearicons-Free.woff2 +0 -0
  751. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Linearicons-Free-v1.0.0/icon-font.min.css +7 -0
  752. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/OFL.txt +95 -0
  753. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-Black.ttf +0 -0
  754. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-BlackItalic.ttf +0 -0
  755. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-Bold.ttf +0 -0
  756. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-BoldItalic.ttf +0 -0
  757. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-ExtraBold.ttf +0 -0
  758. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-ExtraBoldItalic.ttf +0 -0
  759. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-ExtraLight.ttf +0 -0
  760. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-ExtraLightItalic.ttf +0 -0
  761. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-Italic.ttf +0 -0
  762. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-Light.ttf +0 -0
  763. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-LightItalic.ttf +0 -0
  764. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-Medium.ttf +0 -0
  765. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-MediumItalic.ttf +0 -0
  766. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-Regular.ttf +0 -0
  767. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-SemiBold.ttf +0 -0
  768. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-SemiBoldItalic.ttf +0 -0
  769. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-Thin.ttf +0 -0
  770. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Raleway/Raleway-ThinItalic.ttf +0 -0
  771. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/SIL Open Font License.txt +155 -0
  772. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-Black.otf +0 -0
  773. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-Bold.otf +0 -0
  774. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-BoldItalic.otf +0 -0
  775. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-BoldUpright.otf +0 -0
  776. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-Light.otf +0 -0
  777. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-LightItalic.otf +0 -0
  778. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-LightUpright.otf +0 -0
  779. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-Regular.otf +0 -0
  780. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-RegularItalic.otf +0 -0
  781. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-RegularUpright.otf +0 -0
  782. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-Semibold.otf +0 -0
  783. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-SemiboldItalic.otf +0 -0
  784. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-SemiboldUpright.otf +0 -0
  785. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-Thin.otf +0 -0
  786. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-ThinItalic.otf +0 -0
  787. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/Titillium/Titillium-ThinUpright.otf +0 -0
  788. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/HELP-US-OUT.txt +7 -0
  789. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/css/font-awesome.css +3049 -0
  790. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/css/font-awesome.min.css +4 -0
  791. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/fonts/FontAwesome.otf +0 -0
  792. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/fonts/fontawesome-webfont.eot +0 -0
  793. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/fonts/fontawesome-webfont.svg +2672 -0
  794. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf +0 -0
  795. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/fonts/fontawesome-webfont.woff +0 -0
  796. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 +0 -0
  797. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/less/animated.less +34 -0
  798. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/less/bordered-pulled.less +45 -0
  799. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/less/core.less +12 -0
  800. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/less/fixed-width.less +6 -0
  801. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/less/font-awesome.less +18 -0
  802. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/less/icons.less +2813 -0
  803. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/less/larger.less +25 -0
  804. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/less/list.less +24 -0
  805. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/less/mixins.less +60 -0
  806. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/less/path.less +15 -0
  807. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/less/rotated-flipped.less +33 -0
  808. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/less/screen-reader.less +10 -0
  809. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/less/stacked.less +30 -0
  810. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/less/variables.less +800 -0
  811. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/scss/_animated.scss +34 -0
  812. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/scss/_bordered-pulled.scss +45 -0
  813. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/scss/_core.scss +12 -0
  814. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/scss/_fixed-width.scss +6 -0
  815. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/scss/_icons.scss +2813 -0
  816. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/scss/_larger.scss +25 -0
  817. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/scss/_list.scss +24 -0
  818. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/scss/_mixins.scss +60 -0
  819. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/scss/_path.scss +15 -0
  820. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/scss/_rotated-flipped.scss +33 -0
  821. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/scss/_screen-reader.scss +10 -0
  822. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/scss/_stacked.scss +30 -0
  823. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/scss/_variables.scss +800 -0
  824. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/font-awesome-4.7.0/scss/font-awesome.scss +18 -0
  825. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-Black.ttf +0 -0
  826. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-BlackItalic.ttf +0 -0
  827. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-Bold.ttf +0 -0
  828. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-BoldItalic.ttf +0 -0
  829. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-ExtraBold.ttf +0 -0
  830. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-ExtraBoldItalic.ttf +0 -0
  831. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-ExtraLight.ttf +0 -0
  832. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-ExtraLightItalic.ttf +0 -0
  833. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-Italic.ttf +0 -0
  834. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-Light.ttf +0 -0
  835. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-LightItalic.ttf +0 -0
  836. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-Medium.ttf +0 -0
  837. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-MediumItalic.ttf +0 -0
  838. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-Regular.ttf +0 -0
  839. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-SemiBold.ttf +0 -0
  840. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-SemiBoldItalic.ttf +0 -0
  841. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-Thin.ttf +0 -0
  842. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/Montserrat-ThinItalic.ttf +0 -0
  843. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/montserrat/OFL.txt +93 -0
  844. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-Black.ttf +0 -0
  845. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-BlackItalic.ttf +0 -0
  846. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-Bold.ttf +0 -0
  847. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-BoldItalic.ttf +0 -0
  848. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-ExtraBold.ttf +0 -0
  849. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-ExtraBoldItalic.ttf +0 -0
  850. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-ExtraLight.ttf +0 -0
  851. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-ExtraLightItalic.ttf +0 -0
  852. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-Italic.ttf +0 -0
  853. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-Light.ttf +0 -0
  854. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-LightItalic.ttf +0 -0
  855. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-Medium.ttf +0 -0
  856. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-MediumItalic.ttf +0 -0
  857. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-Regular.ttf +0 -0
  858. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-SemiBold.ttf +0 -0
  859. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-SemiBoldItalic.ttf +0 -0
  860. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-Thin.ttf +0 -0
  861. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/fonts/poppins/Poppins-ThinItalic.ttf +0 -0
  862. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/images/agentconnect-btn-principal-hover.svg +39 -0
  863. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/images/agentconnect-btn-principal.svg +39 -0
  864. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/images/bg-01.jpg +0 -0
  865. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/images/bg-02.jpg +0 -0
  866. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/images/franceconnect-btn-hover.svg +13 -0
  867. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/images/franceconnect-btn.svg +13 -0
  868. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/images/icons/favicon.ico +0 -0
  869. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/images/logo.png +0 -0
  870. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/images/white_logo.png +0 -0
  871. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/js/bamboo.js +950 -0
  872. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/js/main.js +73 -0
  873. package/aqtion/docker/config/keycloak/themes/cerema/login/resources/vendor/jquery/jquery-3.2.1.min.js +4 -0
  874. package/aqtion/docker/config/keycloak/themes/cerema/login/template.ftl +119 -0
  875. package/aqtion/docker/config/keycloak/themes/cerema/login/theme.properties +94 -0
  876. package/aqtion/docker/config/keycloak/themes/cerema/welcome/index.ftl +141 -0
  877. package/aqtion/docker/config/keycloak/themes/cerema/welcome/resources/admin-console.png +0 -0
  878. package/aqtion/docker/config/keycloak/themes/cerema/welcome/resources/alert.png +0 -0
  879. package/aqtion/docker/config/keycloak/themes/cerema/welcome/resources/bg.png +0 -0
  880. package/aqtion/docker/config/keycloak/themes/cerema/welcome/resources/bug.png +0 -0
  881. package/aqtion/docker/config/keycloak/themes/cerema/welcome/resources/css/welcome.css +165 -0
  882. package/aqtion/docker/config/keycloak/themes/cerema/welcome/resources/favicon.ico +0 -0
  883. package/aqtion/docker/config/keycloak/themes/cerema/welcome/resources/jboss_community.png +0 -0
  884. package/aqtion/docker/config/keycloak/themes/cerema/welcome/resources/keycloak-project.png +0 -0
  885. package/aqtion/docker/config/keycloak/themes/cerema/welcome/resources/keycloak_logo.png +0 -0
  886. package/aqtion/docker/config/keycloak/themes/cerema/welcome/resources/logo.png +0 -0
  887. package/aqtion/docker/config/keycloak/themes/cerema/welcome/resources/mail.png +0 -0
  888. package/aqtion/docker/config/keycloak/themes/cerema/welcome/resources/user.png +0 -0
  889. package/aqtion/docker/config/keycloak/themes/cerema/welcome/theme.properties +4 -0
  890. package/aqtion/docker/config/keycloak/themes/keycloak/account/resources/css/account.css +277 -0
  891. package/aqtion/docker/config/keycloak/themes/keycloak/account/resources/img/icon-sidebar-active.png +0 -0
  892. package/aqtion/docker/config/keycloak/themes/keycloak/account/resources/img/keycloak-logo.png +0 -0
  893. package/aqtion/docker/config/keycloak/themes/keycloak/account/resources/img/logo.png +0 -0
  894. package/aqtion/docker/config/keycloak/themes/keycloak/account/theme.properties +14 -0
  895. package/aqtion/docker/config/keycloak/themes/keycloak/admin/resources/css/styles.css +505 -0
  896. package/aqtion/docker/config/keycloak/themes/keycloak/admin/resources/img/keyclok-logo.png +0 -0
  897. package/aqtion/docker/config/keycloak/themes/keycloak/admin/resources/img/keyclok-logo.svg +194 -0
  898. package/aqtion/docker/config/keycloak/themes/keycloak/admin/resources/img/select-arrow.png +0 -0
  899. package/aqtion/docker/config/keycloak/themes/keycloak/admin/theme.properties +5 -0
  900. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/img/favicon.ico +0 -0
  901. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/angular/errors.json +1 -0
  902. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/angular/treeview/LICENSE +20 -0
  903. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/angular/treeview/angular.treeview.js +95 -0
  904. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/angular/treeview/angular.treeview.min.js +9 -0
  905. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/angular/treeview/css/angular.treeview.css +99 -0
  906. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/angular/treeview/img/file.png +0 -0
  907. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/angular/treeview/img/folder-closed.png +0 -0
  908. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/angular/treeview/img/folder.png +0 -0
  909. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/angular/ui-bootstrap-tpls-0.11.0.js +4116 -0
  910. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/angular/version.json +1 -0
  911. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/filesaver/FileSaver.js +188 -0
  912. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/fileupload/FileAPI.min.js +72 -0
  913. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/fileupload/angular-file-upload-html5-shim.js +25 -0
  914. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/fileupload/angular-file-upload-html5-shim.min.js +2 -0
  915. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/fileupload/angular-file-upload-shim.js +215 -0
  916. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/fileupload/angular-file-upload-shim.min.js +2 -0
  917. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/fileupload/angular-file-upload.js +156 -0
  918. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/fileupload/angular-file-upload.min.js +2 -0
  919. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/pficon/pficon.css +21 -0
  920. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/pficon/pficon.woff +0 -0
  921. package/aqtion/docker/config/keycloak/themes/keycloak/common/resources/lib/pficon/pficon.woff2 +0 -0
  922. package/aqtion/docker/config/keycloak/themes/keycloak/email/theme.properties +1 -0
  923. package/aqtion/docker/config/keycloak/themes/keycloak/login/resources/css/login.css +596 -0
  924. package/aqtion/docker/config/keycloak/themes/keycloak/login/resources/img/feedback-error-arrow-down.png +0 -0
  925. package/aqtion/docker/config/keycloak/themes/keycloak/login/resources/img/feedback-error-sign.png +0 -0
  926. package/aqtion/docker/config/keycloak/themes/keycloak/login/resources/img/feedback-success-arrow-down.png +0 -0
  927. package/aqtion/docker/config/keycloak/themes/keycloak/login/resources/img/feedback-success-sign.png +0 -0
  928. package/aqtion/docker/config/keycloak/themes/keycloak/login/resources/img/feedback-warning-arrow-down.png +0 -0
  929. package/aqtion/docker/config/keycloak/themes/keycloak/login/resources/img/feedback-warning-sign.png +0 -0
  930. package/aqtion/docker/config/keycloak/themes/keycloak/login/resources/img/keycloak-bg.png +0 -0
  931. package/aqtion/docker/config/keycloak/themes/keycloak/login/resources/img/keycloak-logo-text.png +0 -0
  932. package/aqtion/docker/config/keycloak/themes/keycloak/login/resources/img/keycloak-logo.png +0 -0
  933. package/aqtion/docker/config/keycloak/themes/keycloak/login/theme.properties +161 -0
  934. package/aqtion/docker/config/keycloak/themes/keycloak/welcome/index.ftl +132 -0
  935. package/aqtion/docker/config/keycloak/themes/keycloak/welcome/resources/admin-console.png +0 -0
  936. package/aqtion/docker/config/keycloak/themes/keycloak/welcome/resources/alert.png +0 -0
  937. package/aqtion/docker/config/keycloak/themes/keycloak/welcome/resources/bg.png +0 -0
  938. package/aqtion/docker/config/keycloak/themes/keycloak/welcome/resources/bug.png +0 -0
  939. package/aqtion/docker/config/keycloak/themes/keycloak/welcome/resources/css/welcome.css +140 -0
  940. package/aqtion/docker/config/keycloak/themes/keycloak/welcome/resources/keycloak-project.png +0 -0
  941. package/aqtion/docker/config/keycloak/themes/keycloak/welcome/resources/keycloak_logo.png +0 -0
  942. package/aqtion/docker/config/keycloak/themes/keycloak/welcome/resources/logo.png +0 -0
  943. package/aqtion/docker/config/keycloak/themes/keycloak/welcome/resources/mail.png +0 -0
  944. package/aqtion/docker/config/keycloak/themes/keycloak/welcome/resources/user.png +0 -0
  945. package/aqtion/docker/config/keycloak/themes/keycloak/welcome/theme.properties +7 -0
  946. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/index.ftl +295 -0
  947. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_ca.properties +1 -0
  948. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_cs.properties +1 -0
  949. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_da.properties +1 -0
  950. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_de.properties +129 -0
  951. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_en.properties +167 -0
  952. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_es.properties +1 -0
  953. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_fr.properties +44 -0
  954. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_hu.properties +1 -0
  955. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_it.properties +1 -0
  956. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_ja.properties +1 -0
  957. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_lt.properties +1 -0
  958. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_nl.properties +1 -0
  959. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_no.properties +1 -0
  960. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_pl.properties +1 -0
  961. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_pt_BR.properties +121 -0
  962. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_ru.properties +1 -0
  963. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_sk.properties +1 -0
  964. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_sv.properties +1 -0
  965. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_tr.properties +1 -0
  966. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/messages/messages_zh_CN.properties +1 -0
  967. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/App.js +69 -0
  968. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/App.js.map +1 -0
  969. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/ContentPages.js +157 -0
  970. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/ContentPages.js.map +1 -0
  971. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/Main.js +97 -0
  972. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/Main.js.map +1 -0
  973. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/PageHeaderTool.js +29 -0
  974. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/PageHeaderTool.js.map +1 -0
  975. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/PageNav.js +51 -0
  976. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/PageNav.js.map +1 -0
  977. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/PageToolbar.js +60 -0
  978. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/PageToolbar.js.map +1 -0
  979. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/account-service/AccountServiceContext.js +3 -0
  980. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/account-service/AccountServiceContext.js.map +1 -0
  981. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/account-service/account.service.js +149 -0
  982. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/account-service/account.service.js.map +1 -0
  983. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/ContentAlert.js +113 -0
  984. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/ContentAlert.js.map +1 -0
  985. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/ContentPage.js +63 -0
  986. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/ContentPage.js.map +1 -0
  987. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/account-page/AccountPage.js +302 -0
  988. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/account-page/AccountPage.js.map +1 -0
  989. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/aia-page/AppInitiatedActionPage.js +70 -0
  990. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/aia-page/AppInitiatedActionPage.js.map +1 -0
  991. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/applications-page/ApplicationsPage.js +186 -0
  992. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/applications-page/ApplicationsPage.js.map +1 -0
  993. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/authenticator-page/AuthenticatorPage.js +28 -0
  994. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/authenticator-page/AuthenticatorPage.js.map +1 -0
  995. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/device-activity-page/DeviceActivityPage.js +250 -0
  996. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/device-activity-page/DeviceActivityPage.js.map +1 -0
  997. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/forbidden-page/ForbiddenPage.js +36 -0
  998. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/forbidden-page/ForbiddenPage.js.map +1 -0
  999. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/linked-accounts-page/LinkedAccountsPage.js +310 -0
  1000. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/linked-accounts-page/LinkedAccountsPage.js.map +1 -0
  1001. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/AbstractResourceTable.js +40 -0
  1002. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/AbstractResourceTable.js.map +1 -0
  1003. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/EditTheResource.js +120 -0
  1004. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/EditTheResource.js.map +1 -0
  1005. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/MyResourcesPage.js +284 -0
  1006. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/MyResourcesPage.js.map +1 -0
  1007. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/PermissionRequest.js +151 -0
  1008. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/PermissionRequest.js.map +1 -0
  1009. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/PermissionSelect.js +103 -0
  1010. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/PermissionSelect.js.map +1 -0
  1011. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/ResourcesTable.js +313 -0
  1012. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/ResourcesTable.js.map +1 -0
  1013. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/ShareTheResource.js +222 -0
  1014. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/ShareTheResource.js.map +1 -0
  1015. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/SharedResourcesTable.js +97 -0
  1016. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/SharedResourcesTable.js.map +1 -0
  1017. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/resource-model.js +16 -0
  1018. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/my-resources-page/resource-model.js.map +1 -0
  1019. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/page-not-found/PageNotFound.js +31 -0
  1020. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/page-not-found/PageNotFound.js.map +1 -0
  1021. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/signingin-page/SigningInPage.js +350 -0
  1022. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content/signingin-page/SigningInPage.js.map +1 -0
  1023. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/content.json +60 -0
  1024. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/img/socialmedia/socialmedia_icons_facebook_transparent.svg +19 -0
  1025. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/img/socialmedia/socialmedia_icons_github_transparent.svg +16 -0
  1026. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/img/socialmedia/socialmedia_icons_google_transparent.svg +77 -0
  1027. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/img/socialmedia/socialmedia_icons_instagram_transparent.svg +23 -0
  1028. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/img/socialmedia/socialmedia_icons_linkedin_transparent.svg +23 -0
  1029. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/img/socialmedia/socialmedia_icons_microsoft_transparent.svg +34 -0
  1030. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/img/socialmedia/socialmedia_icons_openshift_transparent.svg +15 -0
  1031. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/img/socialmedia/socialmedia_icons_stack_transparent.svg +26 -0
  1032. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/img/socialmedia/socialmedia_icons_twitter_transparent.svg +19 -0
  1033. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/keycloak-service/KeycloakContext.js +3 -0
  1034. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/keycloak-service/KeycloakContext.js.map +1 -0
  1035. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/keycloak-service/keycloak.service.js +77 -0
  1036. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/keycloak-service/keycloak.service.js.map +1 -0
  1037. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/util/AIACommand.js +33 -0
  1038. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/util/AIACommand.js.map +1 -0
  1039. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/util/ParseLink.js +19 -0
  1040. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/util/ParseLink.js.map +1 -0
  1041. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/util/RedirectUri.js +39 -0
  1042. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/util/RedirectUri.js.map +1 -0
  1043. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/util/TimeUtil.js +50 -0
  1044. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/util/TimeUtil.js.map +1 -0
  1045. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/welcome-page-scripts.js +89 -0
  1046. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/ContinueCancelModal.js +103 -0
  1047. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/ContinueCancelModal.js.map +1 -0
  1048. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/EmptyMessageState.js +38 -0
  1049. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/EmptyMessageState.js.map +1 -0
  1050. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/LocaleSelectors.js +41 -0
  1051. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/LocaleSelectors.js.map +1 -0
  1052. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/Logout.js +46 -0
  1053. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/Logout.js.map +1 -0
  1054. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/Msg.js +69 -0
  1055. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/Msg.js.map +1 -0
  1056. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/ReferrerDropdownItem.js +38 -0
  1057. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/ReferrerDropdownItem.js.map +1 -0
  1058. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/ReferrerLink.js +46 -0
  1059. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/ReferrerLink.js.map +1 -0
  1060. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/features.js +2 -0
  1061. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/resources/widgets/features.js.map +1 -0
  1062. package/aqtion/docker/config/keycloak/themes/keycloak.v2/account/theme.properties +18 -0
  1063. package/aqtion/docker/config/servers.json +14 -0
  1064. package/aqtion/docker/setup/docker-compose.yml +67 -0
  1065. package/aqtion/frontend/app/components/.gitkeep +0 -0
  1066. package/aqtion/frontend/app/interfaces/.gitkeep +0 -0
  1067. package/aqtion/frontend/app/menu.json +41 -0
  1068. package/aqtion/frontend/app/pages/pages-routing.module.ts +19 -0
  1069. package/aqtion/frontend/app/pages/profil/profil.component.html +3 -0
  1070. package/aqtion/frontend/app/pages/profil/profil.component.scss +0 -0
  1071. package/aqtion/frontend/app/pages/profil/profil.component.ts +27 -0
  1072. package/aqtion/frontend/app/pages/root/root.component.html +3 -0
  1073. package/aqtion/frontend/app/pages/root/root.component.scss +22 -0
  1074. package/aqtion/frontend/app/pages/root/root.component.ts +16 -0
  1075. package/aqtion/frontend/app/services/profils.service.ts +25 -0
  1076. package/aqtion/frontend/app-routing.module.ts +61 -0
  1077. package/aqtion/frontend/app.component.css +46 -0
  1078. package/aqtion/frontend/app.component.html +1 -0
  1079. package/aqtion/frontend/app.component.ts +60 -0
  1080. package/aqtion/frontend/app.module.ts +103 -0
  1081. package/aqtion/frontend/assets/favicon.ico +0 -0
  1082. package/aqtion/frontend/assets/i18n/fr.json +33 -0
  1083. package/aqtion/frontend/assets/images/599x157.png +0 -0
  1084. package/aqtion/frontend/assets/images/cerema.png +0 -0
  1085. package/aqtion/frontend/assets/images/dollar.svg +1 -0
  1086. package/aqtion/frontend/assets/images/logo.png +0 -0
  1087. package/aqtion/frontend/assets/images/logo_title.png +0 -0
  1088. package/aqtion/frontend/assets/images/logorobot.png +0 -0
  1089. package/aqtion/frontend/assets/images/work-in-progress.svg +64 -0
  1090. package/aqtion/frontend/assets/layout/fonts/lato-v17-latin-ext_latin-300.woff +0 -0
  1091. package/aqtion/frontend/assets/layout/fonts/lato-v17-latin-ext_latin-300.woff2 +0 -0
  1092. package/aqtion/frontend/assets/layout/fonts/lato-v17-latin-ext_latin-700.woff +0 -0
  1093. package/aqtion/frontend/assets/layout/fonts/lato-v17-latin-ext_latin-700.woff2 +0 -0
  1094. package/aqtion/frontend/assets/layout/fonts/lato-v17-latin-ext_latin-regular.woff +0 -0
  1095. package/aqtion/frontend/assets/layout/fonts/lato-v17-latin-ext_latin-regular.woff2 +0 -0
  1096. package/aqtion/frontend/assets/layout/images/LogoCerema.svg +226 -0
  1097. package/aqtion/frontend/assets/layout/images/LogoCerema_horizontal.svg +167 -0
  1098. package/aqtion/frontend/assets/layout/images/SpinnerCerema.svg +6 -0
  1099. package/aqtion/frontend/assets/layout/images/Swagger-logo.png +0 -0
  1100. package/aqtion/frontend/assets/layout/images/authentication.svg +1 -0
  1101. package/aqtion/frontend/assets/layout/images/mail.svg +1 -0
  1102. package/aqtion/frontend/assets/layout/images/postgresql.svg +1 -0
  1103. package/aqtion/frontend/assets/layout/images/user.png +0 -0
  1104. package/aqtion/frontend/assets/layout/styles/layout/_breadcrumb.scss +18 -0
  1105. package/aqtion/frontend/assets/layout/styles/layout/_config.scss +33 -0
  1106. package/aqtion/frontend/assets/layout/styles/layout/_content.scss +20 -0
  1107. package/aqtion/frontend/assets/layout/styles/layout/_fonts.scss +29 -0
  1108. package/aqtion/frontend/assets/layout/styles/layout/_footer.scss +25 -0
  1109. package/aqtion/frontend/assets/layout/styles/layout/_main.scss +29 -0
  1110. package/aqtion/frontend/assets/layout/styles/layout/_responsive.scss +160 -0
  1111. package/aqtion/frontend/assets/layout/styles/layout/_sidebar.scss +2 -0
  1112. package/aqtion/frontend/assets/layout/styles/layout/_topbar.scss +250 -0
  1113. package/aqtion/frontend/assets/layout/styles/layout/_typography.scss +63 -0
  1114. package/aqtion/frontend/assets/layout/styles/layout/_utils.scss +19 -0
  1115. package/aqtion/frontend/assets/layout/styles/layout/layout.scss +15 -0
  1116. package/aqtion/frontend/assets/layout/styles/layout/preloading.css +73 -0
  1117. package/aqtion/frontend/assets/layout/styles/layout/preloading.scss +79 -0
  1118. package/aqtion/frontend/assets/layout/styles/layout/sidebar/_sidebar_slim.scss +132 -0
  1119. package/aqtion/frontend/assets/layout/styles/layout/sidebar/_sidebar_vertical.scss +132 -0
  1120. package/aqtion/frontend/assets/layout/styles/layout/theme/_dark.scss +10 -0
  1121. package/aqtion/frontend/assets/layout/styles/layout/theme/_light.scss +10 -0
  1122. package/aqtion/frontend/assets/layout/styles/layout/theme/_primary.scss +10 -0
  1123. package/aqtion/frontend/assets/layout/styles/layout/theme/_themes.scss +3 -0
  1124. package/aqtion/frontend/assets/layout/styles/theme/designer/_colors.scss +17 -0
  1125. package/aqtion/frontend/assets/layout/styles/theme/designer/_common.scss +68 -0
  1126. package/aqtion/frontend/assets/layout/styles/theme/designer/_components.scss +102 -0
  1127. package/aqtion/frontend/assets/layout/styles/theme/designer/_mixins.scss +203 -0
  1128. package/aqtion/frontend/assets/layout/styles/theme/designer/components/button/_button.scss +560 -0
  1129. package/aqtion/frontend/assets/layout/styles/theme/designer/components/button/_speeddial.scss +81 -0
  1130. package/aqtion/frontend/assets/layout/styles/theme/designer/components/button/_splitbutton.scss +381 -0
  1131. package/aqtion/frontend/assets/layout/styles/theme/designer/components/data/_carousel.scss +37 -0
  1132. package/aqtion/frontend/assets/layout/styles/theme/designer/components/data/_datatable.scss +278 -0
  1133. package/aqtion/frontend/assets/layout/styles/theme/designer/components/data/_dataview.scss +55 -0
  1134. package/aqtion/frontend/assets/layout/styles/theme/designer/components/data/_filter.scss +138 -0
  1135. package/aqtion/frontend/assets/layout/styles/theme/designer/components/data/_fullcalendar.scss +329 -0
  1136. package/aqtion/frontend/assets/layout/styles/theme/designer/components/data/_orderlist.scss +103 -0
  1137. package/aqtion/frontend/assets/layout/styles/theme/designer/components/data/_organizationchart.scss +50 -0
  1138. package/aqtion/frontend/assets/layout/styles/theme/designer/components/data/_paginator.scss +92 -0
  1139. package/aqtion/frontend/assets/layout/styles/theme/designer/components/data/_picklist.scss +103 -0
  1140. package/aqtion/frontend/assets/layout/styles/theme/designer/components/data/_timeline.scss +38 -0
  1141. package/aqtion/frontend/assets/layout/styles/theme/designer/components/data/_tree.scss +144 -0
  1142. package/aqtion/frontend/assets/layout/styles/theme/designer/components/data/_treetable.scss +246 -0
  1143. package/aqtion/frontend/assets/layout/styles/theme/designer/components/data/_virtualscroller.scss +28 -0
  1144. package/aqtion/frontend/assets/layout/styles/theme/designer/components/file/_fileupload.scss +58 -0
  1145. package/aqtion/frontend/assets/layout/styles/theme/designer/components/menu/_breadcrumb.scss +42 -0
  1146. package/aqtion/frontend/assets/layout/styles/theme/designer/components/menu/_contextmenu.scss +56 -0
  1147. package/aqtion/frontend/assets/layout/styles/theme/designer/components/menu/_dock.scss +86 -0
  1148. package/aqtion/frontend/assets/layout/styles/theme/designer/components/menu/_megamenu.scss +106 -0
  1149. package/aqtion/frontend/assets/layout/styles/theme/designer/components/menu/_menu.scss +45 -0
  1150. package/aqtion/frontend/assets/layout/styles/theme/designer/components/menu/_menubar.scss +183 -0
  1151. package/aqtion/frontend/assets/layout/styles/theme/designer/components/menu/_panelmenu.scss +140 -0
  1152. package/aqtion/frontend/assets/layout/styles/theme/designer/components/menu/_slidemenu.scss +59 -0
  1153. package/aqtion/frontend/assets/layout/styles/theme/designer/components/menu/_steps.scss +56 -0
  1154. package/aqtion/frontend/assets/layout/styles/theme/designer/components/menu/_tabmenu.scss +69 -0
  1155. package/aqtion/frontend/assets/layout/styles/theme/designer/components/menu/_tieredmenu.scss +60 -0
  1156. package/aqtion/frontend/assets/layout/styles/theme/designer/components/messages/_inlinemessage.scss +64 -0
  1157. package/aqtion/frontend/assets/layout/styles/theme/designer/components/messages/_message.scss +102 -0
  1158. package/aqtion/frontend/assets/layout/styles/theme/designer/components/messages/_toast.scss +95 -0
  1159. package/aqtion/frontend/assets/layout/styles/theme/designer/components/misc/_avatar.scss +30 -0
  1160. package/aqtion/frontend/assets/layout/styles/theme/designer/components/misc/_badge.scss +48 -0
  1161. package/aqtion/frontend/assets/layout/styles/theme/designer/components/misc/_blockui.scss +0 -0
  1162. package/aqtion/frontend/assets/layout/styles/theme/designer/components/misc/_chip.scss +38 -0
  1163. package/aqtion/frontend/assets/layout/styles/theme/designer/components/misc/_inplace.scss +17 -0
  1164. package/aqtion/frontend/assets/layout/styles/theme/designer/components/misc/_progressbar.scss +17 -0
  1165. package/aqtion/frontend/assets/layout/styles/theme/designer/components/misc/_scrolltop.scss +20 -0
  1166. package/aqtion/frontend/assets/layout/styles/theme/designer/components/misc/_skeleton.scss +8 -0
  1167. package/aqtion/frontend/assets/layout/styles/theme/designer/components/misc/_tag.scss +35 -0
  1168. package/aqtion/frontend/assets/layout/styles/theme/designer/components/misc/_terminal.scss +11 -0
  1169. package/aqtion/frontend/assets/layout/styles/theme/designer/components/multimedia/_galleria.scss +139 -0
  1170. package/aqtion/frontend/assets/layout/styles/theme/designer/components/multimedia/_image.scss +44 -0
  1171. package/aqtion/frontend/assets/layout/styles/theme/designer/components/overlay/_confirmpopup.scss +65 -0
  1172. package/aqtion/frontend/assets/layout/styles/theme/designer/components/overlay/_dialog.scss +64 -0
  1173. package/aqtion/frontend/assets/layout/styles/theme/designer/components/overlay/_overlaypanel.scss +62 -0
  1174. package/aqtion/frontend/assets/layout/styles/theme/designer/components/overlay/_sidebar.scss +23 -0
  1175. package/aqtion/frontend/assets/layout/styles/theme/designer/components/overlay/_tooltip.scss +33 -0
  1176. package/aqtion/frontend/assets/layout/styles/theme/designer/components/panel/_accordion.scss +119 -0
  1177. package/aqtion/frontend/assets/layout/styles/theme/designer/components/panel/_card.scss +30 -0
  1178. package/aqtion/frontend/assets/layout/styles/theme/designer/components/panel/_divider.scss +31 -0
  1179. package/aqtion/frontend/assets/layout/styles/theme/designer/components/panel/_fieldset.scss +47 -0
  1180. package/aqtion/frontend/assets/layout/styles/theme/designer/components/panel/_panel.scss +58 -0
  1181. package/aqtion/frontend/assets/layout/styles/theme/designer/components/panel/_scrollpanel.scss +6 -0
  1182. package/aqtion/frontend/assets/layout/styles/theme/designer/components/panel/_splitter.scss +19 -0
  1183. package/aqtion/frontend/assets/layout/styles/theme/designer/components/panel/_tabview.scss +78 -0
  1184. package/aqtion/frontend/assets/layout/styles/theme/designer/components/panel/_toolbar.scss +10 -0
  1185. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/_extensions.scss +90 -0
  1186. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/_variables.scss +867 -0
  1187. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/blue/theme.css +7341 -0
  1188. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/blue/theme.scss +12 -0
  1189. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/cyan/theme.css +7341 -0
  1190. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/cyan/theme.scss +12 -0
  1191. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/deeppurple/theme.css +7341 -0
  1192. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/deeppurple/theme.scss +12 -0
  1193. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/green/theme.css +7341 -0
  1194. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/green/theme.scss +12 -0
  1195. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/indigo/theme.css +7341 -0
  1196. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/indigo/theme.scss +12 -0
  1197. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/lime/theme.css +7341 -0
  1198. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/lime/theme.scss +12 -0
  1199. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/orange/theme.css +7341 -0
  1200. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/orange/theme.scss +12 -0
  1201. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/pink/theme.css +7341 -0
  1202. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/pink/theme.scss +12 -0
  1203. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/purple/theme.css +7341 -0
  1204. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/purple/theme.scss +12 -0
  1205. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/yellow/theme.css +7341 -0
  1206. package/aqtion/frontend/assets/layout/styles/theme/theme-dark/yellow/theme.scss +12 -0
  1207. package/aqtion/frontend/assets/layout/styles/theme/theme-light/_extensions.scss +90 -0
  1208. package/aqtion/frontend/assets/layout/styles/theme/theme-light/_variables.scss +870 -0
  1209. package/aqtion/frontend/assets/layout/styles/theme/theme-light/blue/theme.css +7540 -0
  1210. package/aqtion/frontend/assets/layout/styles/theme/theme-light/blue/theme.scss +12 -0
  1211. package/aqtion/frontend/assets/layout/styles/theme/theme-light/cyan/theme.css +7341 -0
  1212. package/aqtion/frontend/assets/layout/styles/theme/theme-light/cyan/theme.scss +12 -0
  1213. package/aqtion/frontend/assets/layout/styles/theme/theme-light/deeppurple/theme.css +7341 -0
  1214. package/aqtion/frontend/assets/layout/styles/theme/theme-light/deeppurple/theme.scss +12 -0
  1215. package/aqtion/frontend/assets/layout/styles/theme/theme-light/green/theme.css +7341 -0
  1216. package/aqtion/frontend/assets/layout/styles/theme/theme-light/green/theme.scss +12 -0
  1217. package/aqtion/frontend/assets/layout/styles/theme/theme-light/indigo/theme.css +7341 -0
  1218. package/aqtion/frontend/assets/layout/styles/theme/theme-light/indigo/theme.scss +12 -0
  1219. package/aqtion/frontend/assets/layout/styles/theme/theme-light/lime/theme.css +7341 -0
  1220. package/aqtion/frontend/assets/layout/styles/theme/theme-light/lime/theme.scss +12 -0
  1221. package/aqtion/frontend/assets/layout/styles/theme/theme-light/orange/theme.css +7341 -0
  1222. package/aqtion/frontend/assets/layout/styles/theme/theme-light/orange/theme.scss +12 -0
  1223. package/aqtion/frontend/assets/layout/styles/theme/theme-light/pink/theme.css +7341 -0
  1224. package/aqtion/frontend/assets/layout/styles/theme/theme-light/pink/theme.scss +12 -0
  1225. package/aqtion/frontend/assets/layout/styles/theme/theme-light/purple/theme.css +7341 -0
  1226. package/aqtion/frontend/assets/layout/styles/theme/theme-light/purple/theme.scss +12 -0
  1227. package/aqtion/frontend/assets/layout/styles/theme/theme-light/yellow/theme.css +7341 -0
  1228. package/aqtion/frontend/assets/layout/styles/theme/theme-light/yellow/theme.scss +12 -0
  1229. package/aqtion/frontend/environments/environment.ci.ts +13 -0
  1230. package/aqtion/frontend/environments/environment.dev.ts +12 -0
  1231. package/aqtion/frontend/environments/environment.prod.ts +13 -0
  1232. package/aqtion/frontend/environments/environment.ts +3 -0
  1233. package/aqtion/frontend/index.dev.html +33 -0
  1234. package/aqtion/frontend/index.prod.html +32 -0
  1235. package/aqtion/frontend/layout/api/menuchangeevent.ts +4 -0
  1236. package/aqtion/frontend/layout/api/tabcloseevent.ts +6 -0
  1237. package/aqtion/frontend/layout/app.breadcrumb.component.html +14 -0
  1238. package/aqtion/frontend/layout/app.breadcrumb.component.ts +48 -0
  1239. package/aqtion/frontend/layout/app.footer.component.html +20 -0
  1240. package/aqtion/frontend/layout/app.footer.component.ts +23 -0
  1241. package/aqtion/frontend/layout/app.menu.component.html +3 -0
  1242. package/aqtion/frontend/layout/app.menu.service.ts +23 -0
  1243. package/aqtion/frontend/layout/app.menuitem.component.ts +310 -0
  1244. package/aqtion/frontend/layout/app.sidebar.component.html +5 -0
  1245. package/aqtion/frontend/layout/app.sidebar.component.ts +13 -0
  1246. package/aqtion/frontend/layout/app.topbar.component.html +72 -0
  1247. package/aqtion/frontend/layout/app.topbar.component.ts +73 -0
  1248. package/aqtion/frontend/layout/auto-unsubscribe.decorator.ts +21 -0
  1249. package/aqtion/frontend/layout/common/err-403/err-403.component.html +24 -0
  1250. package/aqtion/frontend/layout/common/err-403/err-403.component.scss +340 -0
  1251. package/aqtion/frontend/layout/common/err-403/err-403.ts +19 -0
  1252. package/aqtion/frontend/layout/common/err-404/err-404.component.html +27 -0
  1253. package/aqtion/frontend/layout/common/err-404/err-404.component.scss +38 -0
  1254. package/aqtion/frontend/layout/common/err-404/err-404.ts +19 -0
  1255. package/aqtion/frontend/layout/common/err-500/err-500.component.html +10 -0
  1256. package/aqtion/frontend/layout/common/err-500/err-500.component.scss +44 -0
  1257. package/aqtion/frontend/layout/common/err-500/err-500.ts +37 -0
  1258. package/aqtion/frontend/layout/common/work-in-progress/work-in-progress.component.html +1 -0
  1259. package/aqtion/frontend/layout/common/work-in-progress/work-in-progress.component.scss +8 -0
  1260. package/aqtion/frontend/layout/common/work-in-progress/work-in-progress.component.ts +14 -0
  1261. package/aqtion/frontend/layout/config/app.config.component.html +86 -0
  1262. package/aqtion/frontend/layout/config/app.config.component.scss +0 -0
  1263. package/aqtion/frontend/layout/config/app.config.component.ts +241 -0
  1264. package/aqtion/frontend/layout/config/config.module.ts +27 -0
  1265. package/aqtion/frontend/layout/error.handler.ts +16 -0
  1266. package/aqtion/frontend/layout/main/main.component.html +15 -0
  1267. package/aqtion/frontend/layout/main/main.component.ts +186 -0
  1268. package/aqtion/frontend/layout/main.module.ts +45 -0
  1269. package/aqtion/frontend/layout/service/app.layout.service.ts +123 -0
  1270. package/aqtion/frontend/layout/service/healthCheck.service.ts +35 -0
  1271. package/aqtion/frontend/layout/shared/components/app.menu.component.ts +69 -0
  1272. package/aqtion/frontend/layout/shared/components/auth/accessdenied/accessdenied-routing.module.ts +12 -0
  1273. package/aqtion/frontend/layout/shared/components/auth/accessdenied/accessdenied.component.html +10 -0
  1274. package/aqtion/frontend/layout/shared/components/auth/accessdenied/accessdenied.component.ts +7 -0
  1275. package/aqtion/frontend/layout/shared/components/auth/accessdenied/accessdenied.module.ts +17 -0
  1276. package/aqtion/frontend/layout/shared/components/auth/auth-routing.module.ts +14 -0
  1277. package/aqtion/frontend/layout/shared/components/auth/auth.module.ts +13 -0
  1278. package/aqtion/frontend/layout/shared/components/auth/error/error-routing.module.ts +12 -0
  1279. package/aqtion/frontend/layout/shared/components/auth/error/error.component.html +10 -0
  1280. package/aqtion/frontend/layout/shared/components/auth/error/error.component.ts +7 -0
  1281. package/aqtion/frontend/layout/shared/components/auth/error/error.module.ts +12 -0
  1282. package/aqtion/frontend/layout/shared/components/auth/login/login-routing.module.ts +12 -0
  1283. package/aqtion/frontend/layout/shared/components/auth/login/login.component.html +15 -0
  1284. package/aqtion/frontend/layout/shared/components/auth/login/login.component.ts +47 -0
  1285. package/aqtion/frontend/layout/shared/components/auth/login/login.module.ts +21 -0
  1286. package/aqtion/frontend/layout/shared/components/auth/logout/logout/logout.component.html +8 -0
  1287. package/aqtion/frontend/layout/shared/components/auth/logout/logout/logout.component.scss +21 -0
  1288. package/aqtion/frontend/layout/shared/components/auth/logout/logout/logout.component.ts +15 -0
  1289. package/aqtion/frontend/layout/shared/components/auth/logout/logout.module.ts +26 -0
  1290. package/aqtion/frontend/layout/shared/components/code/code.component.ts +17 -0
  1291. package/aqtion/frontend/layout/shared/components/indic/indic.component.html +8 -0
  1292. package/aqtion/frontend/layout/shared/components/indic/indic.component.scss +0 -0
  1293. package/aqtion/frontend/layout/shared/components/indic/indic.component.ts +60 -0
  1294. package/aqtion/frontend/layout/shared/components/lookup-input/lookup-input.component.html +70 -0
  1295. package/aqtion/frontend/layout/shared/components/lookup-input/lookup-input.component.scss +0 -0
  1296. package/aqtion/frontend/layout/shared/components/lookup-input/lookup-input.component.ts +121 -0
  1297. package/aqtion/frontend/layout/shared/components/notfound/notfound-routing.module.ts +12 -0
  1298. package/aqtion/frontend/layout/shared/components/notfound/notfound.component.html +42 -0
  1299. package/aqtion/frontend/layout/shared/components/notfound/notfound.component.ts +7 -0
  1300. package/aqtion/frontend/layout/shared/components/notfound/notfound.module.ts +12 -0
  1301. package/aqtion/frontend/layout/shared/constants/dateFormat.constants.ts +1 -0
  1302. package/aqtion/frontend/layout/shared/constants/pagination.constants.ts +1 -0
  1303. package/aqtion/frontend/layout/shared/core/config/application-config.service.ts +34 -0
  1304. package/aqtion/frontend/layout/shared/core/config/db-config.service.ts +20 -0
  1305. package/aqtion/frontend/layout/shared/core/guard/can-modify.guard.ts +51 -0
  1306. package/aqtion/frontend/layout/shared/core/guard/login.guard.ts +24 -0
  1307. package/aqtion/frontend/layout/shared/core/guard/ui.guard.ts +94 -0
  1308. package/aqtion/frontend/layout/shared/core/interceptor/handle-req.interceptor.ts +31 -0
  1309. package/aqtion/frontend/layout/shared/core/interceptor/index.ts +10 -0
  1310. package/aqtion/frontend/layout/shared/core/request/pageable.model.ts +5 -0
  1311. package/aqtion/frontend/layout/shared/core/request/request-util.ts +21 -0
  1312. package/aqtion/frontend/layout/shared/core/resolver/accueil.resolver.ts +19 -0
  1313. package/aqtion/frontend/layout/shared/core/storage/MyLocalStorageService.ts +22 -0
  1314. package/aqtion/frontend/layout/shared/core/storage/MyStorageService.ts +17 -0
  1315. package/aqtion/frontend/layout/shared/dev/dev-dashboard/dev-dashboard.component.html +30 -0
  1316. package/aqtion/frontend/layout/shared/dev/dev-dashboard/dev-dashboard.component.scss +82 -0
  1317. package/aqtion/frontend/layout/shared/dev/dev-dashboard/dev-dashboard.component.ts +29 -0
  1318. package/aqtion/frontend/layout/shared/dev/dev-routing.module.ts +19 -0
  1319. package/aqtion/frontend/layout/shared/dev/dev.module.ts +76 -0
  1320. package/aqtion/frontend/layout/shared/entities/claims.model.ts +9 -0
  1321. package/aqtion/frontend/layout/shared/entities/user.model.ts +9 -0
  1322. package/aqtion/frontend/layout/shared/i18n/fr.json +74 -0
  1323. package/aqtion/frontend/layout/shared/service/dev.service.ts +16 -0
  1324. package/aqtion/frontend/layout/shared/service/policy.service.ts +22 -0
  1325. package/aqtion/frontend/layout/shared/service/user.service.ts +71 -0
  1326. package/aqtion/frontend/layout/shared/shared.module.ts +11 -0
  1327. package/aqtion/frontend/layout/shared/utils/globals.ts +85 -0
  1328. package/aqtion/frontend/layout/shared/utils/misc.ts +31 -0
  1329. package/aqtion/frontend/main-routing.module.ts +47 -0
  1330. package/aqtion/frontend/main.ts +13 -0
  1331. package/aqtion/frontend/pages.module.ts +76 -0
  1332. package/aqtion/frontend/polyfills.ts +64 -0
  1333. package/aqtion/frontend/styles.scss +43 -0
  1334. package/aqtion/frontend/themes.scss +84 -0
  1335. package/aqtion/kubernetes/Chart.yaml +4 -0
  1336. package/aqtion/kubernetes/config/values.yaml +22 -0
  1337. package/aqtion/kubernetes/templates/api.yaml +74 -0
  1338. package/aqtion/kubernetes/templates/app.yaml +58 -0
  1339. package/aqtion/kubernetes/templates/pgadmin.yaml +115 -0
  1340. package/aqtion/kubernetes/templates/postgres.yaml +67 -0
  1341. package/aqtion/launch.json +21 -0
  1342. package/aqtion/logo.png +0 -0
  1343. package/aqtion/nginx.conf +20 -0
  1344. package/aqtion/package-lock.json +14134 -0
  1345. package/aqtion/package.json +84 -0
  1346. package/aqtion/playwright.config.ts +77 -0
  1347. package/aqtion/pnpm-lock.yaml +9539 -0
  1348. package/aqtion/policies/roles.json +4 -0
  1349. package/aqtion/policies/ui.policy.json +4 -0
  1350. package/aqtion/pom.xml +144 -0
  1351. package/aqtion/run.sh +5 -0
  1352. package/aqtion/tests/example.spec.ts +18 -0
  1353. package/aqtion/tests-examples/demo-todo-app.spec.ts +437 -0
  1354. package/aqtion/tsconfig.app.json +9 -0
  1355. package/aqtion/tsconfig.json +39 -0
  1356. package/aqtion/tsconfig.spec.json +9 -0
  1357. package/cli/global/init.js +12 -10
  1358. package/lib/cadriciel.js +2 -2
  1359. package/package.json +1 -1
@@ -0,0 +1,2042 @@
1
+ module.controller('UserRoleMappingCtrl', function($scope, $http, $route, realm, user, client, Client, Notifications, RealmRoleMapping,
2
+ ClientRoleMapping, AvailableRealmRoleMapping, AvailableClientRoleMapping,
3
+ CompositeRealmRoleMapping, CompositeClientRoleMapping, $translate) {
4
+ $scope.realm = realm;
5
+ $scope.user = user;
6
+ $scope.selectedRealmRoles = [];
7
+ $scope.selectedRealmMappings = [];
8
+ $scope.realmMappings = [];
9
+ $scope.client = client;
10
+ $scope.clientRoles = [];
11
+ $scope.clientComposite = [];
12
+ $scope.selectedClientRoles = [];
13
+ $scope.selectedClientMappings = [];
14
+ $scope.clientMappings = [];
15
+ $scope.dummymodel = [];
16
+ $scope.selectedClient = null;
17
+
18
+
19
+ $scope.realmMappings = RealmRoleMapping.query({realm : realm.realm, userId : user.id});
20
+ $scope.realmRoles = AvailableRealmRoleMapping.query({realm : realm.realm, userId : user.id});
21
+ $scope.realmComposite = CompositeRealmRoleMapping.query({realm : realm.realm, userId : user.id});
22
+
23
+ $scope.addRealmRole = function() {
24
+ $scope.realmRolesToAdd = JSON.parse('[' + $scope.selectedRealmRoles + ']');
25
+ $scope.selectedRealmRoles = [];
26
+ $http.post(authUrl + '/admin/realms/' + realm.realm + '/users/' + user.id + '/role-mappings/realm',
27
+ $scope.realmRolesToAdd).then(function() {
28
+ $scope.realmMappings = RealmRoleMapping.query({realm : realm.realm, userId : user.id});
29
+ $scope.realmRoles = AvailableRealmRoleMapping.query({realm : realm.realm, userId : user.id});
30
+ $scope.realmComposite = CompositeRealmRoleMapping.query({realm : realm.realm, userId : user.id});
31
+ $scope.selectedRealmMappings = [];
32
+ $scope.selectRealmRoles = [];
33
+ if ($scope.selectedClient) {
34
+ console.log('load available');
35
+ $scope.clientComposite = CompositeClientRoleMapping.query({realm : realm.realm, userId : user.id, client : $scope.selectedClient.id});
36
+ $scope.clientRoles = AvailableClientRoleMapping.query({realm : realm.realm, userId : user.id, client : $scope.selectedClient.id});
37
+ $scope.clientMappings = ClientRoleMapping.query({realm : realm.realm, userId : user.id, client : $scope.selectedClient.id});
38
+ $scope.selectedClientRoles = [];
39
+ $scope.selectedClientMappings = [];
40
+ }
41
+ Notifications.success($translate.instant('user.roles.add.success'));
42
+
43
+ });
44
+ };
45
+
46
+ $scope.deleteRealmRole = function() {
47
+ $scope.realmRolesToRemove = JSON.parse('[' + $scope.selectedRealmMappings + ']');
48
+ $http.delete(authUrl + '/admin/realms/' + realm.realm + '/users/' + user.id + '/role-mappings/realm',
49
+ {data : $scope.realmRolesToRemove, headers : {"content-type" : "application/json"}}).then(function() {
50
+ $scope.realmMappings = RealmRoleMapping.query({realm : realm.realm, userId : user.id});
51
+ $scope.realmRoles = AvailableRealmRoleMapping.query({realm : realm.realm, userId : user.id});
52
+ $scope.realmComposite = CompositeRealmRoleMapping.query({realm : realm.realm, userId : user.id});
53
+ $scope.selectedRealmMappings = [];
54
+ $scope.selectRealmRoles = [];
55
+ if ($scope.selectedClient) {
56
+ console.log('load available');
57
+ $scope.clientComposite = CompositeClientRoleMapping.query({realm : realm.realm, userId : user.id, client : $scope.selectedClient.id});
58
+ $scope.clientRoles = AvailableClientRoleMapping.query({realm : realm.realm, userId : user.id, client : $scope.selectedClient.id});
59
+ $scope.clientMappings = ClientRoleMapping.query({realm : realm.realm, userId : user.id, client : $scope.selectedClient.id});
60
+ $scope.selectedClientRoles = [];
61
+ $scope.selectedClientMappings = [];
62
+ }
63
+ Notifications.success($translate.instant('user.roles.remove.success'));
64
+ });
65
+ };
66
+
67
+ $scope.addClientRole = function() {
68
+ $scope.clientRolesToAdd = JSON.parse('[' + $scope.selectedClientRoles + ']');
69
+ $http.post(authUrl + '/admin/realms/' + realm.realm + '/users/' + user.id + '/role-mappings/clients/' + $scope.selectedClient.id,
70
+ $scope.clientRolesToAdd).then(function() {
71
+ $scope.clientMappings = ClientRoleMapping.query({realm : realm.realm, userId : user.id, client : $scope.selectedClient.id});
72
+ $scope.clientRoles = AvailableClientRoleMapping.query({realm : realm.realm, userId : user.id, client : $scope.selectedClient.id});
73
+ $scope.clientComposite = CompositeClientRoleMapping.query({realm : realm.realm, userId : user.id, client : $scope.selectedClient.id});
74
+ $scope.selectedClientRoles = [];
75
+ $scope.selectedClientMappings = [];
76
+ $scope.realmComposite = CompositeRealmRoleMapping.query({realm : realm.realm, userId : user.id});
77
+ $scope.realmRoles = AvailableRealmRoleMapping.query({realm : realm.realm, userId : user.id});
78
+ Notifications.success($translate.instant('user.roles.add.success'));
79
+ });
80
+ };
81
+
82
+ $scope.deleteClientRole = function() {
83
+ $scope.clientRolesToRemove = JSON.parse('[' + $scope.selectedClientMappings + ']');
84
+ $http.delete(authUrl + '/admin/realms/' + realm.realm + '/users/' + user.id + '/role-mappings/clients/' + $scope.selectedClient.id,
85
+ {data : $scope.clientRolesToRemove, headers : {"content-type" : "application/json"}}).then(function() {
86
+ $scope.clientMappings = ClientRoleMapping.query({realm : realm.realm, userId : user.id, client : $scope.selectedClient.id});
87
+ $scope.clientRoles = AvailableClientRoleMapping.query({realm : realm.realm, userId : user.id, client : $scope.selectedClient.id});
88
+ $scope.clientComposite = CompositeClientRoleMapping.query({realm : realm.realm, userId : user.id, client : $scope.selectedClient.id});
89
+ $scope.selectedClientRoles = [];
90
+ $scope.selectedClientMappings = [];
91
+ $scope.realmComposite = CompositeRealmRoleMapping.query({realm : realm.realm, userId : user.id});
92
+ $scope.realmRoles = AvailableRealmRoleMapping.query({realm : realm.realm, userId : user.id});
93
+ Notifications.success($translate.instant('user.roles.remove.success'));
94
+ });
95
+ };
96
+
97
+ $scope.changeClient = function(client) {
98
+ console.log("selected client: ", client);
99
+ if (!client || !client.id) {
100
+ $scope.selectedClient = null;
101
+ return;
102
+ } else {
103
+ $scope.selectedClient = client;
104
+ }
105
+ if ($scope.selectedClient) {
106
+ console.log('load available');
107
+ $scope.clientComposite = CompositeClientRoleMapping.query({realm : realm.realm, userId : user.id, client : $scope.selectedClient.id});
108
+ $scope.clientRoles = AvailableClientRoleMapping.query({realm : realm.realm, userId : user.id, client : $scope.selectedClient.id});
109
+ $scope.clientMappings = ClientRoleMapping.query({realm : realm.realm, userId : user.id, client : $scope.selectedClient.id});
110
+ } else {
111
+ $scope.clientRoles = null;
112
+ $scope.clientMappings = null;
113
+ $scope.clientComposite = null;
114
+ }
115
+ $scope.selectedClientRoles = [];
116
+ $scope.selectedClientMappings = [];
117
+ };
118
+
119
+ clientSelectControl($scope, $route.current.params.realm, Client);
120
+ });
121
+
122
+ module.controller('UserSessionsCtrl', function($scope, realm, user, sessions, UserSessions, UserLogout, UserSessionLogout, Notifications, $translate) {
123
+ $scope.realm = realm;
124
+ $scope.user = user;
125
+ $scope.sessions = sessions;
126
+
127
+ $scope.logoutAll = function() {
128
+ UserLogout.save({realm : realm.realm, user: user.id}, function () {
129
+ Notifications.success($translate.instant('user.logout.all.success'));
130
+ UserSessions.query({realm: realm.realm, user: user.id}, function(updated) {
131
+ $scope.sessions = updated;
132
+ })
133
+ });
134
+ };
135
+
136
+ $scope.logoutSession = function(sessionId) {
137
+ console.log('here in logoutSession');
138
+ UserSessionLogout.delete({realm : realm.realm, session: sessionId}, function() {
139
+ UserSessions.query({realm: realm.realm, user: user.id}, function(updated) {
140
+ $scope.sessions = updated;
141
+ Notifications.success($translate.instant('user.logout.session.success'));
142
+ })
143
+ });
144
+ }
145
+ });
146
+
147
+ module.controller('UserFederatedIdentityCtrl', function($scope, $location, realm, user, federatedIdentities, UserFederatedIdentity, Notifications, Dialog, $translate) {
148
+ $scope.realm = realm;
149
+ $scope.user = user;
150
+ $scope.federatedIdentities = federatedIdentities;
151
+
152
+ $scope.hasAnyProvidersToCreate = function() {
153
+ return realm.identityProviders.length - $scope.federatedIdentities.length > 0;
154
+ }
155
+
156
+ $scope.removeProviderLink = function(providerLink) {
157
+
158
+ console.log("Removing provider link: " + providerLink.identityProvider);
159
+
160
+ Dialog.confirmWithButtonText(
161
+ $translate.instant('user.fedid.link.remove.confirm.title', {name: providerLink.identityProvider}),
162
+ $translate.instant('user.fedid.link.remove.confirm.message', {name: providerLink.identityProvider}),
163
+ $translate.instant('dialogs.delete.confirm'),
164
+ function() {
165
+ UserFederatedIdentity.remove({ realm: realm.realm, user: user.id, provider: providerLink.identityProvider }, function() {
166
+ Notifications.success($translate.instant('user.fedid.link.remove.success'));
167
+ var indexToRemove = $scope.federatedIdentities.indexOf(providerLink);
168
+ $scope.federatedIdentities.splice(indexToRemove, 1);
169
+ });
170
+ }
171
+ );
172
+ }
173
+ });
174
+
175
+ module.controller('UserFederatedIdentityAddCtrl', function($scope, $location, realm, user, federatedIdentities, UserFederatedIdentity, Notifications, $translate) {
176
+ $scope.realm = realm;
177
+ $scope.user = user;
178
+ $scope.federatedIdentity = {};
179
+
180
+ var getAvailableProvidersToCreate = function() {
181
+ var realmProviders = [];
182
+ for (var i=0 ; i<realm.identityProviders.length ; i++) {
183
+ var providerAlias = realm.identityProviders[i].alias;
184
+ realmProviders.push(providerAlias);
185
+ };
186
+
187
+ for (var i=0 ; i<federatedIdentities.length ; i++) {
188
+ var providerAlias = federatedIdentities[i].identityProvider;
189
+ var index = realmProviders.indexOf(providerAlias);
190
+ realmProviders.splice(index, 1);
191
+ }
192
+
193
+ return realmProviders;
194
+ }
195
+ $scope.availableProvidersToCreate = getAvailableProvidersToCreate();
196
+
197
+ $scope.save = function() {
198
+ UserFederatedIdentity.save({
199
+ realm : realm.realm,
200
+ user: user.id,
201
+ provider: $scope.federatedIdentity.identityProvider
202
+ }, $scope.federatedIdentity, function(data, headers) {
203
+ $location.url("/realms/" + realm.realm + '/users/' + $scope.user.id + '/federated-identity');
204
+ Notifications.success($translate.instant('user.fedid.link.add.success'));
205
+ });
206
+ };
207
+
208
+ $scope.cancel = function() {
209
+ $location.url("/realms/" + realm.realm + '/users/' + $scope.user.id + '/federated-identity');
210
+ };
211
+
212
+ });
213
+
214
+ module.controller('UserConsentsCtrl', function($scope, realm, user, userConsents, UserConsents, Notifications, $translate) {
215
+ $scope.realm = realm;
216
+ $scope.user = user;
217
+ $scope.userConsents = userConsents;
218
+
219
+ $scope.revokeConsent = function(clientId) {
220
+ UserConsents.delete({realm : realm.realm, user: user.id, client: clientId }, function () {
221
+ UserConsents.query({realm: realm.realm, user: user.id}, function(updated) {
222
+ $scope.userConsents = updated;
223
+ })
224
+ Notifications.success($translate.instant('user.consent.revoke.success'));
225
+ }, function() {
226
+ Notifications.error($translate.instant('user.consent.revoke.error'));
227
+ });
228
+ console.log("Revoke consent " + clientId);
229
+ }
230
+ });
231
+
232
+ module.controller('UserOfflineSessionsCtrl', function($scope, $location, realm, user, client, offlineSessions) {
233
+ $scope.realm = realm;
234
+ $scope.user = user;
235
+ $scope.client = client;
236
+ $scope.offlineSessions = offlineSessions;
237
+
238
+ $scope.cancel = function() {
239
+ $location.url("/realms/" + realm.realm + '/users/' + user.id + '/consents');
240
+ };
241
+ });
242
+
243
+
244
+ module.controller('UserListCtrl', function($scope, realm, User, UserSearchState, UserImpersonation, BruteForce, Notifications, $route, Dialog, $translate) {
245
+
246
+ $scope.init = function() {
247
+ $scope.realm = realm;
248
+
249
+ UserSearchState.query.realm = realm.realm;
250
+ $scope.query = UserSearchState.query;
251
+ $scope.query.briefRepresentation = 'true';
252
+
253
+ if (!UserSearchState.isFirstSearch) $scope.searchQuery();
254
+ };
255
+
256
+ $scope.impersonate = function(userId) {
257
+ UserImpersonation.save({realm : realm.realm, user: userId}, function (data) {
258
+ if (data.sameRealm) {
259
+ window.location = data.redirect;
260
+ } else {
261
+ window.open(data.redirect, "_blank");
262
+ }
263
+ });
264
+ };
265
+
266
+ $scope.unlockUsers = function() {
267
+ BruteForce.delete({realm: realm.realm}, function(data) {
268
+ Notifications.success($translate.instant('user.unlock.success'));
269
+ });
270
+ }
271
+
272
+
273
+ $scope.firstPage = function() {
274
+ $scope.query.first = 0;
275
+ $scope.searchQuery();
276
+ }
277
+
278
+ $scope.previousPage = function() {
279
+ $scope.query.first -= parseInt($scope.query.max);
280
+ if ($scope.query.first < 0) {
281
+ $scope.query.first = 0;
282
+ }
283
+ $scope.searchQuery();
284
+ }
285
+
286
+ $scope.nextPage = function() {
287
+ $scope.query.first += parseInt($scope.query.max);
288
+ $scope.searchQuery();
289
+ }
290
+
291
+ $scope.searchQuery = function() {
292
+ console.log("query.search: " + $scope.query.search);
293
+ $scope.searchLoaded = false;
294
+
295
+ $scope.users = User.query($scope.query, function() {
296
+ $scope.searchLoaded = true;
297
+ $scope.lastSearch = $scope.query.search;
298
+ UserSearchState.isFirstSearch = false;
299
+ });
300
+ };
301
+
302
+ $scope.removeUser = function(user) {
303
+ Dialog.confirmWithButtonText(
304
+ $translate.instant('user.remove.confirm.title', {name: user.id}),
305
+ $translate.instant('user.remove.confirm.message', {name: user.id}),
306
+ $translate.instant('dialogs.delete.confirm'),
307
+ function() {
308
+ user.$remove({
309
+ realm : realm.realm,
310
+ userId : user.id
311
+ }, function() {
312
+ $route.reload();
313
+
314
+ if ($scope.users.length === 1 && $scope.query.first > 0) {
315
+ $scope.previousPage();
316
+ }
317
+
318
+ Notifications.success($translate.instant('user.remove.success'));
319
+ }, function() {
320
+ Notifications.error($translate.instant('user.remove.error'));
321
+ });
322
+ }
323
+ );
324
+ };
325
+ });
326
+
327
+
328
+ module.controller('UserTabCtrl', function($scope, $location, Dialog, Notifications, Current) {
329
+ $scope.removeUser = function() {
330
+ Dialog.confirmDelete($scope.user.id, 'user', function() {
331
+ $scope.user.$remove({
332
+ realm : Current.realm.realm,
333
+ userId : $scope.user.id
334
+ }, function() {
335
+ $location.url("/realms/" + Current.realm.realm + "/users");
336
+ Notifications.success($translate.instant('user.remove.success'));
337
+ }, function() {
338
+ Notifications.error($translate.instant('user.remove.error'));
339
+ });
340
+ });
341
+ };
342
+ });
343
+
344
+ function loadUserStorageLink(realm, user, console, Components, UserStorageOperations, $scope, $location) {
345
+ if(user.federationLink) {
346
+ console.log("federationLink is not null. It is " + user.federationLink);
347
+
348
+ if ($scope.access.viewRealm) {
349
+ Components.get({realm: realm.realm, componentId: user.federationLink}, function (link) {
350
+ $scope.federationLinkName = link.name;
351
+ $scope.federationLink = "#/realms/" + realm.realm + "/user-storage/providers/" + link.providerId + "/" + link.id;
352
+ });
353
+ } else {
354
+ // KEYCLOAK-4328
355
+ UserStorageOperations.simpleName.get({realm: realm.realm, componentId: user.federationLink}, function (link) {
356
+ $scope.federationLinkName = link.name;
357
+ $scope.federationLink = $location.absUrl();
358
+ })
359
+ }
360
+
361
+ } else {
362
+ console.log("federationLink is null");
363
+ }
364
+
365
+ if(user.origin) {
366
+ if ($scope.access.viewRealm) {
367
+ Components.get({realm: realm.realm, componentId: user.origin}, function (link) {
368
+ $scope.originName = link.name;
369
+ $scope.originLink = "#/realms/" + realm.realm + "/user-storage/providers/" + link.providerId + "/" + link.id;
370
+ })
371
+ }
372
+ else {
373
+ // KEYCLOAK-4328
374
+ UserStorageOperations.simpleName.get({realm: realm.realm, componentId: user.origin}, function (link) {
375
+ $scope.originName = link.name;
376
+ $scope.originLink = $location.absUrl();
377
+ })
378
+ }
379
+ } else {
380
+ console.log("origin is null");
381
+ }
382
+ };
383
+
384
+ module.controller('UserDetailCtrl', function($scope, realm, user, BruteForceUser, User,
385
+ Components,
386
+ UserImpersonation, RequiredActions,
387
+ UserStorageOperations,
388
+ $location, $http, Dialog, Notifications, $translate, $route, Groups) {
389
+ $scope.realm = realm;
390
+ $scope.create = !user.id;
391
+ $scope.editUsername = $scope.create || $scope.realm.editUsernameAllowed;
392
+ $scope.emailAsUsername = $scope.realm.registrationEmailAsUsername;
393
+ $scope.groupSearch = { selectedGroup : null };
394
+
395
+ if ($scope.create) {
396
+ $scope.user = { enabled: true, attributes: {}, groups: [] }
397
+ } else {
398
+ if (!user.attributes) {
399
+ user.attributes = {}
400
+ }
401
+ convertAttributeValuesToString(user);
402
+
403
+
404
+ $scope.user = angular.copy(user);
405
+ $scope.impersonate = function() {
406
+ UserImpersonation.save({realm : realm.realm, user: $scope.user.id}, function (data) {
407
+ if (data.sameRealm) {
408
+ window.location = data.redirect;
409
+ } else {
410
+ window.open(data.redirect, "_blank");
411
+ }
412
+ });
413
+ };
414
+
415
+ loadUserStorageLink(realm, user, console, Components, UserStorageOperations, $scope, $location);
416
+
417
+ console.log('realm brute force? ' + realm.bruteForceProtected)
418
+ $scope.temporarilyDisabled = false;
419
+ var isDisabled = function () {
420
+ BruteForceUser.get({realm: realm.realm, userId: user.id}, function(data) {
421
+ console.log('here in isDisabled ' + data.disabled);
422
+ $scope.temporarilyDisabled = data.disabled;
423
+ });
424
+ };
425
+
426
+ console.log("check if disabled");
427
+ isDisabled();
428
+
429
+ $scope.unlockUser = function() {
430
+ BruteForceUser.delete({realm: realm.realm, userId: user.id}, function(data) {
431
+ isDisabled();
432
+ });
433
+ }
434
+ }
435
+
436
+ $scope.changed = false; // $scope.create;
437
+ if (user.requiredActions) {
438
+ for (var i = 0; i < user.requiredActions.length; i++) {
439
+ console.log("user require action: " + user.requiredActions[i]);
440
+ }
441
+ }
442
+ // ID - Name map for required actions. IDs are enum names.
443
+ RequiredActions.query({realm: realm.realm}, function(data) {
444
+ $scope.userReqActionList = [];
445
+ for (var i = 0; i < data.length; i++) {
446
+ console.log("listed required action: " + data[i].name);
447
+ if (data[i].enabled) {
448
+ var item = data[i];
449
+ $scope.userReqActionList.push(item);
450
+ }
451
+ }
452
+ console.log("---------------------");
453
+ console.log("ng-model: user.requiredActions=" + JSON.stringify($scope.user.requiredActions));
454
+ console.log("---------------------");
455
+ console.log("ng-repeat: userReqActionList=" + JSON.stringify($scope.userReqActionList));
456
+ console.log("---------------------");
457
+ });
458
+ $scope.$watch('user', function() {
459
+ if (!angular.equals($scope.user, user)) {
460
+ $scope.changed = true;
461
+ }
462
+ }, true);
463
+
464
+ $scope.save = function() {
465
+ convertAttributeValuesToLists();
466
+
467
+ if ($scope.create) {
468
+ pushSelectedGroupsToUser();
469
+
470
+ User.save({
471
+ realm: realm.realm
472
+ }, $scope.user, function (data, headers) {
473
+ $scope.changed = false;
474
+ convertAttributeValuesToString($scope.user);
475
+ user = angular.copy($scope.user);
476
+ var l = headers().location;
477
+
478
+ console.debug("Location == " + l);
479
+
480
+ var id = l.substring(l.lastIndexOf("/") + 1);
481
+
482
+
483
+ $location.url("/realms/" + realm.realm + "/users/" + id);
484
+ Notifications.success($translate.instant('user.create.success'));
485
+ });
486
+ } else {
487
+ User.update({
488
+ realm: realm.realm,
489
+ userId: $scope.user.id
490
+ }, $scope.user, function () {
491
+ Notifications.success($translate.instant('user.edit.success'));
492
+ $route.reload();
493
+ });
494
+ }
495
+ };
496
+
497
+ function convertAttributeValuesToLists() {
498
+ var attrs = $scope.user.attributes;
499
+ for (var attribute in attrs) {
500
+ if (typeof attrs[attribute] === "string") {
501
+ var attrVals = attrs[attribute].split("##");
502
+ attrs[attribute] = attrVals;
503
+ }
504
+ }
505
+ }
506
+
507
+ function convertAttributeValuesToString(user) {
508
+ var attrs = user.attributes;
509
+ for (var attribute in attrs) {
510
+ if (typeof attrs[attribute] === "object") {
511
+ var attrVals = attrs[attribute].join("##");
512
+ attrs[attribute] = attrVals;
513
+ }
514
+ }
515
+ }
516
+
517
+ function pushSelectedGroupsToUser() {
518
+ var groups = $scope.user.groups;
519
+ if ($scope.selectedGroups) {
520
+ for (i = 0; i < $scope.selectedGroups.length; i++) {
521
+ var groupPath = $scope.selectedGroups[i].path;
522
+ if (!groups.includes(groupPath)) {
523
+ groups.push(groupPath);
524
+ }
525
+ }
526
+ }
527
+ }
528
+
529
+ function bfs(tree, collection) {
530
+ if (!tree["subGroups"] || tree["subGroups"].length === 0) return;
531
+ for (var i=0; i < tree["subGroups"].length; i++) {
532
+ var child = tree["subGroups"][i]
533
+ collection.push(child);
534
+ bfs(child, collection);
535
+ }
536
+ return;
537
+ }
538
+
539
+ function flattenGroups(groups) {
540
+ var flattenedGroups = [];
541
+ if (!groups || groups.length === 0) return groups;
542
+ for (var i=0; i < groups.length; i++) {
543
+ flattenedGroups.push(groups[i]);
544
+ bfs(groups[i], flattenedGroups);
545
+ }
546
+
547
+ return flattenedGroups;
548
+ }
549
+
550
+ /**
551
+ * Only keep groups that :
552
+ * - include the search term in their path
553
+ * - are not already selected
554
+ */
555
+ function filterSearchedGroups(groups, term, selectedGroups) {
556
+ if (!groups || groups.length === 0) return groups;
557
+ if (!selectedGroups) selectedGroups = [];
558
+
559
+ return groups.filter(group => group.path?.includes(term) && !selectedGroups.some(selGroup => selGroup.id === group.id));
560
+ }
561
+
562
+ $scope.reset = function() {
563
+ $scope.user = angular.copy(user);
564
+ $scope.changed = false;
565
+ };
566
+
567
+ $scope.cancel = function() {
568
+ $location.url("/realms/" + realm.realm + "/users");
569
+ };
570
+
571
+ $scope.addAttribute = function() {
572
+ $scope.user.attributes[$scope.newAttribute.key] = $scope.newAttribute.value;
573
+ delete $scope.newAttribute;
574
+ }
575
+
576
+ $scope.removeAttribute = function(key) {
577
+ delete $scope.user.attributes[key];
578
+ }
579
+
580
+ $scope.groupsUiSelect = {
581
+ minimumInputLength: 1,
582
+ delay: 500,
583
+ allowClear: true,
584
+ query: function (query) {
585
+ var data = {results: []};
586
+ if ('' == query.term.trim()) {
587
+ query.callback(data);
588
+ return;
589
+ }
590
+ $scope.query = {
591
+ realm: realm.realm,
592
+ search: query.term.trim(),
593
+ max : 20,
594
+ first : 0
595
+ };
596
+ Groups.query($scope.query, function(response) {
597
+ data.results = filterSearchedGroups(flattenGroups(response), query.term.trim(), $scope.selectedGroups);
598
+ query.callback(data);
599
+ });
600
+ },
601
+ formatResult: function(object, container, query) {
602
+ object.text = object.path;
603
+ return object.path;
604
+ }
605
+ };
606
+
607
+ $scope.removeGroup = function(list, group) {
608
+ for (i = 0; i < angular.copy(list).length; i++) {
609
+ if (group.id == list[i].id) {
610
+ list.splice(i, 1);
611
+ }
612
+ }
613
+ }
614
+
615
+ $scope.selectGroup = function(group) {
616
+ if (!group || !group.id) {
617
+ return;
618
+ }
619
+
620
+ $scope.groupSearch.selectedGroup = group;
621
+
622
+ if (!$scope.selectedGroups) {
623
+ $scope.selectedGroups = [];
624
+ }
625
+
626
+ for (i = 0; i < $scope.selectedGroups.length; i++) {
627
+ if ($scope.selectedGroups[i].id == group.id) {
628
+ return;
629
+ }
630
+ }
631
+
632
+ $scope.selectedGroups.push(group);
633
+ $scope.groupSearch.selectedGroup = null;
634
+ }
635
+
636
+ $scope.clearGroupSelection = function() {
637
+ $scope.groupSearch.selectedGroup = null;
638
+ $('#groups').val(null).trigger('change.select2');
639
+ }
640
+ });
641
+
642
+ module.controller('UserCredentialsCtrl', function($scope, realm, user, $route, $location, RequiredActions, User, UserExecuteActionsEmail,
643
+ UserCredentials, Notifications, Dialog, TimeUnit2, Components, UserStorageOperations, $modal, $translate) {
644
+ console.log('UserCredentialsCtrl');
645
+
646
+ $scope.hasPassword = false;
647
+
648
+ loadCredentials();
649
+
650
+ loadUserStorageLink(realm, user, console, Components, UserStorageOperations, $scope, $location);
651
+
652
+ $scope.getUserStorageProviderName = function() {
653
+ return user.federationLink ? $scope.federationLinkName : $scope.originName;
654
+ }
655
+
656
+ $scope.getUserStorageProviderLink = function() {
657
+ return user.federationLink ? $scope.federationLink : $scope.originLink;
658
+ }
659
+
660
+ $scope.updateCredentialLabel = function(credential) {
661
+ UserCredentials.updateCredentialLabel({ realm: realm.realm, userId: user.id, credentialId: credential.id }, {
662
+ 'id': credential.id,
663
+ 'userLabel': credential.userLabel ? credential.userLabel : "",
664
+ // We JSONify the credential data
665
+ 'credentialData': JSON.stringify(credential.credentialData)
666
+ }, function() {
667
+ Notifications.success($translate.instant('user.credential.update.success'));
668
+ }, function(err) {
669
+ Notifications.error($translate.instant('user.credential.update.error'));
670
+ console.log(err);
671
+ });
672
+ }
673
+
674
+ $scope.deleteCredential = function(credential) {
675
+ Dialog.confirmWithButtonText(
676
+ $translate.instant('user.credential.remove.confirm.title', {name: credential.id}),
677
+ $translate.instant('user.credential.remove.confirm.message', {name: credential.id}),
678
+ $translate.instant('dialogs.delete.confirm'),
679
+ function() {
680
+ UserCredentials.deleteCredential({ realm: realm.realm, userId: user.id, credentialId: credential.id }, null, function() {
681
+ Notifications.success($translate.instant('user.credential.remove.success'));
682
+ $route.reload();
683
+ }, function(err) {
684
+ Notifications.error($translate.instant('user.credential.remove.error'));
685
+ console.log(err);
686
+ })
687
+ }
688
+ );
689
+ }
690
+
691
+ $scope.moveUp = function(credentials, index) {
692
+ // Safety first
693
+ if (index == 0) {
694
+ return;
695
+ } else if (index == 1) {
696
+ UserCredentials.moveToFirst(
697
+ {
698
+ realm: realm.realm,
699
+ userId: user.id,
700
+ credentialId: credentials[index].id
701
+ },
702
+ function () {
703
+ $route.reload();
704
+ },
705
+ function (err) {
706
+ Notifications.error($translate.instant('user.credential.move-top.error'));
707
+ console.log(err);
708
+ });
709
+
710
+ } else {
711
+ UserCredentials.moveCredentialAfter(
712
+ {
713
+ realm: realm.realm,
714
+ userId: user.id,
715
+ credentialId: credentials[index].id,
716
+ newPreviousCredentialId: credentials[index - 2].id
717
+ },
718
+ function () {
719
+ $route.reload();
720
+ },
721
+ function (err) {
722
+ Notifications.error($translate.instant('user.credential.move-up.error'));
723
+ console.log(err);
724
+ });
725
+ }
726
+ }
727
+
728
+ $scope.moveDown = function(credentials, index) {
729
+ // Safety first
730
+ if (index == credentials.length - 1) {
731
+ return;
732
+ }
733
+ UserCredentials.moveCredentialAfter(
734
+ {
735
+ realm: realm.realm,
736
+ userId: user.id,
737
+ credentialId: credentials[index].id,
738
+ newPreviousCredentialId: credentials[index + 1].id
739
+ },
740
+ function() {
741
+ $route.reload();
742
+ },
743
+ function(err) {
744
+ Notifications.error($translate.instant('user.credential.move-down.error'));
745
+ console.log(err);
746
+ });
747
+ }
748
+
749
+ $scope.showData = function(credentialData) {
750
+ $modal.open({
751
+ templateUrl: resourceUrl + '/partials/modal/user-credential-data.html',
752
+ controller: 'UserCredentialsDataModalCtrl',
753
+ resolve: {
754
+ credentialData: function () {
755
+ return credentialData;
756
+ }
757
+ }
758
+ })
759
+ }
760
+
761
+ $scope.realm = realm;
762
+ $scope.user = angular.copy(user);
763
+ $scope.temporaryPassword = true;
764
+
765
+ $scope.isTotp = false;
766
+ if(!!user.totp){
767
+ $scope.isTotp = user.totp;
768
+ }
769
+ // ID - Name map for required actions. IDs are enum names.
770
+ RequiredActions.query({realm: realm.realm}, function(data) {
771
+ $scope.userReqActionList = [];
772
+ for (var i = 0; i < data.length; i++) {
773
+ console.log("listed required action: " + data[i].name);
774
+ if (data[i].enabled) {
775
+ var item = data[i];
776
+ $scope.userReqActionList.push(item);
777
+ }
778
+ }
779
+
780
+ });
781
+
782
+ function loadCredentials() {
783
+ UserCredentials.getCredentials({ realm: realm.realm, userId: user.id }, null, function(credentials) {
784
+ $scope.credentials = credentials.map(function(c) {
785
+ // We de-JSONify the credential data
786
+ if (c.credentialData) {
787
+ c.credentialData = JSON.parse(c.credentialData);
788
+ }
789
+ if (c.type == 'password') {
790
+ $scope.hasPassword = true;
791
+ }
792
+ return c;
793
+ });
794
+ }, function(err) {
795
+ Notifications.error($translate.instant('user.credential.fetch.error'));
796
+ console.log(err);
797
+ });
798
+
799
+ UserCredentials.getConfiguredUserStorageCredentialTypes({ realm: realm.realm, userId: user.id }, null, function(userStorageCredentialTypes) {
800
+ $scope.userStorageCredentialTypes = userStorageCredentialTypes;
801
+ $scope.hasPassword = $scope.hasPassword || userStorageCredentialTypes.lastIndexOf("password") > -1;
802
+ }, function(err) {
803
+ Notifications.error($translate.instant('user.credential.storage.fetch.error'));
804
+ console.log(err);
805
+ });
806
+ }
807
+
808
+ $scope.resetPassword = function() {
809
+ // hit enter without entering both fields - ignore
810
+ if (!$scope.passwordAndConfirmPasswordEntered()) return;
811
+
812
+ if ($scope.pwdChange) {
813
+ if ($scope.password != $scope.confirmPassword) {
814
+ Notifications.error($translate.instant('user.password.error.not-matching'));
815
+ return;
816
+ }
817
+ }
818
+
819
+ var msgTitle = ($scope.hasPassword ? $translate.instant('user.password.reset.confirm.title') : $translate.instant('user.password.set.confirm.title'));
820
+ var msg = ($scope.hasPassword ? $translate.instant('user.password.reset.confirm.message') : $translate.instant('user.password.set.confirm.message'));
821
+ var msgSuccess = ($scope.hasPassword ? $translate.instant('user.password.reset.success') : $translate.instant('user.password.set.success'));
822
+
823
+ Dialog.confirm(msgTitle, msg, function() {
824
+ UserCredentials.resetPassword({ realm: realm.realm, userId: user.id }, { type : "password", value : $scope.password, temporary: $scope.temporaryPassword }, function() {
825
+ Notifications.success(msgSuccess);
826
+ $scope.password = null;
827
+ $scope.confirmPassword = null;
828
+ $route.reload();
829
+ });
830
+ }, function() {
831
+ $scope.password = null;
832
+ $scope.confirmPassword = null;
833
+ });
834
+ };
835
+
836
+ $scope.passwordAndConfirmPasswordEntered = function() {
837
+ return $scope.password && $scope.confirmPassword;
838
+ }
839
+
840
+ $scope.disableCredentialTypes = function() {
841
+ Dialog.confirm(
842
+ $translate.instant('user.credential.disable.confirm.title'),
843
+ $translate.instant('user.credential.disable.confirm.message'),
844
+ function() {
845
+ UserCredentials.disableCredentialTypes({ realm: realm.realm, userId: user.id }, $scope.disableableCredentialTypes, function() {
846
+ $route.reload();
847
+ Notifications.success($translate.instant('user.credential.disable.confirm.success'));
848
+ }, function() {
849
+ Notifications.error($translate.instant('user.credential.disable.confirm.error'));
850
+ });
851
+ });
852
+ };
853
+
854
+ $scope.emailActions = [];
855
+ $scope.emailActionsTimeout = TimeUnit2.asUnit(realm.actionTokenGeneratedByAdminLifespan);
856
+ $scope.disableableCredentialTypes = [];
857
+
858
+ $scope.sendExecuteActionsEmail = function() {
859
+ if ($scope.changed) {
860
+ Dialog.message($translate.instant('user.actions-email.send.pending-changes.title'),
861
+ $translate.instant('user.actions-email.send.pending-changes.message'));
862
+ return;
863
+ }
864
+ Dialog.confirm(
865
+ $translate.instant('user.actions-email.send.confirm.title'),
866
+ $translate.instant('user.actions-email.send.confirm.message'),
867
+ function() {
868
+ UserExecuteActionsEmail.update({ realm: realm.realm, userId: user.id, lifespan: $scope.emailActionsTimeout.toSeconds() }, $scope.emailActions, function() {
869
+ Notifications.success($translate.instant('user.actions-email.send.confirm.success'));
870
+ }, function() {
871
+ Notifications.error($translate.instant('user.actions-email.send.confirm.error'));
872
+ });
873
+ });
874
+ };
875
+
876
+
877
+
878
+ $scope.$watch('user', function() {
879
+ if (!angular.equals($scope.user, user)) {
880
+ $scope.userChange = true;
881
+ } else {
882
+ $scope.userChange = false;
883
+ }
884
+ }, true);
885
+
886
+ $scope.$watch('password', function() {
887
+ if (!!$scope.password){
888
+ $scope.pwdChange = true;
889
+ } else {
890
+ $scope.pwdChange = false;
891
+ }
892
+ }, true);
893
+
894
+ $scope.reset = function() {
895
+ $scope.password = "";
896
+ $scope.confirmPassword = "";
897
+
898
+ $scope.user = angular.copy(user);
899
+
900
+ $scope.isTotp = false;
901
+ if(!!user.totp){
902
+ $scope.isTotp = user.totp;
903
+ }
904
+
905
+ $scope.pwdChange = false;
906
+ $scope.userChange = false;
907
+ };
908
+ });
909
+
910
+ module.controller('UserCredentialsDataModalCtrl', function($scope, credentialData) {
911
+ $scope.credentialData = credentialData;
912
+
913
+ $scope.keys = function(object) {
914
+ return object ? Object.keys(object) : [];
915
+ }
916
+ });
917
+
918
+ module.controller('UserFederationCtrl', function($scope, $location, $route, realm, serverInfo, Components, Notifications, Dialog, $translate) {
919
+ console.log('UserFederationCtrl ++++****');
920
+ $scope.realm = realm;
921
+ $scope.providers = serverInfo.componentTypes['org.keycloak.storage.UserStorageProvider'];
922
+ $scope.instancesLoaded = false;
923
+
924
+ if (!$scope.providers) $scope.providers = [];
925
+
926
+ $scope.addProvider = function(provider) {
927
+ console.log('Add provider: ' + provider.id);
928
+ $location.url("/create/user-storage/" + realm.realm + "/providers/" + provider.id);
929
+ };
930
+
931
+ $scope.getInstanceLink = function(instance) {
932
+ return "/realms/" + realm.realm + "/user-storage/providers/" + instance.providerId + "/" + instance.id;
933
+ }
934
+
935
+ $scope.getInstanceName = function(instance) {
936
+ return instance.name;
937
+ }
938
+ $scope.getInstanceProvider = function(instance) {
939
+ return instance.providerId;
940
+ }
941
+
942
+ $scope.isProviderEnabled = function(instance) {
943
+ return !instance.config['enabled'] || instance.config['enabled'][0] == 'true';
944
+ }
945
+
946
+ $scope.getInstancePriority = function(instance) {
947
+ if (!instance.config['priority']) {
948
+ console.log('getInstancePriority is undefined');
949
+ return -1;
950
+ }
951
+ return +instance.config['priority'][0];
952
+ }
953
+
954
+ Components.query({realm: realm.realm,
955
+ parent: realm.id,
956
+ type: 'org.keycloak.storage.UserStorageProvider'
957
+ }, function(data) {
958
+ $scope.instances = data;
959
+ $scope.instancesLoaded = true;
960
+ });
961
+
962
+ $scope.removeInstance = function(instance) {
963
+ Dialog.confirmWithButtonText(
964
+ $translate.instant('user.storage.remove.confirm.title', {name: instance.name}),
965
+ $translate.instant('user.storage.remove.confirm.message', {name: instance.name}),
966
+ $translate.instant('dialogs.delete.confirm'),
967
+ function() {
968
+ Components.remove({
969
+ realm : realm.realm,
970
+ componentId : instance.id
971
+ }, function() {
972
+ $route.reload();
973
+ Notifications.success($translate.instant('user.storage.remove.success'));
974
+ });
975
+ }
976
+ );
977
+ };
978
+ });
979
+
980
+ module.controller('GenericUserStorageCtrl', function($scope, $location, Notifications, $route, Dialog, realm,
981
+ serverInfo, instance, providerId, Components, UserStorageOperations, $translate) {
982
+ console.log('GenericUserStorageCtrl');
983
+ console.log('providerId: ' + providerId);
984
+ $scope.create = !instance.providerId;
985
+ console.log('create: ' + $scope.create);
986
+ var providers = serverInfo.componentTypes['org.keycloak.storage.UserStorageProvider'];
987
+ console.log('providers length ' + providers.length);
988
+ var providerFactory = null;
989
+ for (var i = 0; i < providers.length; i++) {
990
+ var p = providers[i];
991
+ console.log('provider: ' + p.id);
992
+ if (p.id == providerId) {
993
+ $scope.providerFactory = p;
994
+ providerFactory = p;
995
+ break;
996
+ }
997
+
998
+ }
999
+ $scope.showSync = false;
1000
+ $scope.changed = false;
1001
+
1002
+ console.log("providerFactory: " + providerFactory.id);
1003
+
1004
+ function initUserStorageSettings() {
1005
+ if ($scope.create) {
1006
+ $scope.changed = true;
1007
+ instance.name = providerFactory.id;
1008
+ instance.providerId = providerFactory.id;
1009
+ instance.providerType = 'org.keycloak.storage.UserStorageProvider';
1010
+ instance.parentId = realm.id;
1011
+ instance.config = {
1012
+
1013
+ };
1014
+ instance.config['priority'] = ["0"];
1015
+ instance.config['enabled'] = ["true"];
1016
+
1017
+ $scope.fullSyncEnabled = false;
1018
+ $scope.changedSyncEnabled = false;
1019
+ if (providerFactory.metadata.synchronizable) {
1020
+ instance.config['fullSyncPeriod'] = ['-1'];
1021
+ instance.config['changedSyncPeriod'] = ['-1'];
1022
+
1023
+ }
1024
+ instance.config['cachePolicy'] = ['DEFAULT'];
1025
+ instance.config['evictionDay'] = [''];
1026
+ instance.config['evictionHour'] = [''];
1027
+ instance.config['evictionMinute'] = [''];
1028
+ instance.config['maxLifespan'] = [''];
1029
+ if (providerFactory.properties) {
1030
+
1031
+ for (var i = 0; i < providerFactory.properties.length; i++) {
1032
+ var configProperty = providerFactory.properties[i];
1033
+ if (configProperty.defaultValue) {
1034
+ instance.config[configProperty.name] = [configProperty.defaultValue];
1035
+ } else {
1036
+ instance.config[configProperty.name] = [''];
1037
+ }
1038
+
1039
+ }
1040
+ }
1041
+
1042
+ } else {
1043
+ $scope.changed = false;
1044
+ $scope.fullSyncEnabled = (instance.config['fullSyncPeriod'] && instance.config['fullSyncPeriod'][0] > 0);
1045
+ $scope.changedSyncEnabled = (instance.config['changedSyncPeriod'] && instance.config['changedSyncPeriod'][0]> 0);
1046
+ if (providerFactory.metadata.synchronizable) {
1047
+ if (!instance.config['fullSyncPeriod']) {
1048
+ console.log('setting to -1');
1049
+ instance.config['fullSyncPeriod'] = ['-1'];
1050
+
1051
+ }
1052
+ if (!instance.config['changedSyncPeriod']) {
1053
+ console.log('setting to -1');
1054
+ instance.config['changedSyncPeriod'] = ['-1'];
1055
+
1056
+ }
1057
+ }
1058
+ if (!instance.config['enabled']) {
1059
+ instance.config['enabled'] = ['true'];
1060
+ }
1061
+ if (!instance.config['cachePolicy']) {
1062
+ instance.config['cachePolicy'] = ['DEFAULT'];
1063
+
1064
+ }
1065
+ if (!instance.config['evictionDay']) {
1066
+ instance.config['evictionDay'] = [''];
1067
+
1068
+ }
1069
+ if (!instance.config['evictionHour']) {
1070
+ instance.config['evictionHour'] = [''];
1071
+
1072
+ }
1073
+ if (!instance.config['evictionMinute']) {
1074
+ instance.config['evictionMinute'] = [''];
1075
+
1076
+ }
1077
+ if (!instance.config['maxLifespan']) {
1078
+ instance.config['maxLifespan'] = [''];
1079
+
1080
+ }
1081
+ if (!instance.config['priority']) {
1082
+ instance.config['priority'] = ['0'];
1083
+ }
1084
+
1085
+ if (providerFactory.properties) {
1086
+ for (var i = 0; i < providerFactory.properties.length; i++) {
1087
+ var configProperty = providerFactory.properties[i];
1088
+ if (!instance.config[configProperty.name]) {
1089
+ instance.config[configProperty.name] = [''];
1090
+ }
1091
+ }
1092
+ }
1093
+
1094
+ }
1095
+ if (providerFactory.metadata.synchronizable) {
1096
+ if (instance.config && instance.config['importEnabled']) {
1097
+ $scope.showSync = instance.config['importEnabled'][0] == 'true';
1098
+ } else {
1099
+ $scope.showSync = true;
1100
+ }
1101
+ }
1102
+
1103
+ }
1104
+
1105
+ initUserStorageSettings();
1106
+ $scope.instance = angular.copy(instance);
1107
+ $scope.realm = realm;
1108
+
1109
+ $scope.$watch('instance', function() {
1110
+ if (!angular.equals($scope.instance, instance)) {
1111
+ $scope.changed = true;
1112
+ }
1113
+
1114
+ }, true);
1115
+
1116
+ $scope.$watch('fullSyncEnabled', function(newVal, oldVal) {
1117
+ if (oldVal == newVal) {
1118
+ return;
1119
+ }
1120
+
1121
+ $scope.instance.config['fullSyncPeriod'][0] = $scope.fullSyncEnabled ? "604800" : "-1";
1122
+ $scope.changed = true;
1123
+ });
1124
+
1125
+ $scope.$watch('changedSyncEnabled', function(newVal, oldVal) {
1126
+ if (oldVal == newVal) {
1127
+ return;
1128
+ }
1129
+
1130
+ $scope.instance.config['changedSyncPeriod'][0] = $scope.changedSyncEnabled ? "86400" : "-1";
1131
+ $scope.changed = true;
1132
+ });
1133
+
1134
+
1135
+ $scope.save = function() {
1136
+ console.log('save provider');
1137
+ $scope.changed = false;
1138
+ if ($scope.create) {
1139
+ console.log('saving new provider');
1140
+ Components.save({realm: realm.realm}, $scope.instance, function (data, headers) {
1141
+ var l = headers().location;
1142
+ var id = l.substring(l.lastIndexOf("/") + 1);
1143
+
1144
+ $location.url("/realms/" + realm.realm + "/user-storage/providers/" + $scope.instance.providerId + "/" + id);
1145
+ Notifications.success($translate.instant('user.storage.create.success'));
1146
+ });
1147
+ } else {
1148
+ console.log('update existing provider');
1149
+ Components.update({realm: realm.realm,
1150
+ componentId: instance.id
1151
+ },
1152
+ $scope.instance, function () {
1153
+ $route.reload();
1154
+ Notifications.success($translate.instant('user.storage.edit.success'));
1155
+ });
1156
+ }
1157
+ };
1158
+
1159
+ $scope.reset = function() {
1160
+ //initUserStorageSettings();
1161
+ //$scope.instance = angular.copy(instance);
1162
+ $route.reload();
1163
+ };
1164
+
1165
+ $scope.cancel = function() {
1166
+ console.log('cancel');
1167
+ if ($scope.create) {
1168
+ $location.url("/realms/" + realm.realm + "/user-federation");
1169
+ } else {
1170
+ $route.reload();
1171
+ }
1172
+ };
1173
+
1174
+ $scope.triggerFullSync = function() {
1175
+ console.log('GenericCtrl: triggerFullSync');
1176
+ triggerSync('triggerFullSync');
1177
+ }
1178
+
1179
+ $scope.triggerChangedUsersSync = function() {
1180
+ console.log('GenericCtrl: triggerChangedUsersSync');
1181
+ triggerSync('triggerChangedUsersSync');
1182
+ }
1183
+
1184
+ function triggerSync(action) {
1185
+ UserStorageOperations.sync.save({ action: action, realm: $scope.realm.realm, componentId: $scope.instance.id }, {}, function(syncResult) {
1186
+ $route.reload();
1187
+ Notifications.success($translate.instant('user.storage.sync.success',{status: syncResult.status}));
1188
+ }, function() {
1189
+ $route.reload();
1190
+ Notifications.error($translate.instant('user.storage.sync.error'));
1191
+ });
1192
+ }
1193
+ $scope.removeImportedUsers = function() {
1194
+ UserStorageOperations.removeImportedUsers.save({ realm: $scope.realm.realm, componentId: $scope.instance.id }, {}, function(syncResult) {
1195
+ $route.reload();
1196
+ Notifications.success($translate.instant('user.storage.remove-users.success'));
1197
+ }, function() {
1198
+ $route.reload();
1199
+ Notifications.error($translate.instant('user.storage.remove-users.error'));
1200
+ });
1201
+ };
1202
+ $scope.unlinkUsers = function() {
1203
+ UserStorageOperations.unlinkUsers.save({ realm: $scope.realm.realm, componentId: $scope.instance.id }, {}, function(syncResult) {
1204
+ $route.reload();
1205
+ Notifications.success($translate.instant('user.storage.unlink.success'));
1206
+ }, function() {
1207
+ $route.reload();
1208
+ Notifications.error($translate.instant('user.storage.unlink.error'));
1209
+ });
1210
+ };
1211
+
1212
+ });
1213
+
1214
+
1215
+ function removeGroupMember(groups, member) {
1216
+ for (var j = 0; j < groups.length; j++) {
1217
+ //console.log('checking: ' + groups[j].path);
1218
+ if (member.path == groups[j].path) {
1219
+ groups.splice(j, 1);
1220
+ break;
1221
+ }
1222
+ if (groups[j].subGroups && groups[j].subGroups.length > 0) {
1223
+ //console.log('going into subgroups');
1224
+ removeGroupMember(groups[j].subGroups, member);
1225
+ }
1226
+ }
1227
+ }
1228
+
1229
+ module.controller('UserGroupMembershipCtrl', function($scope, $q, realm, user, UserGroupMembership, UserGroupMembershipCount, UserGroupMapping, Notifications, Groups, GroupsCount, ComponentUtils, $translate) {
1230
+ $scope.realm = realm;
1231
+ $scope.user = user;
1232
+ $scope.groupList = [];
1233
+ $scope.allGroupMemberships = [];
1234
+ $scope.groupMemberships = [];
1235
+ $scope.tree = [];
1236
+ $scope.membershipTree = [];
1237
+
1238
+ $scope.searchCriteria = '';
1239
+ $scope.searchCriteriaMembership = '';
1240
+ $scope.currentPage = 1;
1241
+ $scope.currentMembershipPage = 1;
1242
+ $scope.currentPageInput = $scope.currentPage;
1243
+ $scope.currentMembershipPageInput = $scope.currentMembershipPage;
1244
+ $scope.pageSize = 20;
1245
+ $scope.numberOfPages = 1;
1246
+ $scope.numberOfMembershipPages = 1;
1247
+
1248
+ var refreshCompleteUserGroupMembership = function() {
1249
+ var queryParams = {
1250
+ realm : realm.realm,
1251
+ userId: user.id
1252
+ };
1253
+
1254
+ var promiseGetCompleteUserGroupMembership = $q.defer();
1255
+ UserGroupMembership.query(queryParams, function(entry) {
1256
+ promiseGetCompleteUserGroupMembership.resolve(entry);
1257
+ }, function() {
1258
+ promiseGetCompleteUserGroupMembership.reject($translate.instant('user.groups.fetch.all.error', {params: queryParams}));
1259
+ });
1260
+ promiseGetCompleteUserGroupMembership.promise.then(function(groups) {
1261
+ for (var i = 0; i < groups.length; i++) {
1262
+ $scope.allGroupMemberships.push(groups[i]);
1263
+ $scope.getGroupClass(groups[i]);
1264
+ }
1265
+ }, function (failed) {
1266
+ Notifications.error(failed);
1267
+ });
1268
+ return promiseGetCompleteUserGroupMembership.promise;
1269
+ };
1270
+
1271
+ var refreshUserGroupMembership = function (search) {
1272
+ $scope.currentMembershipPageInput = $scope.currentMembershipPage;
1273
+ var first = ($scope.currentMembershipPage * $scope.pageSize) - $scope.pageSize;
1274
+ var queryParams = {
1275
+ realm : realm.realm,
1276
+ userId: user.id,
1277
+ first : first,
1278
+ max : $scope.pageSize
1279
+ };
1280
+
1281
+ var countParams = {
1282
+ realm : realm.realm,
1283
+ userId: user.id
1284
+ };
1285
+
1286
+ var isSearch = function() {
1287
+ return angular.isDefined(search) && search !== '';
1288
+ };
1289
+
1290
+ if (isSearch()) {
1291
+ queryParams.search = search;
1292
+ countParams.search = search;
1293
+ }
1294
+
1295
+ var promiseGetUserGroupMembership = $q.defer();
1296
+ UserGroupMembership.query(queryParams, function(entry) {
1297
+ promiseGetUserGroupMembership.resolve(entry);
1298
+ }, function() {
1299
+ promiseGetUserGroupMembership.reject($translate.instant('user.groups.fetch.error', {params: queryParams}));
1300
+ });
1301
+
1302
+ var promiseMembershipCount = $q.defer();
1303
+
1304
+ promiseGetUserGroupMembership.promise.then(function(groups) {
1305
+ $scope.groupMemberships = groups;
1306
+ UserGroupMembershipCount.query(countParams, function(entry) {
1307
+ promiseMembershipCount.resolve(entry);
1308
+ }, function() {
1309
+ promiseMembershipCount.reject($translate.instant('user.groups.fetch.error', {params: countParams}));
1310
+ });
1311
+ promiseMembershipCount.promise.then(function(membershipEntry) {
1312
+ if(angular.isDefined(membershipEntry.count) && membershipEntry.count > $scope.pageSize) {
1313
+ $scope.numberOfMembershipPages = Math.ceil(membershipEntry.count/$scope.pageSize);
1314
+ } else {
1315
+ $scope.numberOfMembershipPages = 1;
1316
+ }
1317
+ if (parseInt($scope.currentMembershipPage, 10) > $scope.numberOfMembershipPages) {
1318
+ $scope.currentMembershipPage = $scope.numberOfMembershipPages;
1319
+ }
1320
+ }, function (failed) {
1321
+ Notifications.error(failed);
1322
+ });
1323
+ }, function (failed) {
1324
+ Notifications.error(failed);
1325
+ });
1326
+
1327
+ return promiseMembershipCount.promise;
1328
+ };
1329
+
1330
+ var refreshAvailableGroups = function (search) {
1331
+ $scope.currentPageInput = $scope.currentPage;
1332
+ var first = ($scope.currentPage * $scope.pageSize) - $scope.pageSize;
1333
+ var queryParams = {
1334
+ realm : realm.realm,
1335
+ first : first,
1336
+ max : $scope.pageSize
1337
+ };
1338
+
1339
+ var countParams = {
1340
+ realm : realm.realm,
1341
+ top : 'true'
1342
+ };
1343
+
1344
+ if(angular.isDefined(search) && search !== '') {
1345
+ queryParams.search = search;
1346
+ countParams.search = search;
1347
+ }
1348
+
1349
+ var promiseGetGroups = $q.defer();
1350
+ Groups.query(queryParams, function(entry) {
1351
+ promiseGetGroups.resolve(entry);
1352
+ }, function() {
1353
+ promiseGetGroups.reject($translate.instant('user.groups.fetch.error', {params: queryParams}));
1354
+ });
1355
+
1356
+ var promiseCount = $q.defer();
1357
+
1358
+ promiseGetGroups.promise.then(function(groups) {
1359
+ $scope.groupList = ComponentUtils.sortGroups('name', groups);
1360
+ GroupsCount.query(countParams, function(entry) {
1361
+ promiseCount.resolve(entry);
1362
+ }, function() {
1363
+ promiseCount.reject($translate.instant('user.groups.fetch.error', {params: countParams}));
1364
+ });
1365
+ promiseCount.promise.then(function(entry) {
1366
+ if(angular.isDefined(entry.count) && entry.count > $scope.pageSize) {
1367
+ $scope.numberOfPages = Math.ceil(entry.count/$scope.pageSize);
1368
+ } else {
1369
+ $scope.numberOfPages = 1;
1370
+ }
1371
+ }, function (failed) {
1372
+ Notifications.error(failed);
1373
+ });
1374
+ }, function (failed) {
1375
+ Notifications.error(failed);
1376
+ });
1377
+
1378
+ return promiseCount.promise;
1379
+ };
1380
+
1381
+ $scope.clearSearchMembership = function() {
1382
+ $scope.searchCriteriaMembership = '';
1383
+ if (parseInt($scope.currentMembershipPage, 10) === 1) {
1384
+ refreshUserGroupMembership();
1385
+ } else {
1386
+ $scope.currentMembershipPage = 1;
1387
+ }
1388
+ };
1389
+
1390
+ $scope.searchGroupMembership = function() {
1391
+ if (parseInt($scope.currentMembershipPage, 10) === 1) {
1392
+ refreshUserGroupMembership($scope.searchCriteriaMembership);
1393
+ } else {
1394
+ $scope.currentMembershipPage = 1;
1395
+ }
1396
+ };
1397
+
1398
+ refreshUserGroupMembership().then(function() {
1399
+ refreshAvailableGroups();
1400
+ refreshCompleteUserGroupMembership();
1401
+ });
1402
+
1403
+ $scope.$watch('currentPage', function(newValue, oldValue) {
1404
+ if(parseInt(newValue, 10) !== parseInt(oldValue, 10)) {
1405
+ refreshAvailableGroups($scope.searchCriteria);
1406
+ }
1407
+ });
1408
+
1409
+ $scope.$watch('currentMembershipPage', function(newValue, oldValue) {
1410
+ if(parseInt(newValue, 10) !== parseInt(oldValue, 10)) {
1411
+ refreshUserGroupMembership($scope.searchCriteriaMembership);
1412
+ }
1413
+ });
1414
+
1415
+ $scope.clearSearch = function() {
1416
+ $scope.searchCriteria = '';
1417
+ if (parseInt($scope.currentPage, 10) === 1) {
1418
+ refreshAvailableGroups();
1419
+ } else {
1420
+ $scope.currentPage = 1;
1421
+ }
1422
+ };
1423
+
1424
+ $scope.searchGroup = function() {
1425
+ if (parseInt($scope.currentPage, 10) === 1) {
1426
+ refreshAvailableGroups($scope.searchCriteria);
1427
+ } else {
1428
+ $scope.currentPage = 1;
1429
+ }
1430
+ };
1431
+
1432
+ $scope.joinGroup = function() {
1433
+ if (!$scope.tree.currentNode) {
1434
+ Notifications.error($translate.instant('user.groups.join.error.no-group-selected'));
1435
+ return;
1436
+ }
1437
+ if (isMember($scope.tree.currentNode)) {
1438
+ Notifications.error($translate.instant('user.groups.join.error.already-added'));
1439
+ return;
1440
+ }
1441
+ UserGroupMapping.update({realm: realm.realm, userId: user.id, groupId: $scope.tree.currentNode.id}, function() {
1442
+ $scope.allGroupMemberships.push($scope.tree.currentNode);
1443
+ refreshUserGroupMembership($scope.searchCriteriaMembership);
1444
+ Notifications.success($translate.instant('user.groups.join.success'));
1445
+ });
1446
+
1447
+ };
1448
+
1449
+ $scope.leaveGroup = function() {
1450
+ if (!$scope.membershipTree.currentNode) {
1451
+ Notifications.error($translate.instant('user.groups.leave.error.no-group-selected'));
1452
+ return;
1453
+ }
1454
+ UserGroupMapping.remove({realm: realm.realm, userId: user.id, groupId: $scope.membershipTree.currentNode.id}, function () {
1455
+ removeGroupMember($scope.allGroupMemberships, $scope.membershipTree.currentNode);
1456
+ refreshUserGroupMembership($scope.searchCriteriaMembership);
1457
+ Notifications.success($translate.instant('user.groups.leave.success'));
1458
+ });
1459
+
1460
+ };
1461
+
1462
+ var isLeaf = function(node) {
1463
+ return node.id !== 'realm' && (!node.subGroups || node.subGroups.length === 0);
1464
+ };
1465
+
1466
+ var isMember = function(node) {
1467
+ for (var i = 0; i < $scope.allGroupMemberships.length; i++) {
1468
+ var member = $scope.allGroupMemberships[i];
1469
+ if (node.id === member.id) {
1470
+ return true;
1471
+ }
1472
+ }
1473
+ return false;
1474
+ };
1475
+
1476
+ $scope.getGroupClass = function(node) {
1477
+ if (node.id == "realm") {
1478
+ return 'pficon pficon-users';
1479
+ }
1480
+ if (isMember(node)) {
1481
+ return 'normal deactivate';
1482
+ }
1483
+ if (isLeaf(node)) {
1484
+ return 'normal';
1485
+ }
1486
+ if (node.subGroups.length && node.collapsed) return 'collapsed';
1487
+ if (node.subGroups.length && !node.collapsed) return 'expanded';
1488
+ return 'collapsed';
1489
+
1490
+ }
1491
+
1492
+ $scope.getSelectedClass = function(node) {
1493
+ if (node.selected) {
1494
+ if (isMember(node)) {
1495
+ return "deactivate_selected";
1496
+ } else {
1497
+ return 'selected';
1498
+ }
1499
+ } else if ($scope.cutNode && $scope.cutNode.id === node.id) {
1500
+ return 'cut';
1501
+ }
1502
+ return undefined;
1503
+ }
1504
+
1505
+ });
1506
+
1507
+ module.controller('LDAPUserStorageCtrl', function($scope, $location, Notifications, $route, Dialog, realm,
1508
+ serverInfo, instance, Components, UserStorageOperations,
1509
+ RealmLDAPConnectionTester, $http) {
1510
+ console.log('LDAPUserStorageCtrl');
1511
+ var providerId = 'ldap';
1512
+ console.log('providerId: ' + providerId);
1513
+ $scope.create = !instance.providerId;
1514
+ console.log('create: ' + $scope.create);
1515
+ var providers = serverInfo.componentTypes['org.keycloak.storage.UserStorageProvider'];
1516
+ console.log('providers length ' + providers.length);
1517
+ var providerFactory = null;
1518
+ for (var i = 0; i < providers.length; i++) {
1519
+ var p = providers[i];
1520
+ console.log('provider: ' + p.id);
1521
+ if (p.id == providerId) {
1522
+ $scope.providerFactory = p;
1523
+ providerFactory = p;
1524
+ break;
1525
+ }
1526
+
1527
+ }
1528
+
1529
+ $scope.provider = instance;
1530
+ $scope.showSync = false;
1531
+
1532
+ if (serverInfo.profileInfo.name == 'community') {
1533
+ $scope.ldapVendors = [
1534
+ {"id": "ad", "name": "Active Directory"},
1535
+ {"id": "rhds", "name": "Red Hat Directory Server"},
1536
+ {"id": "tivoli", "name": "Tivoli"},
1537
+ {"id": "edirectory", "name": "Novell eDirectory"},
1538
+ {"id": "other", "name": "Other"}
1539
+ ];
1540
+ } else {
1541
+ $scope.ldapVendors = [
1542
+ {"id": "ad", "name": "Active Directory"},
1543
+ {"id": "rhds", "name": "Red Hat Directory Server"}
1544
+ ];
1545
+ }
1546
+
1547
+ $scope.authTypes = [
1548
+ { "id": "none", "name": "none" },
1549
+ { "id": "simple", "name": "simple" }
1550
+ ];
1551
+
1552
+ $scope.searchScopes = [
1553
+ { "id": "1", "name": "One Level" },
1554
+ { "id": "2", "name": "Subtree" }
1555
+ ];
1556
+
1557
+ $scope.useTruststoreOptions = [
1558
+ { "id": "always", "name": "Always" },
1559
+ { "id": "ldapsOnly", "name": "Only for ldaps" },
1560
+ { "id": "never", "name": "Never" }
1561
+ ];
1562
+
1563
+ var DEFAULT_BATCH_SIZE = "1000";
1564
+
1565
+
1566
+ console.log("providerFactory: " + providerFactory.id);
1567
+
1568
+ $scope.changed = false;
1569
+ function initUserStorageSettings() {
1570
+ if ($scope.create) {
1571
+ $scope.changed = true;
1572
+ instance.name = 'ldap';
1573
+ instance.providerId = 'ldap';
1574
+ instance.providerType = 'org.keycloak.storage.UserStorageProvider';
1575
+ instance.parentId = realm.id;
1576
+ instance.config = {
1577
+
1578
+ };
1579
+ instance.config['enabled'] = ["true"];
1580
+ instance.config['priority'] = ["0"];
1581
+
1582
+ $scope.fullSyncEnabled = false;
1583
+ $scope.changedSyncEnabled = false;
1584
+ instance.config['fullSyncPeriod'] = ['-1'];
1585
+ instance.config['changedSyncPeriod'] = ['-1'];
1586
+ instance.config['cachePolicy'] = ['DEFAULT'];
1587
+ instance.config['evictionDay'] = [''];
1588
+ instance.config['evictionHour'] = [''];
1589
+ instance.config['evictionMinute'] = [''];
1590
+ instance.config['maxLifespan'] = [''];
1591
+ instance.config['batchSizeForSync'] = [DEFAULT_BATCH_SIZE];
1592
+ //instance.config['importEnabled'] = ['true'];
1593
+
1594
+ if (providerFactory.properties) {
1595
+
1596
+ for (var i = 0; i < providerFactory.properties.length; i++) {
1597
+ var configProperty = providerFactory.properties[i];
1598
+ if (configProperty.defaultValue) {
1599
+ instance.config[configProperty.name] = [configProperty.defaultValue];
1600
+ } else {
1601
+ instance.config[configProperty.name] = [''];
1602
+ }
1603
+
1604
+ }
1605
+ }
1606
+
1607
+
1608
+ } else {
1609
+ $scope.changed = false;
1610
+ $scope.fullSyncEnabled = (instance.config['fullSyncPeriod'] && instance.config['fullSyncPeriod'][0] > 0);
1611
+ $scope.changedSyncEnabled = (instance.config['changedSyncPeriod'] && instance.config['changedSyncPeriod'][0]> 0);
1612
+ if (!instance.config['fullSyncPeriod']) {
1613
+ console.log('setting to -1');
1614
+ instance.config['fullSyncPeriod'] = ['-1'];
1615
+
1616
+ }
1617
+ if (!instance.config['enabled']) {
1618
+ instance.config['enabled'] = ['true'];
1619
+ }
1620
+ if (!instance.config['changedSyncPeriod']) {
1621
+ console.log('setting to -1');
1622
+ instance.config['changedSyncPeriod'] = ['-1'];
1623
+
1624
+ }
1625
+ if (!instance.config['cachePolicy']) {
1626
+ instance.config['cachePolicy'] = ['DEFAULT'];
1627
+
1628
+ }
1629
+ if (!instance.config['evictionDay']) {
1630
+ instance.config['evictionDay'] = [''];
1631
+
1632
+ }
1633
+ if (!instance.config['evictionHour']) {
1634
+ instance.config['evictionHour'] = [''];
1635
+
1636
+ }
1637
+ if (!instance.config['evictionMinute']) {
1638
+ instance.config['evictionMinute'] = [''];
1639
+
1640
+ }
1641
+ if (!instance.config['maxLifespan']) {
1642
+ instance.config['maxLifespan'] = [''];
1643
+
1644
+ }
1645
+ if (!instance.config['priority']) {
1646
+ instance.config['priority'] = ['0'];
1647
+ }
1648
+ if (!instance.config['importEnabled']) {
1649
+ instance.config['importEnabled'] = ['true'];
1650
+ }
1651
+
1652
+ if (providerFactory.properties) {
1653
+
1654
+ for (var i = 0; i < providerFactory.properties.length; i++) {
1655
+ var configProperty = providerFactory.properties[i];
1656
+ if (!instance.config[configProperty.name]) {
1657
+ if (configProperty.defaultValue) {
1658
+ instance.config[configProperty.name] = [configProperty.defaultValue];
1659
+ } else {
1660
+ instance.config[configProperty.name] = [''];
1661
+ }
1662
+ }
1663
+
1664
+ }
1665
+ }
1666
+
1667
+ for (var i=0 ; i<$scope.ldapVendors.length ; i++) {
1668
+ if ($scope.ldapVendors[i].id === instance.config['vendor'][0]) {
1669
+ $scope.vendorName = $scope.ldapVendors[i].name;
1670
+ }
1671
+ };
1672
+
1673
+
1674
+
1675
+ }
1676
+ if (instance.config && instance.config['importEnabled']) {
1677
+ $scope.showSync = instance.config['importEnabled'][0] == 'true';
1678
+ } else {
1679
+ $scope.showSync = true;
1680
+ }
1681
+
1682
+ $scope.lastVendor = instance.config['vendor'][0];
1683
+ }
1684
+
1685
+ initUserStorageSettings();
1686
+ $scope.instance = angular.copy(instance);
1687
+ $scope.realm = realm;
1688
+
1689
+ $scope.$watch('instance', function() {
1690
+ if (!angular.equals($scope.instance, instance)) {
1691
+ $scope.changed = true;
1692
+ }
1693
+
1694
+ if (!angular.equals($scope.instance.config['vendor'][0], $scope.lastVendor)) {
1695
+ console.log("LDAP vendor changed. Previous=" + $scope.lastVendor + " New=" + $scope.instance.config['vendor'][0]);
1696
+ $scope.lastVendor = $scope.instance.config['vendor'][0];
1697
+
1698
+ if ($scope.lastVendor === "ad") {
1699
+ $scope.instance.config['usernameLDAPAttribute'][0] = "cn";
1700
+ $scope.instance.config['userObjectClasses'][0] = "person, organizationalPerson, user";
1701
+ } else {
1702
+ $scope.instance.config['usernameLDAPAttribute'][0] = "uid";
1703
+ $scope.instance.config['userObjectClasses'][0] = "inetOrgPerson, organizationalPerson";
1704
+ }
1705
+
1706
+ $scope.instance.config['rdnLDAPAttribute'][0] = $scope.instance.config['usernameLDAPAttribute'][0];
1707
+
1708
+ var vendorToUUID = {
1709
+ rhds: "nsuniqueid",
1710
+ tivoli: "uniqueidentifier",
1711
+ edirectory: "guid",
1712
+ ad: "objectGUID",
1713
+ other: "entryUUID"
1714
+ };
1715
+ $scope.instance.config['uuidLDAPAttribute'][0] = vendorToUUID[$scope.lastVendor];
1716
+ }
1717
+
1718
+
1719
+ }, true);
1720
+
1721
+ $scope.$watch('fullSyncEnabled', function(newVal, oldVal) {
1722
+ if (oldVal == newVal) {
1723
+ return;
1724
+ }
1725
+
1726
+ $scope.instance.config['fullSyncPeriod'][0] = $scope.fullSyncEnabled ? "604800" : "-1";
1727
+ $scope.changed = true;
1728
+ });
1729
+
1730
+ $scope.$watch('changedSyncEnabled', function(newVal, oldVal) {
1731
+ if (oldVal == newVal) {
1732
+ return;
1733
+ }
1734
+
1735
+ $scope.instance.config['changedSyncPeriod'][0] = $scope.changedSyncEnabled ? "86400" : "-1";
1736
+ $scope.changed = true;
1737
+ });
1738
+
1739
+
1740
+ $scope.save = function() {
1741
+ $scope.changed = false;
1742
+ if (!$scope.instance.config['batchSizeForSync'] || !parseInt($scope.instance.config['batchSizeForSync'][0])) {
1743
+ $scope.instance.config['batchSizeForSync'] = [ DEFAULT_BATCH_SIZE ];
1744
+ } else {
1745
+ $scope.instance.config['batchSizeForSync'][0] = parseInt($scope.instance.config.batchSizeForSync).toString();
1746
+ }
1747
+
1748
+ if ($scope.create) {
1749
+ Components.save({realm: realm.realm}, $scope.instance, function (data, headers) {
1750
+ var l = headers().location;
1751
+ var id = l.substring(l.lastIndexOf("/") + 1);
1752
+
1753
+ $location.url("/realms/" + realm.realm + "/user-storage/providers/" + $scope.instance.providerId + "/" + id);
1754
+ Notifications.success("The provider has been created.");
1755
+ });
1756
+ } else {
1757
+ Components.update({realm: realm.realm,
1758
+ componentId: instance.id
1759
+ },
1760
+ $scope.instance, function () {
1761
+ $route.reload();
1762
+ Notifications.success("The provider has been updated.");
1763
+ });
1764
+ }
1765
+ };
1766
+
1767
+ $scope.reset = function() {
1768
+ $route.reload();
1769
+ };
1770
+
1771
+ $scope.cancel = function() {
1772
+ if ($scope.create) {
1773
+ $location.url("/realms/" + realm.realm + "/user-federation");
1774
+ } else {
1775
+ $route.reload();
1776
+ }
1777
+ };
1778
+
1779
+ $scope.triggerFullSync = function() {
1780
+ console.log('GenericCtrl: triggerFullSync');
1781
+ triggerSync('triggerFullSync');
1782
+ }
1783
+
1784
+ $scope.triggerChangedUsersSync = function() {
1785
+ console.log('GenericCtrl: triggerChangedUsersSync');
1786
+ triggerSync('triggerChangedUsersSync');
1787
+ }
1788
+
1789
+
1790
+ function triggerSync(action) {
1791
+ UserStorageOperations.sync.save({ action: action, realm: $scope.realm.realm, componentId: $scope.instance.id }, {}, function(syncResult) {
1792
+ $route.reload();
1793
+ Notifications.success("Sync of users finished successfully. " + syncResult.status);
1794
+ }, function() {
1795
+ $route.reload();
1796
+ Notifications.error("Error during sync of users");
1797
+ });
1798
+ }
1799
+ $scope.removeImportedUsers = function() {
1800
+ UserStorageOperations.removeImportedUsers.save({ realm: $scope.realm.realm, componentId: $scope.instance.id }, {}, function(syncResult) {
1801
+ $route.reload();
1802
+ Notifications.success("Remove imported users finished successfully. ");
1803
+ }, function() {
1804
+ $route.reload();
1805
+ Notifications.error("Error during remove");
1806
+ });
1807
+ };
1808
+ $scope.unlinkUsers = function() {
1809
+ UserStorageOperations.unlinkUsers.save({ realm: $scope.realm.realm, componentId: $scope.instance.id }, {}, function(syncResult) {
1810
+ $route.reload();
1811
+ Notifications.success("Unlink of users finished successfully. ");
1812
+ }, function() {
1813
+ $route.reload();
1814
+ Notifications.error("Error during unlink");
1815
+ });
1816
+ };
1817
+
1818
+ var initConnectionTest = function(testAction, ldapConfig) {
1819
+ return {
1820
+ action: testAction,
1821
+ connectionUrl: ldapConfig.connectionUrl && ldapConfig.connectionUrl[0],
1822
+ authType: ldapConfig.authType && ldapConfig.authType[0],
1823
+ bindDn: ldapConfig.bindDn && ldapConfig.bindDn[0],
1824
+ bindCredential: ldapConfig.bindCredential && ldapConfig.bindCredential[0],
1825
+ useTruststoreSpi: ldapConfig.useTruststoreSpi && ldapConfig.useTruststoreSpi[0],
1826
+ connectionTimeout: ldapConfig.connectionTimeout && ldapConfig.connectionTimeout[0],
1827
+ startTls: ldapConfig.startTls && ldapConfig.startTls[0],
1828
+ componentId: instance.id
1829
+ };
1830
+ };
1831
+
1832
+ $scope.testConnection = function() {
1833
+ console.log('LDAPCtrl: testConnection');
1834
+ RealmLDAPConnectionTester.save({realm: realm.realm}, initConnectionTest("testConnection", $scope.instance.config), function() {
1835
+ Notifications.success("LDAP connection successful.");
1836
+ }, function() {
1837
+ Notifications.error("Error when trying to connect to LDAP. See server.log for details.");
1838
+ });
1839
+ }
1840
+
1841
+ $scope.testAuthentication = function() {
1842
+ console.log('LDAPCtrl: testAuthentication');
1843
+ RealmLDAPConnectionTester.save({realm: realm.realm}, initConnectionTest("testAuthentication", $scope.instance.config), function() {
1844
+ Notifications.success("LDAP authentication successful.");
1845
+ }, function() {
1846
+ Notifications.error("LDAP authentication failed. See server.log for details");
1847
+ });
1848
+ }
1849
+
1850
+ $scope.queryAndSetLdapSupportedExtensions = function() {
1851
+ console.log('LDAPCtrl: getLdapSupportedExtensions');
1852
+ const PASSWORD_MODIFY_OID = '1.3.6.1.4.1.4203.1.11.1';
1853
+
1854
+ $http.post(
1855
+ authUrl + '/admin/realms/' + realm.realm + '/ldap-server-capabilities',
1856
+ initConnectionTest("queryServerCapabilities", $scope.instance.config)).then(
1857
+ function(response) {
1858
+ Notifications.success("LDAP supported extensions successfully requested.");
1859
+ const ldapOids = response.data;
1860
+ if (angular.isArray(ldapOids)) {
1861
+ const passwordModifyOid = ldapOids.filter(function(ldapOid) { return ldapOid.oid === PASSWORD_MODIFY_OID; });
1862
+ $scope.instance.config['usePasswordModifyExtendedOp'][0] = (passwordModifyOid.length > 0).toString();
1863
+ }
1864
+ },
1865
+ function() {
1866
+ Notifications.error("Error when trying to request supported extensions of LDAP. See server.log for details.");
1867
+ });
1868
+ }
1869
+
1870
+ });
1871
+
1872
+ module.controller('LDAPTabCtrl', function(Dialog, $scope, Current, Notifications, $location) {
1873
+ $scope.removeUserFederation = function() {
1874
+ Dialog.confirmDelete($scope.instance.name, 'ldap provider', function() {
1875
+ $scope.instance.$remove({
1876
+ realm : Current.realm.realm,
1877
+ componentId : $scope.instance.id
1878
+ }, function() {
1879
+ $location.url("/realms/" + Current.realm.realm + "/user-federation");
1880
+ Notifications.success("The provider has been deleted.");
1881
+ });
1882
+ });
1883
+ };
1884
+ });
1885
+
1886
+
1887
+ module.controller('LDAPMapperListCtrl', function($scope, $location, Notifications, $route, Dialog, realm, provider, mappers) {
1888
+ console.log('LDAPMapperListCtrl');
1889
+
1890
+ $scope.realm = realm;
1891
+ $scope.provider = provider;
1892
+ $scope.instance = provider;
1893
+
1894
+ $scope.mappers = mappers;
1895
+
1896
+ });
1897
+
1898
+ module.controller('LDAPMapperCtrl', function($scope, $route, realm, provider, mapperTypes, mapper, clients, Components, LDAPMapperSync, Notifications, Dialog, $location) {
1899
+ console.log('LDAPMapperCtrl');
1900
+ $scope.realm = realm;
1901
+ $scope.provider = provider;
1902
+ $scope.clients = clients;
1903
+ $scope.create = false;
1904
+ $scope.changed = false;
1905
+
1906
+ for (var i = 0; i < mapperTypes.length; i++) {
1907
+ console.log('mapper.providerId: ' + mapper.providerId);
1908
+ console.log('mapperTypes[i].id ' + mapperTypes[i].id);
1909
+ if (mapperTypes[i].id == mapper.providerId) {
1910
+ $scope.mapperType = mapperTypes[i];
1911
+ break;
1912
+ }
1913
+ }
1914
+
1915
+ if ($scope.mapperType.properties) {
1916
+
1917
+ for (var i = 0; i < $scope.mapperType.properties.length; i++) {
1918
+ var configProperty = $scope.mapperType.properties[i];
1919
+ if (!mapper.config[configProperty.name]) {
1920
+ if (configProperty.defaultValue) {
1921
+ mapper.config[configProperty.name] = [configProperty.defaultValue];
1922
+ } else {
1923
+ mapper.config[configProperty.name] = [''];
1924
+ }
1925
+ }
1926
+
1927
+ }
1928
+ }
1929
+ $scope.mapper = angular.copy(mapper);
1930
+
1931
+
1932
+ $scope.$watch('mapper', function() {
1933
+ if (!angular.equals($scope.mapper, mapper)) {
1934
+ $scope.changed = true;
1935
+ }
1936
+ }, true);
1937
+
1938
+ $scope.save = function() {
1939
+ Components.update({realm: realm.realm,
1940
+ componentId: mapper.id
1941
+ },
1942
+ $scope.mapper, function () {
1943
+ $route.reload();
1944
+ Notifications.success("The mapper has been updated.");
1945
+ });
1946
+ };
1947
+
1948
+ $scope.reset = function() {
1949
+ $scope.mapper = angular.copy(mapper);
1950
+ $scope.changed = false;
1951
+ };
1952
+
1953
+ $scope.remove = function() {
1954
+ Dialog.confirmDelete($scope.mapper.name, 'ldap mapper', function() {
1955
+ Components.remove({
1956
+ realm : realm.realm,
1957
+ componentId : mapper.id
1958
+ }, function() {
1959
+ $location.url("/realms/" + realm.realm + '/ldap-mappers/' + provider.id);
1960
+ Notifications.success("The provider has been deleted.");
1961
+ });
1962
+ });
1963
+ };
1964
+
1965
+ $scope.triggerFedToKeycloakSync = function() {
1966
+ triggerMapperSync("fedToKeycloak")
1967
+ }
1968
+
1969
+ $scope.triggerKeycloakToFedSync = function() {
1970
+ triggerMapperSync("keycloakToFed");
1971
+ }
1972
+
1973
+ function triggerMapperSync(direction) {
1974
+ LDAPMapperSync.save({ direction: direction, realm: realm.realm, parentId: provider.id, mapperId : $scope.mapper.id }, {}, function(syncResult) {
1975
+ Notifications.success("Data synced successfully. " + syncResult.status);
1976
+ }, function(error) {
1977
+ Notifications.error(error.data.errorMessage);
1978
+ });
1979
+ }
1980
+
1981
+ });
1982
+
1983
+ module.controller('LDAPMapperCreateCtrl', function($scope, realm, provider, mapperTypes, clients, Components, Notifications, Dialog, $location) {
1984
+ console.log('LDAPMapperCreateCtrl');
1985
+ $scope.realm = realm;
1986
+ $scope.provider = provider;
1987
+ $scope.clients = clients;
1988
+ $scope.create = true;
1989
+ $scope.mapper = { config: {}};
1990
+ $scope.mapperTypes = mapperTypes;
1991
+ $scope.mapperType = null;
1992
+ $scope.changed = true;
1993
+
1994
+ $scope.$watch('mapperType', function() {
1995
+ if ($scope.mapperType != null) {
1996
+ $scope.mapper.config = {};
1997
+ if ($scope.mapperType.properties) {
1998
+
1999
+ for (var i = 0; i < $scope.mapperType.properties.length; i++) {
2000
+ var configProperty = $scope.mapperType.properties[i];
2001
+ if (!$scope.mapper.config[configProperty.name]) {
2002
+ if (configProperty.defaultValue) {
2003
+ $scope.mapper.config[configProperty.name] = [configProperty.defaultValue];
2004
+ } else {
2005
+ $scope.mapper.config[configProperty.name] = [''];
2006
+ }
2007
+ }
2008
+
2009
+ }
2010
+ }
2011
+ }
2012
+ }, true);
2013
+
2014
+ $scope.save = function() {
2015
+ if ($scope.mapperType == null) {
2016
+ Notifications.error("You need to select mapper type!");
2017
+ return;
2018
+ }
2019
+
2020
+ $scope.mapper.providerId = $scope.mapperType.id;
2021
+ $scope.mapper.providerType = 'org.keycloak.storage.ldap.mappers.LDAPStorageMapper';
2022
+ $scope.mapper.parentId = provider.id;
2023
+
2024
+ if ($scope.mapper.config && $scope.mapper.config["role"] && !Array.isArray($scope.mapper.config["role"])) {
2025
+ $scope.mapper.config["role"] = [$scope.mapper.config["role"]];
2026
+ }
2027
+
2028
+ Components.save({realm: realm.realm}, $scope.mapper, function (data, headers) {
2029
+ var l = headers().location;
2030
+ var id = l.substring(l.lastIndexOf("/") + 1);
2031
+
2032
+ $location.url("/realms/" + realm.realm + "/ldap-mappers/" + $scope.mapper.parentId + "/mappers/" + id);
2033
+ Notifications.success("The mapper has been created.");
2034
+ });
2035
+ };
2036
+
2037
+ $scope.reset = function() {
2038
+ $location.url("/realms/" + realm.realm + '/ldap-mappers/' + provider.id);
2039
+ };
2040
+
2041
+
2042
+ });