From 5b1eddb70881d4dfd7a67c50b5b22e315927bf24 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Benoi=CC=82t=20Pin?= <benoit.pin@gmail.com>
Date: Wed, 3 Sep 2014 22:25:26 +0200
Subject: [PATCH 1/1] Introduction du mode d'inscription anonyme avec mot de
 passe.

---
 RegistrationTool.py               |   9 ++--
 locales/en/LC_MESSAGES/plinn.mo   | Bin 2348 -> 2348 bytes
 locales/en/LC_MESSAGES/plinn.po   |  72 +++++++++++++++------------
 locales/fr/LC_MESSAGES/plinn.mo   | Bin 42418 -> 42549 bytes
 locales/fr/LC_MESSAGES/plinn.po   |  78 +++++++++++++++++-------------
 locales/plinn-manual.pot          |  21 --------
 locales/plinn.pot                 |  71 ++++++++++++++++-----------
 www/configureRegistrationTool.zpt |  34 +++++++++++--
 8 files changed, 164 insertions(+), 121 deletions(-)

diff --git a/RegistrationTool.py b/RegistrationTool.py
index e8262f9..61505d7 100644
--- a/RegistrationTool.py
+++ b/RegistrationTool.py
@@ -49,13 +49,16 @@ security = ModuleSecurityInfo('Products.Plinn.RegistrationTool')
 MODE_ANONYMOUS = 'anonymous'
 security.declarePublic('MODE_ANONYMOUS')
 
+MODE_PASS_ANONYMOUS = 'pass_anonymous'
+security.declarePublic('MODE_PASS_ANONYMOUS')
+
 MODE_MANAGER = 'manager'
 security.declarePublic('MODE_MANAGER')
 
 MODE_REVIEWED = 'reviewed'
 security.declarePublic('MODE_REVIEWED')
 
-MODES = [MODE_ANONYMOUS, MODE_MANAGER, MODE_REVIEWED]
+MODES = [MODE_ANONYMOUS, MODE_PASS_ANONYMOUS, MODE_MANAGER, MODE_REVIEWED]
 security.declarePublic('MODES')
 
 DEFAULT_MEMBER_GROUP = 'members'
@@ -126,7 +129,7 @@ class RegistrationTool(BaseRegistrationTool) :
         urlTool = getToolByName(self, 'portal_url')
         portal = urlTool.getPortalObject()
     
-        if mode in [MODE_ANONYMOUS, MODE_REVIEWED] :
+        if mode in [MODE_ANONYMOUS, MODE_PASS_ANONYMOUS, MODE_REVIEWED] :
             portal.manage_permission(AddPortalMember, roles = ['Anonymous', 'Manager'], acquire=1)
         elif mode == MODE_MANAGER :
             portal.manage_permission(AddPortalMember, roles = ['Manager', 'UserManager'], acquire=0)
@@ -153,7 +156,7 @@ class RegistrationTool(BaseRegistrationTool) :
             p=Permission(AddPortalMember, [], portal)
             return p.getRoles()
         
-        if mode in [MODE_ANONYMOUS, MODE_REVIEWED] :
+        if mode in [MODE_ANONYMOUS, MODE_PASS_ANONYMOUS, MODE_REVIEWED] :
             if 'Anonymous' in rolesOfAddPortalMemberPerm() : return False
             
         elif mode == MODE_MANAGER :
diff --git a/locales/en/LC_MESSAGES/plinn.mo b/locales/en/LC_MESSAGES/plinn.mo
index a3b9f893eae4d3ea81b4401789d5ddf720de58cc..7109dabb28eb587aef2cd5d3ac0a01d51693b04a 100644
GIT binary patch
delta 32
ncmZ1@v_@!yGn;UDYKlT|YJq}+v4WA2m7%4TvB~BzwrflPoI(i{

delta 32
ncmZ1@v_@!yGn=q)ex8C?X^w)Cp@N~Am9e3fk@@B@wrflPo<s>S

