This is an automated email from the git hooks/post-receive script. New change to branch master in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git from 0d7838eb Merge branch 'hotfix/3.0.3' adds 02a5af9d ajout de l'url de voe à partager dans la page de résumé du sondage + warning pour ne pas partager la page de résumé adds 6e45bf56 ajout d'un tooltip sur le bouton copier + suppression du warning adds 863823eb style adds 50cd29bb Merge tag '3.0.0' into develop adds 91d1a280 passage à la version 3.1.0-SNAPSHOT adds 3efc4383 passage à la version 3.1.0 pour le js adds 8ab5eda8 correction du footer en anglais adds a774bbd8 Limitations du nombre votants (ref #58), Déplacement des méthodes de transformation des entités en bean dans les services adds 6b46dc9a indiquer la limite de votants pour un sondage (ref #58) adds bf74bb03 ne pas afficher les votes ignorés (ref #58) adds 9ba5ccb2 Dans les listes des sondages : voir les sondage hors limites du nombre de votants (ref #58) adds 5cd67c81 Création et modification d'un sondage restreint, avertir si le nombre de participant dépasse le nombre maximum de votants (ref #58) adds 9f142759 envoyer un mail quand le nombre de votants dépasse la valeur max (ref #58) adds a59ea622 Merge branch 'feature/58-limitation-des-votants' into develop adds 9b760b6e refs #28 ajout de l'avatar pour l'utilisateur + possibilité d'en choisir un parmi les providers disponibles adds 47dd3508 refs #28 message si avatar non chargé adds 9caec977 refs #28 finalement on stocke l'avatar dans une resource en base meme quand ça vient d'un tiers adds d1e7140e refs #28 forumlaire d'upload de l'avatar adds 16c884e0 refs #28 utilisation de l'avatar adds 0b084777 ajout e variable dans le package.json adds 24e6ad02 rebase adds d7f90355 refs #28 utilisation des avatars un peu partout + verif de la taille et du type de fichier pour l'avatar adds 3f4c675f fixes #28 Avatar for the users adds 4e17e544 Merge tag '3.0.1' into develop adds 17348adb fixes #151 I cannot delete my account adds 73c393df fixes #46 Remove DevMode adds 050ad685 fixes #130 sauvegarde de la langue de l'UI adds 065aa161 Ajouter la configuration des méthodes vote (ref #148). Adaptation pour Normal, Cumulatif (ancien pourcentage), Nombre et Borda adds bd2be132 on ne cherche l'image d'avatar que si l'utilisateur a un avatar adds 1d19af87 correction de la valeur de la conf par défaut des types de sondage adds 540d368f Erreur de sérialisation de la config vide adds 2b6afd92 fixes #151 placement du bouton adds 37204ee8 mise en page de la section avatar du profil adds 200e8231 implentation du jugement majoritaire (algo de dépouillement) ref #149 adds d989f50e Configuration du jugement majoritaire a l'edition du sondage ref #149 adds dd36bebb modification de l'écran de vote pour la jugement majoritaire ref #149 adds ddf81a43 modification de l'écran de résultat pour la jugement majoritaire ref #149 adds 3fe4ce2f Merge branch 'feature/149-jugement-majoritaire' into develop adds 7249b09f correction de l'id de la resource pour les choix de type resource adds 55e0db1c correction couleur des commentaires adds 56c2b402 Borda : mise a jour du nombre de rangs si le nombre de choix change adds 8281c4c0 ajout du type de bouton adds 681c5f06 refs #44 debut de modifs du back pour accepter plusieurs emails par utilisateur adds 4984c6df fichier oublié adds 062dbeac refs #44 checks de sécurité + refactoring + tests unitaires adds 36295f55 corrections exceptions adds 36c7fa73 refs #44 correction de la migration adds e574d5ce refs #44 envoi d'un mail pour validation de l'adresse email adds cd10e94e refs #44 corrections adds 8c99b526 refs #44 nouvelle ui pour les adresses email adds 41a0c8a3 refs #44 meilleure gestion des emails de validation adds 86a73fba refs #44 validation de l'adresse email par l'admin adds ca0eeef8 refs #44 gestion des adresses email par l'admin adds 90f30944 gestion de l'avatar par l'admin adds afb6df3c refs #44 correction de la migration pour ajouter les emails des providers adds 1a9d7396 fixes #44 Several email addresses for the users adds f084635d en fonction de la configuration serveur rendre obligatoire la connexion des utilisateur (refs #85) adds 4a45f10f ajout du lien qui explique comment tester les providers en local adds 6d8f4a2a droit de création de sondage (refs #85) adds 9fc5f9a0 Merge branch 'feature/85-droits-utilisateurs' into develop adds d4cab629 correction des mails pour la création de compte adds 2bc5ad46 ajout d'une traduction adds 5f06504e ne pas initilaiser la date de premium, ne pas enregistrer le droit de création de sondage si l'option n'est pas active. adds 41b49632 Merge tag '3.0.1' into develop adds d8d09435 Merge tag '3.0.2' into develop adds be707f0b Merge tag '3.0.2' into develop adds b5e83c33 desactivé le bouton "enregistrer" pendant la création du sondage coté serveur (ref #162) adds 6bc52ca9 Corrige une dépendance déclarée en doublon adds 952dd455 Corrige le scope d'une dépendance adds 91bfe728 Sppression de token de session par un batch et non a la vérification du token + correction lié a l'expiration d'un token de séssion adds 802700b3 Sppression des ambiguité de l'API REST adds 49552acb mise en place du gitlab-page pour la documentation utilisateur (ref #88) adds dc16b42e mise en place du gitlab-page pour la documentation utilisateur (ref #88) adds 5f7a295f correction de l'initialisation de la base de données adds fa5c3466 correction des tests adds d93d7f03 Ajout des page de configuration et d'installation de Pollen (ref #88) adds 0adec829 Ajout des page de configuration et d'installation de Pollen (ref #88) adds 00ac16ed supression des options et des traductions non utilisées adds a2e5b891 mise a jour du readme adds 628f5736 mise a jour du readme adds 24c9d344 Renomme le composant 'Privacy' en 'LegalNotices' adds 4fcb9e80 Spécifie les mentions légales adds 3527c562 Supprime le tag concernant les mentions légales. adds 5d307666 Restaure la section Politique de confidentialité adds a9464b30 Corrige une mauvaise configuration adds 08842863 Corrige l'url des mentions légales adds 015f52f0 Ajoute une page de mentions légales par défaut et déplace toutes les données à customiser dans un répertoire spécifique adds 9dbd4c8f rebase sur develop adds c1e83d29 Merge branch 'feature/41_mentions_legales' into 'develop' adds 1647d6ee personnalisation des messages d'avertissement de la limitation du nombre de votant (ref #58) adds b373c248 personnalisation des messages d'avertissement de la limitation du nombre de votant (ref #58) adds 4dc16fce correction de l'initialisation des l'adresse email de créateur du sondage adds 20711f24 Ajouter le créateur automatiquement dans les participant d'un sondage restreint (ref #155) adds 22eebd62 decoupage du composant de vote (ref #165) adds e570d718 Ajout des méthodes de vote dans la documentation (ref #88) adds 55fa2402 Ajout des méthodes de vote dans la documentation (ref #88) adds cea80981 correction du docker file (home => customData) adds 36f9efcf correction authentification tiers adds 587105ce limitation de l'espace mémoire de l'API REST adds 7544d0da autocomplete off sur la répétition du mot de passe adds bd136129 ajout du filtre de login sur l'url root adds acb3f0f8 fixes #169 Suggest all the user's email addresses when he creates a poll adds 41112819 corrections linter adds 6c7425d1 correction de la migration adds a50c9dce gérer les action suite au retour de mail envoyer par pollen (refs #168) adds b5565118 compléter le documentation (refs #168) adds a07b0248 Merge tag '3.0.3' into develop adds bce47230 Merge tag '3.0.3' into develop adds 13b49204 Afficher la liste des emails non délivré pour l'administrateur du sondage (refs #168). ajouter une attente entre chaque envois de mail. adds e9e66c21 Ajout des instructions de construction du projet dans le readme adds 6e4fc920 Optimisation de la sécurité et des durées de certains traitements (ref #163) adds ccfcc5e7 Maj des dépendances et supression du code inutile (ref #163) adds ac442375 utilisation de JWT pour le token de session adds 2f360434 Un point d'entré pour voir l'état du service REST adds 49c5d215 Ajouter les detail dans les logs (thread, session, user, permission) + un log a la fin de chacque requête adds 3a41ce65 Ajout de la sessionId dans le mail de feedback + plus de log dans l'envoie et la reception des emails adds 5da7a152 Correction des permissions pour les actions de fermeture clonage et emails invalids sur un sondage adds 7427709d mise a jour de la documentation adds a8251a18 Fix REST API filters adds 74d3d7ad Ajout des headers de licence avant release adds 4916a0a0 release 3.1.0 success [skip ci] adds 80045391 Merge branch 'release/3.1.0' No new revisions were added by this update. Summary of changes: .gitlab-ci.yml | 20 + CHANGELOG | 23 + Dockerfile | 8 +- README.md | 133 ++-- .../main/web/img => docs/assets/images}/logo.png | Bin docs/config.md | 137 ++++ docs/electionMethods.md | 165 +++++ src/site/fr/rst/index.rst => docs/index.md | 40 +- docs/install.md | 53 ++ docs/socialauth.md | 33 + mkdocs.yml | 26 + pollen-persistence/pom.xml | 2 +- .../common/V3_1_0_5__Extract_email_addresses.java | 131 ++++ .../pollen/persistence/entity/PollTopiaDao.java | 12 + .../persistence/entity/PollenResourceTopiaDao.java | 12 + ...ao.java => PollenUserEmailAddressTopiaDao.java} | 31 +- .../pollen/persistence/entity/PollenUserImpl.java | 2 +- .../persistence/entity/PollenUserTopiaDao.java | 23 +- .../pollen/persistence/entity/PollenUsers.java | 35 - .../chorem/pollen/persistence/entity/Polls.java | 2 +- .../persistence/entity/UserCredentialTopiaDao.java | 18 +- .../pollen/persistence/entity/VoteToChoices.java | 15 +- .../pollen/persistence/entity/VoteTopiaDao.java | 11 + .../db/migration/h2/V3_1_0_1__add_premium.sql | 8 + .../db/migration/h2/V3_1_0_2__add_avatar.sql | 3 + .../h2/V3_1_0_3__add_vote_counting_config.sql | 23 + .../h2/V3_1_0_4__add_email_address_table.sql | 13 + .../h2/V3_1_0_6__drop_email_from_user.sql | 2 + .../h2/V3_1_0_7__add_user_can_create_poll.sql | 3 + .../h2/V3_1_0_8__add_from_and_replyTo_mail.sql | 3 + .../db/migration/h2/V3_1_0_9__add_invalid_mail.sql | 3 + .../migration/postgresql/V3_1_0_1__add_premium.sql | 8 + .../migration/postgresql/V3_1_0_2__add_avatar.sql | 3 + .../V3_1_0_3__add_vote_counting_config.sql | 23 + .../V3_1_0_4__add_email_address_table.sql | 13 + .../postgresql/V3_1_0_6__drop_email_from_user.sql | 2 + .../V3_1_0_7__add_user_can_create_poll.sql | 3 + .../V3_1_0_8__add_from_and_replyTo_mail.sql | 3 + .../postgresql/V3_1_0_9__add_invalid_mail.sql | 3 + pollen-persistence/src/main/xmi/pollen.properties | 2 +- pollen-persistence/src/main/xmi/pollen.zargo | Bin 28355 -> 30672 bytes pollen-rest-api/pom.xml | 25 +- .../pollen/rest/api/PollenRestApiApplication.java | 6 + .../rest/api/PollenRestApiApplicationContext.java | 46 +- .../rest/api/PollenRestApiApplicationListener.java | 34 +- .../rest/api/PollenRestApiRequestFilter.java | 143 +++- ...java => EmptyVoteCountingConfigSerializer.java} | 21 +- .../pollen/rest/api/converter/JacksonConfig.java | 4 + .../converter/VoteCountingConfigDeserializer.java | 128 ++++ .../PollenAbstractExceptionMapper.java | 12 - .../PollenAuthenticationExceptionMapper.java | 2 +- ... PollenDefaultEmailAddressExceptionMapper.java} | 12 +- .../PollenInvalidSessionTokenExceptionMapper.java | 2 +- .../PollenUnauthorizedExceptionMapper.java | 2 +- ....java => PollenUserUnknownExceptionMapper.java} | 10 +- .../org/chorem/pollen/rest/api/v1/ApiUtils.java | 2 +- .../org/chorem/pollen/rest/api/v1/AuthApi.java | 111 +-- .../org/chorem/pollen/rest/api/v1/CommentApi.java | 31 +- .../chorem/pollen/rest/api/v1/FavoriteListApi.java | 22 +- .../org/chorem/pollen/rest/api/v1/FeedbackApi.java | 4 +- .../java/org/chorem/pollen/rest/api/v1/GtuApi.java | 4 +- .../org/chorem/pollen/rest/api/v1/PollApi.java | 74 +- .../pollen/rest/api/v1/PollenResourceApi.java | 13 +- .../chorem/pollen/rest/api/v1/PollenUserApi.java | 130 +++- .../v1/{FeedbackApi.java => TransverseApi.java} | 30 +- .../org/chorem/pollen/rest/api/v1/VoteApi.java | 35 +- .../chorem/pollen/rest/api/v1/VoterListApi.java | 105 ++- .../src/main/resources/log4j.properties | 2 +- .../src/main/resources/pollen-rest-api.properties | 1 + .../pollen/rest/api/AbstractPollenRestApiTest.java | 6 +- .../org/chorem/pollen/rest/api/AuthApiTest.java | 8 +- .../chorem/pollen/rest/api/PollenUserApiTest.java | 34 +- pollen-services/pom.xml | 22 +- pollen-services/src/main/config/PollenServices.ini | 143 ++-- .../pollen/services/PollenApplicationContext.java | 4 +- .../org/chorem/pollen/services/PollenFixtures.java | 4 + .../chorem/pollen/services/PollenUIContext.java | 10 + .../java/org/chorem/pollen/services/UnitHuman.java | 5 +- .../services/bean/ChildFavoriteListBean.java | 23 - .../chorem/pollen/services/bean/ChoiceBean.java | 29 - .../chorem/pollen/services/bean/CommentBean.java | 54 +- .../{ReportLevel.java => ConfigurationBean.java} | 29 +- .../pollen/services/bean/FavoriteListBean.java | 20 - .../services/bean/FavoriteListMemberBean.java | 24 - .../pollen/services/bean/LoginProviderBean.java | 23 - .../org/chorem/pollen/services/bean/PollBean.java | 168 +---- .../chorem/pollen/services/bean/PollenBean.java | 4 - .../chorem/pollen/services/bean/PollenBeans.java | 49 +- .../chorem/pollen/services/bean/PollenStatus.java | 160 ++++ .../pollen/services/bean/PollenUserBean.java | 105 +-- ...tLevel.java => PollenUserEmailAddressBean.java} | 35 +- .../chorem/pollen/services/bean/ReportBean.java | 21 - .../pollen/services/bean/ResourceFileBean.java | 141 ---- .../pollen/services/bean/ResourceStreamBean.java | 123 ---- .../pollen/services/bean/UserCredentialBean.java | 21 +- .../chorem/pollen/services/bean/UsersRight.java | 13 +- .../org/chorem/pollen/services/bean/VoteBean.java | 90 +-- .../pollen/services/bean/VoteCountingTypeBean.java | 4 + .../pollen/services/bean/VoteToChoiceBean.java | 24 - .../chorem/pollen/services/bean/VoterListBean.java | 36 +- .../pollen/services/bean/VoterListMemberBean.java | 44 +- .../bean/export/ChildFavoriteListExport.java | 16 - .../AbstractResourceBean.java} | 55 +- .../services/bean/{ => resource}/GtuMetaBean.java | 2 +- .../services/bean/resource/ResourceFileBean.java | 81 ++ .../resource/ResourceMetaBean.java} | 32 +- .../services/bean/resource/ResourceStreamBean.java | 48 +- .../voteCounting/VoteCountingDetailResultBean.java | 8 + .../MajorityJudgmentChoiceResultBean.java} | 39 +- .../MajorityJudgmentDetailResultBean.java | 79 ++ .../services/config/PollenServicesConfig.java | 25 +- .../pollen/services/job/AbstractPollenJob.java | 36 +- .../CheckMailBoxJob.java} | 33 +- .../DeleteObsoleteSessionTokensJob.java} | 31 +- .../pollen/services/job/SendEmailInErrorsJob.java | 20 +- .../services/job/SendPollEndReminderJob.java | 52 +- .../pollen/services/service/ChoiceService.java | 80 +- .../pollen/services/service/CommentService.java | 89 ++- .../services/service/FavoriteListService.java | 76 +- .../pollen/services/service/FeedService.java | 8 +- .../pollen/services/service/FeedbackService.java | 7 +- .../pollen/services/service/FixturesService.java | 21 +- .../chorem/pollen/services/service/GtuService.java | 56 +- .../services/service/NotificationService.java | 69 +- .../pollen/services/service/PollService.java | 272 +++++-- .../services/service/PollenResourceService.java | 94 ++- .../services/service/PollenServiceSupport.java | 100 ++- .../pollen/services/service/PollenUserService.java | 378 +++++++--- .../pollen/services/service/ReportService.java | 67 +- .../pollen/services/service/SocialAuthService.java | 89 ++- .../pollen/services/service/TransverseService.java | 110 +++ .../services/service/VoteCountingService.java | 86 ++- .../services/service/VoteCountingTypeService.java | 2 + .../pollen/services/service/VoteService.java | 174 +++-- .../pollen/services/service/VoterListService.java | 227 +++--- .../services/service/mail/AbstractReportEmail.java | 7 + .../services/service/mail/AbstractVoteEmail.java | 8 + .../services/service/mail/ChoiceAddedEmail.java | 8 + .../services/service/mail/ChoiceDeletedEmail.java | 9 + .../services/service/mail/ChoiceEditedEmail.java | 8 + .../services/service/mail/CommentAddedEmail.java | 8 + .../services/service/mail/CommentDeletedEmail.java | 8 + .../services/service/mail/CommentEditedEmail.java | 8 + .../pollen/services/service/mail/EmailService.java | 231 +++++- ...atedEmail.java => ExceedingMaxVotersEmail.java} | 37 +- .../services/service/mail/FeedbackEmail.java | 21 +- .../services/service/mail/LostPasswordEmail.java | 11 +- .../services/service/mail/MailBoxService.java | 318 ++++++++ .../service/mail/PollChoicePeriodEndedEmail.java | 8 + .../service/mail/PollChoicePeriodStartedEmail.java | 8 + .../services/service/mail/PollClosedEmail.java | 8 + .../services/service/mail/PollCreatedEmail.java | 8 + .../service/mail/PollEndReminderEmail.java | 8 + .../services/service/mail/PollInvitationEmail.java | 34 + .../services/service/mail/PollReportEmail.java | 7 + .../service/mail/PollReportForAdminEmail.java | 8 + .../service/mail/PollVotePeriodEndedEmail.java | 8 + .../service/mail/PollVotePeriodStartedEmail.java | 8 + .../service/mail/PollVoteReminderEmail.java | 8 + .../services/service/mail/PollenEmailKeyType.java | 72 ++ .../mail/PollenInvalidEmailsException.java} | 17 +- .../pollen/services/service/mail/PollenMail.java | 17 +- .../service/mail/PollenMailReturnContext.java | 127 ++++ .../services/service/mail/PollenMailType.java | 99 +++ .../service/mail/ResendValidationEmail.java | 16 +- .../mail/RestrictedPollInvitationEmail.java | 34 + .../service/mail/UserAccountCreatedEmail.java | 24 +- .../mail/UserAccountCreatedFromProviderEmail.java | 11 +- .../service/mail/UserAccountDeletedEmail.java | 11 +- .../service/mail/UserAccountEditedEmail.java | 11 +- ...java => UserAccountEmailAddressAddedEmail.java} | 27 +- .../mail/UserAccountEmailValidatedEmail.java | 11 +- .../mail/UserAccountPasswordChangedEmail.java | 11 +- .../security/DefaultPollenSecurityContext.java | 46 +- .../services/service/security/PermissionVerb.java | 57 -- ...ava => PollenDefaultEmailAddressException.java} | 6 +- .../security/PollenEmailNotValidatedException.java | 2 + .../PollenInvalidSessionTokenException.java | 7 + .../service/security/PollenPermission.java | 12 +- .../service/security/PollenPermissions.java | 114 +++ .../service/security/PollenSecurityContext.java | 10 +- .../service/security/PollenSecurityRealm.java | 95 --- .../security/PollenUserBannedException.java | 2 + ...eption.java => PollenUserUnknownException.java} | 8 +- .../services/service/security/SecurityService.java | 818 ++++++--------------- .../test/FakePollenApplicationContext.java | 16 +- .../services/test/FakePollenServiceContext.java | 6 +- .../email/ExceedingMaxVotersEmail.mustache | 5 + .../email/ExceedingMaxVotersEmail_fr.mustache | 6 + .../main/resources/email/FeedbackEmail.mustache | 1 + .../main/resources/email/FeedbackEmail_fr.mustache | 1 + .../resources/email/ResendValidationEmail.mustache | 6 +- .../email/ResendValidationEmail_fr.mustache | 6 +- .../email/UserAccountCreatedEmail.mustache | 8 +- .../email/UserAccountCreatedEmail_fr.mustache | 8 +- .../UserAccountEmailAddressAddedEmail.mustache | 5 + .../UserAccountEmailAddressAddedEmail_fr.mustache | 5 + .../email/UserAccountEmailValidatedEmail.mustache | 4 +- .../UserAccountEmailValidatedEmail_fr.mustache | 4 +- pollen-services/src/main/resources/fixtures.yaml | 49 +- .../i18n/pollen-services_en_GB.properties | 82 +-- .../i18n/pollen-services_fr_FR.properties | 52 +- .../pollen/services/AbstractPollenServiceTest.java | 10 +- .../services/service/FavoriteListServiceTest.java | 10 +- .../pollen/services/service/PollServiceTest.java | 14 +- .../services/service/PollenUserServiceTest.java | 157 ++-- .../services/service/VoteCountingServiceTest.java | 1 + .../services/service/VoterListServiceTest.java | 6 +- pollen-ui-riot-js/package.json | 8 +- pollen-ui-riot-js/pom.xml | 2 +- pollen-ui-riot-js/src/main/web/css/custom.css | 6 +- pollen-ui-riot-js/src/main/web/css/main.css | 8 + .../web/{home/en.html => customData/home-en.html} | 10 +- .../web/{home/fr.html => customData/home-fr.html} | 10 +- .../legalNotices-en.html} | 25 +- .../legalNotices-fr.html} | 24 +- .../src/main/web/{home => customData}/lutin.png | Bin .../maxVotersAlert-creator-en.html} | 28 +- .../maxVotersAlert-creator-fr.html} | 28 +- .../maxVotersAlert-en.html} | 26 +- .../maxVotersAlert-fr.html} | 26 +- .../src/main/web/{home => customData}/style.css | 0 pollen-ui-riot-js/src/main/web/homeCL/en.html | 6 +- pollen-ui-riot-js/src/main/web/homeCL/fr.html | 6 +- pollen-ui-riot-js/src/main/web/homeCL/offers.html | 6 +- pollen-ui-riot-js/src/main/web/i18n/en.json | 84 ++- pollen-ui-riot-js/src/main/web/i18n/fr.json | 122 ++- pollen-ui-riot-js/src/main/web/index.js | 2 +- pollen-ui-riot-js/src/main/web/js/AuthService.js | 34 +- ...{FeedbackService.js => ConfigurationService.js} | 14 +- pollen-ui-riot-js/src/main/web/js/FetchService.js | 3 +- pollen-ui-riot-js/src/main/web/js/Poll.js | 13 +- pollen-ui-riot-js/src/main/web/js/PollForm.js | 20 +- pollen-ui-riot-js/src/main/web/js/PollService.js | 31 +- .../src/main/web/js/ResourceService.js | 13 +- pollen-ui-riot-js/src/main/web/js/Session.js | 80 +- pollen-ui-riot-js/src/main/web/js/UserService.js | 58 ++ pollen-ui-riot-js/src/main/web/js/VoteService.js | 2 +- .../src/main/web/js/VoterListService.js | 43 +- .../src/main/web/tag/Authorization.tag.html | 94 +++ .../tag/{Home.tag.html => ContentLoader.tag.html} | 17 +- .../src/main/web/tag/FilterLoginProvider.tag.js | 66 ++ .../{js/PollenBus.js => tag/PageChanged.tag.js} | 12 +- pollen-ui-riot-js/src/main/web/tag/Pollen.tag.html | 432 ++++++----- .../src/main/web/tag/PollenFooter.tag.html | 1 + .../src/main/web/tag/PollenHeader.tag.html | 55 +- .../src/main/web/tag/Privacy.tag.html | 4 +- .../src/main/web/tag/SignCheck.tag.html | 25 +- pollen-ui-riot-js/src/main/web/tag/SignIn.tag.html | 29 +- .../{home/style.css => tag/SignInAction.tag.js} | 27 +- pollen-ui-riot-js/src/main/web/tag/SignUp.tag.html | 6 +- .../src/main/web/tag/UserProfile.tag.html | 449 +++++++---- .../src/main/web/tag/admin/UserCard.tag.html | 41 +- .../src/main/web/tag/admin/UserEditModal.tag.html | 194 +++-- .../src/main/web/tag/admin/Users.tag.html | 6 +- .../Avatar.tag.html} | 47 +- .../src/main/web/tag/components/Card.tag.html | 8 +- ...{MultiLineLabel.tag.html => InnerHtml.tag.html} | 21 +- .../src/main/web/tag/components/LazyLoad.tag.html | 6 +- .../tag/components/UserEmailAddressList.tag.html | 159 ++++ .../main/web/tag/components/date-picker.tag.html | 13 +- .../web/tag/favoriteList/FavoriteList.tag.html | 2 +- .../favoriteList/FavoriteListEditModal.tag.html | 8 +- .../web/tag/favoriteList/ImportCsvModal.tag.html | 6 +- .../web/tag/favoriteList/ImportLdapModal.tag.html | 6 +- .../src/main/web/tag/poll/CheckEmails.tag.html | 65 ++ .../src/main/web/tag/poll/Choice.tag.html | 3 +- .../src/main/web/tag/poll/ChoiceView.tag.html | 6 +- .../src/main/web/tag/poll/Comments.tag.html | 13 +- .../src/main/web/tag/poll/Description.tag.html | 12 +- .../src/main/web/tag/poll/EditPoll.tag.html | 14 +- .../src/main/web/tag/poll/EditVote.tag.html | 445 +++++++++++ .../src/main/web/tag/poll/Poll.tag.html | 51 +- .../src/main/web/tag/poll/PollCard.tag.html | 38 +- .../src/main/web/tag/poll/Polls.tag.html | 6 +- .../src/main/web/tag/poll/Results.tag.html | 16 +- .../src/main/web/tag/poll/Settings.tag.html | 63 +- .../src/main/web/tag/poll/Summary.tag.html | 67 +- .../src/main/web/tag/poll/Votes.tag.html | 668 +---------------- .../src/main/web/tag/poll/VotesTable.tag.html | 366 +++++++++ .../src/main/web/tag/popup/ConfirmPopup.tag.html | 23 +- .../main/web/tag/popup/InformationPopup.tag.html | 2 +- .../src/main/web/tag/popup/Modal.tag.html | 2 +- .../web/tag/voteCountingType/BordaConfig.tag.html | 136 ++++ .../voteCountingType/BordaDetailResult.tag.html | 12 +- .../CumulativeConfig.tag.html} | 51 +- .../MajorityJudgmentConfig.tag.html | 104 +++ .../MajorityJudgmentDetailResult.tag.html | 222 ++++++ .../MaxChoicesNumberConfig.tag.html | 80 ++ .../src/main/web/tag/voterList/VoterList.tag.html | 56 +- .../web/tag/voterList/VoterListMemberCard.tag.html | 8 +- pollen-ui-riot-js/webpack.config.js | 2 +- pollen-votecounting-aggregator/pom.xml | 12 +- pollen-votecounting-api/pom.xml | 2 +- .../pollen/votecounting/AbstractVoteCounting.java | 14 +- .../votecounting/AbstractVoteCountingStrategy.java | 10 +- .../chorem/pollen/votecounting/VoteCounting.java | 14 +- .../pollen/votecounting/VoteCountingFactory.java | 3 +- .../pollen/votecounting/VoteCountingStrategy.java | 5 +- .../votecounting/model/ChoiceToVoteRenderType.java | 5 +- ...ailResult.java => EmptyVoteCountingConfig.java} | 4 +- ...tailResult.java => MaxChoicesNumberConfig.java} | 14 +- ...ngDetailResult.java => VoteCountingConfig.java} | 4 +- pollen-votecounting-borda/pom.xml | 7 +- .../chorem/pollen/votecounting/BordaConfig.java | 20 +- .../pollen/votecounting/BordaVoteCounting.java | 7 +- .../votecounting/BordaVoteCountingStrategy.java | 38 +- .../pollen-votecounting-borda_fr_FR.properties | 2 +- .../BordaVoteCountingStrategyTest.java | 8 +- pollen-votecounting-condorcet/pom.xml | 2 +- .../pollen/votecounting/CondorcetVoteCounting.java | 8 +- .../CondorcetVoteCountingStrategy.java | 3 +- .../pollen-votecounting-condorcet_fr_FR.properties | 2 +- .../CondorcetVoteCountingStrategyTest.java | 8 +- pollen-votecounting-coombs/pom.xml | 2 +- .../pollen/votecounting/CoombsVoteCounting.java | 8 +- .../votecounting/CoombsVoteCountingStrategy.java | 3 +- .../pollen-votecounting-coombs_en_GB.properties | 2 +- .../pollen-votecounting-coombs_fr_FR.properties | 2 +- .../CoombsVoteCountingStrategyTest.java | 8 +- .../LICENSE.txt | 0 .../README.md | 0 .../pom.xml | 8 +- .../pollen/votecounting/CumulativeConfig.java | 18 +- .../votecounting/CumulativeVoteCounting.java | 21 +- .../CumulativeVoteCountingStrategy.java | 2 +- .../org.chorem.pollen.votecounting.VoteCounting | 1 + ...pollen-votecounting-cumulative_en_GB.properties | 4 + ...pollen-votecounting-cumulative_fr_FR.properties | 4 + .../CumulativeVoteCountingStrategyTest.java | 14 +- .../votecounting/VoteCountingFactoryTest.java | 2 +- .../src/test/resources/log4j.properties | 0 pollen-votecounting-instant-runoff/pom.xml | 2 +- .../votecounting/InstantRunoffVoteCounting.java | 16 +- .../InstantRunoffVoteCountingStrategy.java | 3 +- .../InstantRunoffVoteCountingStrategyTest.java | 8 +- .../LICENSE.txt | 0 .../README.md | 0 .../pom.xml | 8 +- .../votecounting/MajorityJudgmentChoiceResult.java | 32 +- .../votecounting/MajorityJudgmentConfig.java | 20 +- .../votecounting/MajorityJudgmentDetailResult.java | 39 +- .../votecounting/MajorityJudgmentVoteCounting.java | 34 +- .../MajorityJudgmentVoteCountingStrategy.java | 264 +++++++ .../org.chorem.pollen.votecounting.VoteCounting | 1 + ...votecounting-majority-judgment_en_GB.properties | 4 + ...votecounting-majority-judgment_fr_FR.properties | 4 + .../MajorityJudgmentVoteCountingStrategyTest.java | 341 +++++++++ .../votecounting/VoteCountingFactoryTest.java | 7 +- .../src/test/resources/log4j.properties | 0 pollen-votecounting-normal/pom.xml | 2 +- .../pollen/votecounting/NormalVoteCounting.java | 16 +- .../votecounting/NormalVoteCountingStrategy.java | 3 +- .../NormalVoteCountingStrategyTest.java | 8 +- pollen-votecounting-number/pom.xml | 2 +- .../pollen/votecounting/NumberVoteCounting.java | 16 +- .../votecounting/NumberVoteCountingStrategy.java | 9 +- .../NumberVoteCountingStrategyTest.java | 9 +- .../org.chorem.pollen.votecounting.VoteCounting | 1 - ...pollen-votecounting-percentage_en_GB.properties | 4 - ...pollen-votecounting-percentage_fr_FR.properties | 4 - pom.xml | 23 +- 362 files changed, 9890 insertions(+), 5305 deletions(-) copy {pollen-ui-riot-js/src/main/web/img => docs/assets/images}/logo.png (100%) create mode 100644 docs/config.md create mode 100644 docs/electionMethods.md copy src/site/fr/rst/index.rst => docs/index.md (55%) create mode 100644 docs/install.md create mode 100644 docs/socialauth.md create mode 100644 mkdocs.yml create mode 100644 pollen-persistence/src/main/java/db/migration/common/V3_1_0_5__Extract_email_addresses.java copy pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/{VoterListMemberTopiaDao.java => PollenUserEmailAddressTopiaDao.java} (53%) delete mode 100644 pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollenUsers.java create mode 100644 pollen-persistence/src/main/resources/db/migration/h2/V3_1_0_1__add_premium.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/h2/V3_1_0_2__add_avatar.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/h2/V3_1_0_3__add_vote_counting_config.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/h2/V3_1_0_4__add_email_address_table.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/h2/V3_1_0_6__drop_email_from_user.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/h2/V3_1_0_7__add_user_can_create_poll.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/h2/V3_1_0_8__add_from_and_replyTo_mail.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/h2/V3_1_0_9__add_invalid_mail.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/postgresql/V3_1_0_1__add_premium.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/postgresql/V3_1_0_2__add_avatar.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/postgresql/V3_1_0_3__add_vote_counting_config.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/postgresql/V3_1_0_4__add_email_address_table.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/postgresql/V3_1_0_6__drop_email_from_user.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/postgresql/V3_1_0_7__add_user_can_create_poll.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/postgresql/V3_1_0_8__add_from_and_replyTo_mail.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/postgresql/V3_1_0_9__add_invalid_mail.sql copy pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/converter/{PollenEntityIdSerializer.java => EmptyVoteCountingConfigSerializer.java} (60%) create mode 100644 pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/converter/VoteCountingConfigDeserializer.java copy pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/exceptionMappers/{PollenUserBannedExceptionMapper.java => PollenDefaultEmailAddressExceptionMapper.java} (68%) copy pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/exceptionMappers/{PollenUserBannedExceptionMapper.java => PollenUserUnknownExceptionMapper.java} (74%) copy pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/{FeedbackApi.java => TransverseApi.java} (65%) copy pollen-services/src/main/java/org/chorem/pollen/services/bean/{ReportLevel.java => ConfigurationBean.java} (61%) create mode 100644 pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenStatus.java copy pollen-services/src/main/java/org/chorem/pollen/services/bean/{ReportLevel.java => PollenUserEmailAddressBean.java} (55%) delete mode 100644 pollen-services/src/main/java/org/chorem/pollen/services/bean/ResourceFileBean.java delete mode 100644 pollen-services/src/main/java/org/chorem/pollen/services/bean/ResourceStreamBean.java copy pollen-votecounting-api/src/main/java/org/chorem/pollen/votecounting/model/VoteCountingDetailResult.java => pollen-services/src/main/java/org/chorem/pollen/services/bean/UsersRight.java (82%) rename pollen-services/src/main/java/org/chorem/pollen/services/bean/{ResourceMetaBean.java => resource/AbstractResourceBean.java} (56%) copy pollen-services/src/main/java/org/chorem/pollen/services/bean/{ => resource}/GtuMetaBean.java (95%) create mode 100644 pollen-services/src/main/java/org/chorem/pollen/services/bean/resource/ResourceFileBean.java copy pollen-services/src/main/java/org/chorem/pollen/services/{service/InvalidFormException.java => bean/resource/ResourceMetaBean.java} (58%) copy pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/DocApi.java => pollen-services/src/main/java/org/chorem/pollen/services/bean/resource/ResourceStreamBean.java (54%) copy pollen-services/src/main/java/org/chorem/pollen/services/bean/voteCounting/{Coombs/CoombsRoundChoiceBean.java => majorityJugment/MajorityJudgmentChoiceResultBean.java} (59%) create mode 100644 pollen-services/src/main/java/org/chorem/pollen/services/bean/voteCounting/majorityJugment/MajorityJudgmentDetailResultBean.java copy pollen-services/src/main/java/org/chorem/pollen/services/{service/mail/CommentReportEmail.java => job/CheckMailBoxJob.java} (53%) copy pollen-services/src/main/java/org/chorem/pollen/services/{service/mail/PollReportEmail.java => job/DeleteObsoleteSessionTokensJob.java} (52%) create mode 100644 pollen-services/src/main/java/org/chorem/pollen/services/service/TransverseService.java copy pollen-services/src/main/java/org/chorem/pollen/services/service/mail/{PollCreatedEmail.java => ExceedingMaxVotersEmail.java} (62%) create mode 100644 pollen-services/src/main/java/org/chorem/pollen/services/service/mail/MailBoxService.java create mode 100644 pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollenEmailKeyType.java copy pollen-services/src/main/java/org/chorem/pollen/services/{bean/GtuMetaBean.java => service/mail/PollenInvalidEmailsException.java} (71%) create mode 100644 pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollenMailReturnContext.java create mode 100644 pollen-services/src/main/java/org/chorem/pollen/services/service/mail/PollenMailType.java copy pollen-services/src/main/java/org/chorem/pollen/services/service/mail/{ResendValidationEmail.java => UserAccountEmailAddressAddedEmail.java} (69%) delete mode 100644 pollen-services/src/main/java/org/chorem/pollen/services/service/security/PermissionVerb.java copy pollen-services/src/main/java/org/chorem/pollen/services/service/security/{PollenEmailNotValidatedException.java => PollenDefaultEmailAddressException.java} (86%) copy pollen-votecounting-api/src/main/java/org/chorem/pollen/votecounting/model/VoteCountingDetailResult.java => pollen-services/src/main/java/org/chorem/pollen/services/service/security/PollenPermission.java (82%) create mode 100644 pollen-services/src/main/java/org/chorem/pollen/services/service/security/PollenPermissions.java delete mode 100644 pollen-services/src/main/java/org/chorem/pollen/services/service/security/PollenSecurityRealm.java copy pollen-services/src/main/java/org/chorem/pollen/services/service/security/{PollenUserBannedException.java => PollenUserUnknownException.java} (82%) create mode 100644 pollen-services/src/main/resources/email/ExceedingMaxVotersEmail.mustache create mode 100644 pollen-services/src/main/resources/email/ExceedingMaxVotersEmail_fr.mustache create mode 100644 pollen-services/src/main/resources/email/UserAccountEmailAddressAddedEmail.mustache create mode 100644 pollen-services/src/main/resources/email/UserAccountEmailAddressAddedEmail_fr.mustache rename pollen-ui-riot-js/src/main/web/{home/en.html => customData/home-en.html} (88%) rename pollen-ui-riot-js/src/main/web/{home/fr.html => customData/home-fr.html} (87%) copy pollen-ui-riot-js/src/main/web/{tag/components/MultiLineLabel.tag.html => customData/legalNotices-en.html} (64%) copy pollen-ui-riot-js/src/main/web/{tag/components/MultiLineLabel.tag.html => customData/legalNotices-fr.html} (61%) rename pollen-ui-riot-js/src/main/web/{home => customData}/lutin.png (100%) copy pollen-ui-riot-js/src/main/web/{tag/components/MultiLineLabel.tag.html => customData/maxVotersAlert-creator-en.html} (61%) copy pollen-ui-riot-js/src/main/web/{tag/components/MultiLineLabel.tag.html => customData/maxVotersAlert-creator-fr.html} (59%) copy pollen-ui-riot-js/src/main/web/{tag/components/MultiLineLabel.tag.html => customData/maxVotersAlert-en.html} (65%) copy pollen-ui-riot-js/src/main/web/{tag/components/MultiLineLabel.tag.html => customData/maxVotersAlert-fr.html} (64%) copy pollen-ui-riot-js/src/main/web/{home => customData}/style.css (100%) copy pollen-ui-riot-js/src/main/web/js/{FeedbackService.js => ConfigurationService.js} (75%) create mode 100644 pollen-ui-riot-js/src/main/web/tag/Authorization.tag.html rename pollen-ui-riot-js/src/main/web/tag/{Home.tag.html => ContentLoader.tag.html} (80%) create mode 100644 pollen-ui-riot-js/src/main/web/tag/FilterLoginProvider.tag.js copy pollen-ui-riot-js/src/main/web/{js/PollenBus.js => tag/PageChanged.tag.js} (82%) rename pollen-ui-riot-js/src/main/web/{home/style.css => tag/SignInAction.tag.js} (64%) copy pollen-ui-riot-js/src/main/web/tag/{PollenWaiter.tag.html => components/Avatar.tag.html} (53%) copy pollen-ui-riot-js/src/main/web/tag/components/{MultiLineLabel.tag.html => InnerHtml.tag.html} (69%) create mode 100644 pollen-ui-riot-js/src/main/web/tag/components/UserEmailAddressList.tag.html create mode 100644 pollen-ui-riot-js/src/main/web/tag/poll/CheckEmails.tag.html create mode 100644 pollen-ui-riot-js/src/main/web/tag/poll/EditVote.tag.html create mode 100644 pollen-ui-riot-js/src/main/web/tag/poll/VotesTable.tag.html create mode 100644 pollen-ui-riot-js/src/main/web/tag/voteCountingType/BordaConfig.tag.html copy pollen-ui-riot-js/src/main/web/tag/{Privacy.tag.html => voteCountingType/CumulativeConfig.tag.html} (50%) create mode 100644 pollen-ui-riot-js/src/main/web/tag/voteCountingType/MajorityJudgmentConfig.tag.html create mode 100644 pollen-ui-riot-js/src/main/web/tag/voteCountingType/MajorityJudgmentDetailResult.tag.html create mode 100644 pollen-ui-riot-js/src/main/web/tag/voteCountingType/MaxChoicesNumberConfig.tag.html copy pollen-votecounting-api/src/main/java/org/chorem/pollen/votecounting/model/{VoteCountingDetailResult.java => EmptyVoteCountingConfig.java} (90%) copy pollen-votecounting-api/src/main/java/org/chorem/pollen/votecounting/model/{VoteCountingDetailResult.java => MaxChoicesNumberConfig.java} (75%) copy pollen-votecounting-api/src/main/java/org/chorem/pollen/votecounting/model/{VoteCountingDetailResult.java => VoteCountingConfig.java} (90%) copy pollen-services/src/main/java/org/chorem/pollen/services/bean/GtuMetaBean.java => pollen-votecounting-borda/src/main/java/org/chorem/pollen/votecounting/BordaConfig.java (64%) rename {pollen-votecounting-percentage => pollen-votecounting-cumulative}/LICENSE.txt (100%) rename {pollen-votecounting-percentage => pollen-votecounting-cumulative}/README.md (100%) rename {pollen-votecounting-percentage => pollen-votecounting-cumulative}/pom.xml (92%) copy pollen-services/src/main/java/org/chorem/pollen/services/bean/GtuMetaBean.java => pollen-votecounting-cumulative/src/main/java/org/chorem/pollen/votecounting/CumulativeConfig.java (69%) rename pollen-votecounting-percentage/src/main/java/org/chorem/pollen/votecounting/PercentageVoteCounting.java => pollen-votecounting-cumulative/src/main/java/org/chorem/pollen/votecounting/CumulativeVoteCounting.java (77%) rename pollen-votecounting-percentage/src/main/java/org/chorem/pollen/votecounting/PercentageVoteCountingStrategy.java => pollen-votecounting-cumulative/src/main/java/org/chorem/pollen/votecounting/CumulativeVoteCountingStrategy.java (97%) create mode 100644 pollen-votecounting-cumulative/src/main/resources/META-INF/services/org.chorem.pollen.votecounting.VoteCounting create mode 100644 pollen-votecounting-cumulative/src/main/resources/i18n/pollen-votecounting-cumulative_en_GB.properties create mode 100644 pollen-votecounting-cumulative/src/main/resources/i18n/pollen-votecounting-cumulative_fr_FR.properties rename pollen-votecounting-percentage/src/test/java/org/chorem/pollen/votecounting/PercentageVoteCountingStrategyTest.java => pollen-votecounting-cumulative/src/test/java/org/chorem/pollen/votecounting/CumulativeVoteCountingStrategyTest.java (97%) rename {pollen-votecounting-percentage => pollen-votecounting-cumulative}/src/test/java/org/chorem/pollen/votecounting/VoteCountingFactoryTest.java (95%) rename {pollen-votecounting-percentage => pollen-votecounting-cumulative}/src/test/resources/log4j.properties (100%) copy LICENSE.txt => pollen-votecounting-majority-judgment/LICENSE.txt (100%) copy {pollen-services => pollen-votecounting-majority-judgment}/README.md (100%) copy {pollen-votecounting-normal => pollen-votecounting-majority-judgment}/pom.xml (91%) copy pollen-votecounting-instant-runoff/src/main/java/org/chorem/pollen/votecounting/InstantRunoffRoundChoice.java => pollen-votecounting-majority-judgment/src/main/java/org/chorem/pollen/votecounting/MajorityJudgmentChoiceResult.java (63%) rename pollen-services/src/main/java/org/chorem/pollen/services/bean/GtuMetaBean.java => pollen-votecounting-majority-judgment/src/main/java/org/chorem/pollen/votecounting/MajorityJudgmentConfig.java (66%) copy pollen-votecounting-instant-runoff/src/main/java/org/chorem/pollen/votecounting/InstantRunoffDetailResult.java => pollen-votecounting-majority-judgment/src/main/java/org/chorem/pollen/votecounting/MajorityJudgmentDetailResult.java (52%) copy pollen-votecounting-instant-runoff/src/main/java/org/chorem/pollen/votecounting/InstantRunoffVoteCounting.java => pollen-votecounting-majority-judgment/src/main/java/org/chorem/pollen/votecounting/MajorityJudgmentVoteCounting.java (70%) create mode 100644 pollen-votecounting-majority-judgment/src/main/java/org/chorem/pollen/votecounting/MajorityJudgmentVoteCountingStrategy.java create mode 100644 pollen-votecounting-majority-judgment/src/main/resources/META-INF/services/org.chorem.pollen.votecounting.VoteCounting create mode 100644 pollen-votecounting-majority-judgment/src/main/resources/i18n/pollen-votecounting-majority-judgment_en_GB.properties create mode 100644 pollen-votecounting-majority-judgment/src/main/resources/i18n/pollen-votecounting-majority-judgment_fr_FR.properties create mode 100644 pollen-votecounting-majority-judgment/src/test/java/org/chorem/pollen/votecounting/MajorityJudgmentVoteCountingStrategyTest.java copy {pollen-votecounting-instant-runoff => pollen-votecounting-majority-judgment}/src/test/java/org/chorem/pollen/votecounting/VoteCountingFactoryTest.java (86%) copy {pollen-votecounting-instant-runoff => pollen-votecounting-majority-judgment}/src/test/resources/log4j.properties (100%) delete mode 100644 pollen-votecounting-percentage/src/main/resources/META-INF/services/org.chorem.pollen.votecounting.VoteCounting delete mode 100644 pollen-votecounting-percentage/src/main/resources/i18n/pollen-votecounting-percentage_en_GB.properties delete mode 100644 pollen-votecounting-percentage/src/main/resources/i18n/pollen-votecounting-percentage_fr_FR.properties -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.