diff --git a/locales/en/LC_MESSAGES/plinn.po b/locales/en/LC_MESSAGES/plinn.po
index a3d5262..7b277e8 100644
--- a/locales/en/LC_MESSAGES/plinn.po
+++ b/locales/en/LC_MESSAGES/plinn.po
@@ -1,7 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Plinn 2.0\n"
-"POT-Creation-Date: Mon Sep  1 20:46:10 2014\n"
+"POT-Creation-Date: Wed Sep  3 22:19:34 2014\n"
 "PO-Revision-Date: 2013-11-28 13:12+0100\n"
 "Last-Translator:  Benoît PIN\n"
 "Language-Team: CRI http://cri.ensmp.fr\n"
@@ -24,27 +24,27 @@ msgstr ""
 msgid "Please rename each listed object."
 msgstr ""
 
-#: n/RegistrationTool.py:228
+#: n/RegistrationTool.py:231
 msgid "How to reset your password on the %s website"
 msgstr ""
 
-#: n/RegistrationTool.py:243
+#: n/RegistrationTool.py:246
 msgid "Unknown user name. Please retry."
 msgstr ""
 
-#: n/RegistrationTool.py:258
+#: n/RegistrationTool.py:261
 msgid "Invalid reset password request."
 msgstr ""
 
-#: n/RegistrationTool.py:264
+#: n/RegistrationTool.py:267
 msgid "Your reset password request has expired. You can ask a new one."
 msgstr ""
 
-#: n/RegistrationTool.py:273
+#: n/RegistrationTool.py:276
 msgid "Password successfully updated."
 msgstr ""
 
-#: n/RegistrationTool.py:275
+#: n/RegistrationTool.py:278
 msgid "\"%s\" username not found."
 msgstr ""
 
@@ -471,7 +471,8 @@ msgstr ""
 #: n/skins/custom_generic/logged_in.py:50
 #: n/skins/photo_theme/homepage_dispatcher.py:14
 #: n/skins/photo_theme/homepage_dispatcher.py:17
-#: n/skins/photo_theme/homepage_dispatcher.py:20
+#: n/skins/photo_theme/homepage_dispatcher.py:25
+#: n/skins/photo_theme/homepage_dispatcher.py:28
 msgid "Login success"
 msgstr ""
 
@@ -671,7 +672,7 @@ msgstr ""
 #: n/skins/custom_generic/talkback_tree.pt:82
 #: n/skins/generic/gruf_macros.pt:77 n/skins/generic/gruf_macros.pt:410
 #: n/skins/generic/header_widgets.pt:32 n/skins/generic/header_widgets.pt:173
-#: n/skins/generic/send_email_form.pt:79
+#: n/skins/generic/send_email_form.pt:79 n/www/configureRegistrationTool.pt:43
 msgid "Validate"
 msgstr ""
 
@@ -1414,6 +1415,38 @@ msgstr ""
 msgid "(No description)"
 msgstr ""
 
+#: n/www/configureRegistrationTool.pt:4
+msgid "Configure ${portal_calendar} Tool"
+msgstr ""
+
+#: n/www/configureRegistrationTool.pt:6
+msgid "Select registration mode"
+msgstr ""
+
+#: n/www/configureRegistrationTool.pt:11
+msgid "Anonymous registration"
+msgstr ""
+
+#: n/www/configureRegistrationTool.pt:17
+msgid "Anonymous registration with password"
+msgstr ""
+
+#: n/www/configureRegistrationTool.pt:23
+msgid "Portal manager registration"
+msgstr ""
+
+#: n/www/configureRegistrationTool.pt:30
+msgid "Reviewed registration"
+msgstr ""
+
+#: n/www/configureRegistrationTool.pt:34
+msgid "Workflow chain"
+msgstr ""
+
+#: n/www/configureRegistrationTool.pt:39
+msgid "Role mapping mismatch : click Validate to solve this problem !"
+msgstr ""
+
 #: n/www/manage_solr.pt:4
 msgid "Configure Solr delegated indexes"
 msgstr ""
@@ -1477,9 +1510,6 @@ msgstr ""
 msgid "Advanced search"
 msgstr ""
 
-msgid "Anonymous registration"
-msgstr ""
-
 msgid "Appointment"
 msgstr ""
 
@@ -1603,9 +1633,6 @@ msgstr ""
 msgid "Comment"
 msgstr ""
 
-msgid "Configure ${portal_calendar} Tool"
-msgstr ""
-
 msgid "Container block"
 msgstr ""
 
@@ -1975,9 +2002,6 @@ msgstr ""
 msgid "Play"
 msgstr ""
 
-msgid "Portal manager registration"
-msgstr ""
-
 msgid "Portal Role"
 msgstr ""
 
@@ -2017,18 +2041,12 @@ msgstr ""
 msgid "retract_to_shared"
 msgstr ""
 
-msgid "Reviewed registration"
-msgstr ""
-
 msgid "Reviewer"
 msgstr ""
 
 msgid "Role(s)"
 msgstr ""
 
-msgid "Role mapping mismatch : click Validate to solve this problem !"
-msgstr ""
-
 msgid "Roles to assign:"
 msgstr ""
 
@@ -2065,9 +2083,6 @@ msgstr ""
 msgid "Select Member(s) and a role(s) to assign:"
 msgstr ""
 
-msgid "Select registration mode"
-msgstr ""
-
 msgid "September"
 msgstr ""
 
@@ -2203,9 +2218,6 @@ msgstr ""
 msgid "Work"
 msgstr ""
 
-msgid "Workflow chain"
-msgstr ""
-
 msgid "You are not allowed to delete: "
 msgstr ""
 
diff --git a/locales/fr/LC_MESSAGES/plinn.mo b/locales/fr/LC_MESSAGES/plinn.mo
index 0819851d5542cea3e1e56f4c6449313daa77c1eb..0361d366b4a5ad1dff699cbf190ba0c3ec493966 100644
GIT binary patch
delta 13291
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

delta 13162
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
OHt<^D_T3|<ru-iyLJtQ3

diff --git a/locales/fr/LC_MESSAGES/plinn.po b/locales/fr/LC_MESSAGES/plinn.po
index 57d9248..4d6fb46 100755
--- a/locales/fr/LC_MESSAGES/plinn.po
+++ b/locales/fr/LC_MESSAGES/plinn.po
@@ -1,8 +1,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Plinn 2.0\n"
-"POT-Creation-Date: Mon Sep  1 20:46:10 2014\n"
-"PO-Revision-Date: 2014-07-21 16:33+0200\n"
+"POT-Creation-Date: Wed Sep  3 22:19:34 2014\n"
+"PO-Revision-Date: 2014-09-03 22:22+0200\n"
 "Last-Translator:  Benoît PIN\n"
 "Language-Team: CRI http://cri.ensmp.fr\n"
 "Language: \n"
@@ -24,29 +24,29 @@ msgstr "Objet supprimé"
 msgid "Please rename each listed object."
 msgstr "Veuillez renommer tous les éléments listés."
 
-#: n/RegistrationTool.py:228
+#: n/RegistrationTool.py:231
 msgid "How to reset your password on the %s website"
 msgstr "Comment réinitialiser votre mot de passe sur le site %s"
 
-#: n/RegistrationTool.py:243
+#: n/RegistrationTool.py:246
 msgid "Unknown user name. Please retry."
 msgstr "Nom d'utilisateur inconnu. Veuillez réessayer."
 
-#: n/RegistrationTool.py:258
+#: n/RegistrationTool.py:261
 msgid "Invalid reset password request."
 msgstr "Demande de réinitialisation de mot de passe invalide."
 
-#: n/RegistrationTool.py:264
+#: n/RegistrationTool.py:267
 msgid "Your reset password request has expired. You can ask a new one."
 msgstr ""
 "Votre demande de réinitialisation de mot de passe a expiré. Vous pouvez en "
 "demander une nouvelle."
 
-#: n/RegistrationTool.py:273
+#: n/RegistrationTool.py:276
 msgid "Password successfully updated."
 msgstr "Mot de passe correctement mis à jour."
 
-#: n/RegistrationTool.py:275
+#: n/RegistrationTool.py:278
 msgid "\"%s\" username not found."
 msgstr "Nom : « %s » non trouvé."
 
@@ -481,7 +481,8 @@ msgstr "Échec de la connexion"
 #: n/skins/custom_generic/logged_in.py:50
 #: n/skins/photo_theme/homepage_dispatcher.py:14
 #: n/skins/photo_theme/homepage_dispatcher.py:17
-#: n/skins/photo_theme/homepage_dispatcher.py:20
+#: n/skins/photo_theme/homepage_dispatcher.py:25
+#: n/skins/photo_theme/homepage_dispatcher.py:28
 msgid "Login success"
 msgstr "Connexion réussie"
 
@@ -705,7 +706,7 @@ msgstr "Corps"
 #: n/skins/custom_generic/talkback_tree.pt:82
 #: n/skins/generic/gruf_macros.pt:77 n/skins/generic/gruf_macros.pt:410
 #: n/skins/generic/header_widgets.pt:32 n/skins/generic/header_widgets.pt:173
-#: n/skins/generic/send_email_form.pt:79
+#: n/skins/generic/send_email_form.pt:79 n/www/configureRegistrationTool.pt:43
 msgid "Validate"
 msgstr "Valider"
 
@@ -1483,6 +1484,40 @@ msgstr "(Sans titre)"
 msgid "(No description)"
 msgstr "(Sans description)"
 
+#: n/www/configureRegistrationTool.pt:4
+msgid "Configure ${portal_calendar} Tool"
+msgstr "Configurer l'outil ${portal_calendar}"
+
+#: n/www/configureRegistrationTool.pt:6
+msgid "Select registration mode"
+msgstr "Sélectionner le mode d'inscription"
+
+#: n/www/configureRegistrationTool.pt:11
+msgid "Anonymous registration"
+msgstr "Inscription anonyme"
+
+#: n/www/configureRegistrationTool.pt:17
+msgid "Anonymous registration with password"
+msgstr "Inscription anonyme avec mot de passe"
+
+#: n/www/configureRegistrationTool.pt:23
+msgid "Portal manager registration"
+msgstr "Inscription par l'administrateur"
+
+#: n/www/configureRegistrationTool.pt:30
+msgid "Reviewed registration"
+msgstr "Inscription modérée"
+
+#: n/www/configureRegistrationTool.pt:34
+msgid "Workflow chain"
+msgstr "Séquence de workflow"
+
+#: n/www/configureRegistrationTool.pt:39
+msgid "Role mapping mismatch : click Validate to solve this problem !"
+msgstr ""
+"Paramétrage des rôles non concordant, cliquer sur Valider pour résoudre le "
+"problème !"
+
 #: n/www/manage_solr.pt:4
 msgid "Configure Solr delegated indexes"
 msgstr "Configurer les index délégués à Solr"
@@ -1545,9 +1580,6 @@ msgstr "Ajouter un nœud"
 msgid "Advanced search"
 msgstr "Recherche avancée"
 
-msgid "Anonymous registration"
-msgstr "Inscription anonyme"
-
 msgid "Appointment"
 msgstr "Rendez-vous"
 
@@ -1671,9 +1703,6 @@ msgstr "Condenser"
 msgid "Comment"
 msgstr "Commenter"
 
-msgid "Configure ${portal_calendar} Tool"
-msgstr "Configurer l'outil ${portal_calendar}"
-
 msgid "Container block"
 msgstr "Conteneur"
 
@@ -2048,9 +2077,6 @@ msgstr "personnes sélectionnées"
 msgid "Play"
 msgstr "Lecture"
 
-msgid "Portal manager registration"
-msgstr "Inscription par l'administrateur"
-
 msgid "Portal Role"
 msgstr "Rôle du portail"
 
@@ -2090,20 +2116,12 @@ msgstr "retirer"
 msgid "retract_to_shared"
 msgstr "retirer"
 
-msgid "Reviewed registration"
-msgstr "Inscription modérée"
-
 msgid "Reviewer"
 msgstr "Modérateur"
 
 msgid "Role(s)"
 msgstr "Rôle(s)"
 
-msgid "Role mapping mismatch : click Validate to solve this problem !"
-msgstr ""
-"Paramétrage des rôles non concordant, cliquer sur Valider pour résoudre le "
-"problème !"
-
 msgid "Roles to assign:"
 msgstr "Rôles à assigner"
 
@@ -2140,9 +2158,6 @@ msgstr "Sélectionner le type de dossier à construire :"
 msgid "Select Member(s) and a role(s) to assign:"
 msgstr "Sélectionner le(s) membre(s) et le(s) rôle(s) à assigner :"
 
-msgid "Select registration mode"
-msgstr "Sélectionner le mode d'inscription"
-
 msgid "September"
 msgstr "Septembre"
 
@@ -2280,9 +2295,6 @@ msgstr "larg. / haut. :"
 msgid "Work"
 msgstr "Travail"
 
-msgid "Workflow chain"
-msgstr "Séquence de workflow"
-
 msgid "You are not allowed to delete: "
 msgstr "Vous n'êtes pas autorisé à supprimer : "
 
diff --git a/locales/plinn-manual.pot b/locales/plinn-manual.pot
index 8a37572..5288900 100644
--- a/locales/plinn-manual.pot
+++ b/locales/plinn-manual.pot
@@ -54,9 +54,6 @@ msgstr ""
 msgid "Advanced search"
 msgstr ""
 
-msgid "Anonymous registration"
-msgstr ""
-
 msgid "Appointment"
 msgstr ""
 
@@ -180,9 +177,6 @@ msgstr ""
 msgid "Comment"
 msgstr ""
 
-msgid "Configure ${portal_calendar} Tool"
-msgstr ""
-
 msgid "Container block"
 msgstr ""
 
@@ -552,9 +546,6 @@ msgstr ""
 msgid "Play"
 msgstr ""
 
-msgid "Portal manager registration"
-msgstr ""
-
 msgid "Portal Role"
 msgstr ""
 
@@ -594,18 +585,12 @@ msgstr ""
 msgid "retract_to_shared"
 msgstr ""
 
-msgid "Reviewed registration"
-msgstr ""
-
 msgid "Reviewer"
 msgstr ""
 
 msgid "Role(s)"
 msgstr ""
 
-msgid "Role mapping mismatch : click Validate to solve this problem !"
-msgstr ""
-
 msgid "Roles to assign:"
 msgstr ""
 
@@ -642,9 +627,6 @@ msgstr ""
 msgid "Select Member(s) and a role(s) to assign:"
 msgstr ""
 
-msgid "Select registration mode"
-msgstr ""
-
 msgid "September"
 msgstr ""
 
@@ -781,9 +763,6 @@ msgstr ""
 msgid "Work"
 msgstr ""
 
-msgid "Workflow chain"
-msgstr ""
-
 msgid "You are not allowed to delete: "
 msgstr ""
 
diff --git a/locales/plinn.pot b/locales/plinn.pot
index 6a530b9..a6f3bb4 100644
--- a/locales/plinn.pot
+++ b/locales/plinn.pot
@@ -14,7 +14,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 2.0 beta 1\n"
-"POT-Creation-Date: Mon Sep  1 20:46:10 2014\n"
+"POT-Creation-Date: Wed Sep  3 22:20:58 2014\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Zope 3 Developers <zope-dev@zope.org>\n"
@@ -31,27 +31,27 @@ msgstr ""
 msgid "Please rename each listed object."
 msgstr ""
 
-#: n/RegistrationTool.py:228
+#: n/RegistrationTool.py:231
 msgid "How to reset your password on the %s website"
 msgstr ""
 
-#: n/RegistrationTool.py:243
+#: n/RegistrationTool.py:246
 msgid "Unknown user name. Please retry."
 msgstr ""
 
-#: n/RegistrationTool.py:258
+#: n/RegistrationTool.py:261
 msgid "Invalid reset password request."
 msgstr ""
 
-#: n/RegistrationTool.py:264
+#: n/RegistrationTool.py:267
 msgid "Your reset password request has expired. You can ask a new one."
 msgstr ""
 
-#: n/RegistrationTool.py:273
+#: n/RegistrationTool.py:276
 msgid "Password successfully updated."
 msgstr ""
 
-#: n/RegistrationTool.py:275
+#: n/RegistrationTool.py:278
 msgid "\"%s\" username not found."
 msgstr ""
 
@@ -487,7 +487,8 @@ msgstr ""
 #: n/skins/custom_generic/logged_in.py:50
 #: n/skins/photo_theme/homepage_dispatcher.py:14
 #: n/skins/photo_theme/homepage_dispatcher.py:17
-#: n/skins/photo_theme/homepage_dispatcher.py:20
+#: n/skins/photo_theme/homepage_dispatcher.py:25
+#: n/skins/photo_theme/homepage_dispatcher.py:28
 msgid "Login success"
 msgstr ""
 
@@ -676,6 +677,7 @@ msgstr ""
 #: n/skins/generic/header_widgets.pt:32
 #: n/skins/generic/header_widgets.pt:173
 #: n/skins/generic/send_email_form.pt:79
+#: n/www/configureRegistrationTool.pt:43
 msgid "Validate"
 msgstr ""
 
@@ -1421,6 +1423,38 @@ msgstr ""
 msgid "(No description)"
 msgstr ""
 
+#: n/www/configureRegistrationTool.pt:4
+msgid "Configure ${portal_calendar} Tool"
+msgstr ""
+
+#: n/www/configureRegistrationTool.pt:6
+msgid "Select registration mode"
+msgstr ""
+
+#: n/www/configureRegistrationTool.pt:11
+msgid "Anonymous registration"
+msgstr ""
+
+#: n/www/configureRegistrationTool.pt:17
+msgid "Anonymous registration with password"
+msgstr ""
+
+#: n/www/configureRegistrationTool.pt:23
+msgid "Portal manager registration"
+msgstr ""
+
+#: n/www/configureRegistrationTool.pt:30
+msgid "Reviewed registration"
+msgstr ""
+
+#: n/www/configureRegistrationTool.pt:34
+msgid "Workflow chain"
+msgstr ""
+
+#: n/www/configureRegistrationTool.pt:39
+msgid "Role mapping mismatch : click Validate to solve this problem !"
+msgstr ""
+
 #: n/www/manage_solr.pt:4
 msgid "Configure Solr delegated indexes"
 msgstr ""
@@ -1485,9 +1519,6 @@ msgstr ""
 msgid "Advanced search"
 msgstr ""
 
-msgid "Anonymous registration"
-msgstr ""
-
 msgid "Appointment"
 msgstr ""
 
@@ -1611,9 +1642,6 @@ msgstr ""
 msgid "Comment"
 msgstr ""
 
-msgid "Configure ${portal_calendar} Tool"
-msgstr ""
-
 msgid "Container block"
 msgstr ""
 
@@ -1983,9 +2011,6 @@ msgstr ""
 msgid "Play"
 msgstr ""
 
-msgid "Portal manager registration"
-msgstr ""
-
 msgid "Portal Role"
 msgstr ""
 
@@ -2025,18 +2050,12 @@ msgstr ""
 msgid "retract_to_shared"
 msgstr ""
 
-msgid "Reviewed registration"
-msgstr ""
-
 msgid "Reviewer"
 msgstr ""
 
 msgid "Role(s)"
 msgstr ""
 
-msgid "Role mapping mismatch : click Validate to solve this problem !"
-msgstr ""
-
 msgid "Roles to assign:"
 msgstr ""
 
@@ -2073,9 +2092,6 @@ msgstr ""
 msgid "Select Member(s) and a role(s) to assign:"
 msgstr ""
 
-msgid "Select registration mode"
-msgstr ""
-
 msgid "September"
 msgstr ""
 
@@ -2212,9 +2228,6 @@ msgstr ""
 msgid "Work"
 msgstr ""
 
-msgid "Workflow chain"
-msgstr ""
-
 msgid "You are not allowed to delete: "
 msgstr ""
 
diff --git a/www/configureRegistrationTool.zpt b/www/configureRegistrationTool.zpt
index 073e279..1746408 100644
--- a/www/configureRegistrationTool.zpt
+++ b/www/configureRegistrationTool.zpt
@@ -5,17 +5,41 @@
   <br />
   <h4 i18n:translate="">Select registration mode</h4>
   <form action="." method="post" tal:attributes="action here/absolute_url">
-    <label><input type="radio" name="registration_mode" value="anonymous" tal:attributes="checked python:here.getMode() == 'anonymous'" /> <span i18n:translate="" tal:omit-tag="">Anonymous registration</span></label><br />
-    <label><input type="radio" name="registration_mode" value="manager" tal:attributes="checked python:here.getMode() == 'manager'"  /> <span i18n:translate="" tal:omit-tag="">Portal manager registration</span></label><br />
+    <label>
+      <input type="radio" name="registration_mode" value="anonymous"
+             tal:attributes="checked python:here.getMode() == 'anonymous'"/>
+      <span i18n:translate="" tal:omit-tag="">Anonymous registration</span>
+    </label>
+    <br/>
+    <label>
+      <input type="radio" name="registration_mode" value="pass_anonymous"
+             tal:attributes="checked python:here.getMode() == 'pass_anonymous'"/>
+      <span i18n:translate="" tal:omit-tag="">Anonymous registration with password</span>
+    </label>
+    <br/>
+    <label>
+      <input type="radio" name="registration_mode" value="manager"
+             tal:attributes="checked python:here.getMode() == 'manager'"/>
+      <span i18n:translate="" tal:omit-tag="">Portal manager registration</span>
+    </label>
+    <br/>
     <div>
-	    <label><input type="radio" name="registration_mode" value="reviewed" tal:attributes="checked python:here.getMode() == 'reviewed'" /> <span i18n:translate="" tal:omit-tag="">Reviewed registration</span></label><br />
+	    <label>
+        <input type="radio" name="registration_mode" value="reviewed"
+               tal:attributes="checked python:here.getMode() == 'reviewed'"/>
+        <span i18n:translate="" tal:omit-tag="">Reviewed registration</span>
+      </label>
+      <br/>
 	    <div style="margin-left : 1em">
         <em i18n:translate="" >Workflow chain</em><br />
-        <input type="text" name="chain" size="50" value="workflow chain" tal:attributes="value here/getWfChain" />
+        <input type="text" name="chain" size="50" value="workflow chain"
+               tal:attributes="value here/getWfChain"/>
       </div>
 	  </div>
 	  <h5 style="color : red" i18n:translate=""
-				tal:condition="here/roleMappingMismatch">Role mapping mismatch : click Validate to solve this problem !</h5>
+				tal:condition="here/roleMappingMismatch">
+        Role mapping mismatch : click Validate to solve this problem !
+    </h5>
     <input type="submit" name="configureTool:method" value="Validate" i18n:attributes="value" />
   </form>
 </div>
-- 
2.20.1