--- a/.installed.cfg Thu Oct 08 09:31:45 2015 +0200
+++ b/.installed.cfg Thu Oct 08 09:39:15 2015 +0200
@@ -1,31 +1,6 @@
[buildout]
-installed_develop_eggs =
-parts = package i18n pyflakes test
-
-[package]
-__buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/pserve
- /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/pshell
- /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/ptweens
- /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/pcreate
- /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/proutes
- /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/pdistreport
- /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/prequest
- /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/pviews
- /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/zpasswd
-__buildout_signature__ = zc.recipe.egg-2.0.1-py3.4.egg setuptools-12.3-py3.4.egg zc.buildout-2.3.1-py3.4.egg
-_b = /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin
-_d = /home/tflorac/Dropbox/src/PyAMS/pyams_security/develop-eggs
-_e = /var/local/env/pyams/eggs
-bin-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin
-develop-eggs-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_security/develop-eggs
-eggs = authomatic
- pyams_security
- pyramid
- zope.component
- zope.interface
- zope.password
-eggs-directory = /var/local/env/pyams/eggs
-recipe = zc.recipe.egg
+installed_develop_eggs = /home/tflorac/Dropbox/src/PyAMS/pyams_security/develop-eggs/pyams-file.egg-link
+parts = i18n pyflakes test package
[i18n]
__buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/pybabel
@@ -72,3 +47,37 @@
location = /home/tflorac/Dropbox/src/PyAMS/pyams_security/parts/test
recipe = zc.recipe.testrunner
script = /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/test
+
+[package]
+__buildout_installed__ = /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/pdistreport
+ /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/pcreate
+ /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/pserve
+ /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/prequest
+ /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/pshell
+ /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/ptweens
+ /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/proutes
+ /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/pviews
+ /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin/zpasswd
+__buildout_signature__ = zc.recipe.egg-2.0.1-py3.4.egg setuptools-12.3-py3.4.egg zc.buildout-2.3.1-py3.4.egg
+_b = /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin
+_d = /home/tflorac/Dropbox/src/PyAMS/pyams_security/develop-eggs
+_e = /var/local/env/pyams/eggs
+bin-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_security/bin
+develop-eggs-directory = /home/tflorac/Dropbox/src/PyAMS/pyams_security/develop-eggs
+eggs = authomatic
+ pyams_security
+ pyramid
+ zope.component
+ zope.interface
+ zope.password
+eggs-directory = /var/local/env/pyams/eggs
+recipe = zc.recipe.egg
+
+[buildout]
+parts = pyflakes test package i18n
+
+[buildout]
+parts = test package i18n pyflakes
+
+[buildout]
+parts = package i18n pyflakes test
--- a/buildout.cfg Thu Oct 08 09:31:45 2015 +0200
+++ b/buildout.cfg Thu Oct 08 09:39:15 2015 +0200
@@ -19,6 +19,7 @@
src = src
develop =
.
+ /var/local/src/pyams/pyams_file
/var/local/src/pyams/pyams_utils
/var/local/src/pyams/ext/lingua
@@ -61,4 +62,4 @@
eggs = pyams_security [test]
[versions]
-pyams_security = 0.1.1
+pyams_security = 0.1.2
--- a/docs/HISTORY.txt Thu Oct 08 09:31:45 2015 +0200
+++ b/docs/HISTORY.txt Thu Oct 08 09:39:15 2015 +0200
@@ -0,0 +1,17 @@
+History
+=======
+
+0.1.2
+-----
+ - changed menus icon class
+ - use named permissions
+
+0.1.1
+-----
+ - changed vocabulary interface provider
+ - added properties to security manager to correctly handle denied permissions
+ - handle recursivity in groups
+
+0.1.0
+-----
+ - initial release
--- a/setup.py Thu Oct 08 09:31:45 2015 +0200
+++ b/setup.py Thu Oct 08 09:39:15 2015 +0200
@@ -22,7 +22,7 @@
README = os.path.join(DOCS, 'README.txt')
HISTORY = os.path.join(DOCS, 'HISTORY.txt')
-version = '0.1.1'
+version = '0.1.2'
long_description = open(README).read() + '\n\n' + open(HISTORY).read()
tests_require = []
@@ -58,6 +58,7 @@
# -*- Extra requirements: -*-
'authomatic',
'fanstatic',
+ 'pyams_file',
'pyramid',
'zope.component',
'zope.interface',
--- a/src/pyams_security.egg-info/PKG-INFO Thu Oct 08 09:31:45 2015 +0200
+++ b/src/pyams_security.egg-info/PKG-INFO Thu Oct 08 09:39:15 2015 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: pyams-security
-Version: 0.1.1
+Version: 0.1.2
Summary: PyAMS security interfaces and classes
Home-page: http://hg.ztfy.org/pyams/pyams_security
Author: Thierry Florac
@@ -103,6 +103,22 @@
si l'inscription "libre" est autorisée
+ History
+ =======
+
+ 0.1.2
+ -----
+ - changed menus icon class
+
+ 0.1.1
+ -----
+ - changed vocabulary interface provider
+ - added properties to security manager to correctly handle denied permissions
+ - handle recursivity in groups
+
+ 0.1.0
+ -----
+ - initial release
Keywords: Pyramid PyAMS security authentication
Platform: UNKNOWN
--- a/src/pyams_security.egg-info/SOURCES.txt Thu Oct 08 09:31:45 2015 +0200
+++ b/src/pyams_security.egg-info/SOURCES.txt Thu Oct 08 09:39:15 2015 +0200
@@ -10,6 +10,7 @@
src/pyams_security/notification.py
src/pyams_security/permission.py
src/pyams_security/principal.py
+src/pyams_security/profile.py
src/pyams_security/property.py
src/pyams_security/role.py
src/pyams_security/schema.py
@@ -28,6 +29,7 @@
src/pyams_security/doctests/README.txt
src/pyams_security/interfaces/__init__.py
src/pyams_security/interfaces/notification.py
+src/pyams_security/interfaces/profile.py
src/pyams_security/locales/pyams_security.pot
src/pyams_security/locales/fr/LC_MESSAGES/pyams_security.mo
src/pyams_security/locales/fr/LC_MESSAGES/pyams_security.po
@@ -78,6 +80,7 @@
src/pyams_security/views/oauth.py
src/pyams_security/views/userfolder.py
src/pyams_security/views/utility.py
+src/pyams_security/views/templates/login-header.pt
src/pyams_security/views/templates/social-login.pt
src/pyams_security/views/templates/user-registration-end.pt
src/pyams_security/views/templates/user-registration.pt
@@ -88,12 +91,14 @@
src/pyams_security/widget/templates/permissions-set-display.pt
src/pyams_security/widget/templates/permissions-set-input.pt
src/pyams_security/widget/templates/principal-display.pt
+src/pyams_security/widget/templates/principal-hidden.pt
src/pyams_security/widget/templates/principal-input.pt
src/pyams_security/widget/templates/principals-set-display.pt
src/pyams_security/widget/templates/principals-set-input.pt
src/pyams_security/zmi/__init__.py
src/pyams_security/zmi/interfaces.py
src/pyams_security/zmi/notification.py
+src/pyams_security/zmi/profile.py
src/pyams_security/zmi/security.py
src/pyams_security/zmi/utility.py
src/pyams_security/zmi/plugin/__init__.py
--- a/src/pyams_security.egg-info/requires.txt Thu Oct 08 09:31:45 2015 +0200
+++ b/src/pyams_security.egg-info/requires.txt Thu Oct 08 09:39:15 2015 +0200
@@ -1,6 +1,7 @@
setuptools
authomatic
fanstatic
+pyams_file
pyramid
zope.component
zope.interface
--- a/src/pyams_security/interfaces/__init__.py Thu Oct 08 09:31:45 2015 +0200
+++ b/src/pyams_security/interfaces/__init__.py Thu Oct 08 09:39:15 2015 +0200
@@ -33,7 +33,9 @@
from pyams_security import _
-FORBIDDEN_PERMISSION = 'system.forbidden'
+#
+# Permissions constants and interfaces
+#
class IPermission(Interface):
Binary file src/pyams_security/locales/fr/LC_MESSAGES/pyams_security.mo has changed
--- a/src/pyams_security/locales/fr/LC_MESSAGES/pyams_security.po Thu Oct 08 09:31:45 2015 +0200
+++ b/src/pyams_security/locales/fr/LC_MESSAGES/pyams_security.po Thu Oct 08 09:39:15 2015 +0200
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2015-06-01 14:47+0200\n"
+"POT-Creation-Date: 2015-09-25 16:58+0200\n"
"PO-Revision-Date: 2015-02-18 22:19+0100\n"
"Last-Translator: Thierry Florac <tflorac@ulthar.net>\n"
"Language-Team: French\n"
@@ -16,35 +16,35 @@
"Generated-By: Lingua 3.8\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: src/pyams_security/__init__.py:33
+#: src/pyams_security/__init__.py:36
msgid "View public contents"
msgstr "Voir les contenus publics"
-#: src/pyams_security/__init__.py:35
+#: src/pyams_security/__init__.py:38
msgid "View protected contents"
msgstr "Voir les contenus protégés"
-#: src/pyams_security/__init__.py:37
+#: src/pyams_security/__init__.py:40
msgid "Manage contents properties"
msgstr "Gérer les propriétés des contenus"
-#: src/pyams_security/__init__.py:39
+#: src/pyams_security/__init__.py:42
msgid "View management screens"
msgstr "Voir les propriétés du système"
-#: src/pyams_security/__init__.py:41
+#: src/pyams_security/__init__.py:44
msgid "Manage system properties"
msgstr "Gérer les propriétés du système"
-#: src/pyams_security/__init__.py:44
+#: src/pyams_security/__init__.py:47
msgid "Manage security"
msgstr "Gérer les paramètres de sécurité"
-#: src/pyams_security/__init__.py:46
+#: src/pyams_security/__init__.py:49
msgid "Manage roles"
msgstr "Gérer l'attribution des rôles"
-#: src/pyams_security/principal.py:53
+#: src/pyams_security/principal.py:57
msgid "Not logged in"
msgstr "Non connecté"
@@ -59,56 +59,58 @@
msgid "Select permissions..."
msgstr "Sélectionner des permissions..."
-#: src/pyams_security/zmi/utility.py:75
+#: src/pyams_security/zmi/utility.py:77
msgid "Security"
msgstr "Sécurité"
-#: src/pyams_security/zmi/utility.py:84
+#: src/pyams_security/zmi/utility.py:86
msgid "Authentication and users directory plug-ins"
msgstr "Modules d'authentification et dossiers utilisateurs"
-#: src/pyams_security/zmi/utility.py:104
+#: src/pyams_security/zmi/utility.py:106
msgid "See plug-in contents"
msgstr "Voir le contenu du module"
-#: src/pyams_security/zmi/utility.py:119
-#: src/pyams_security/zmi/plugin/social.py:195
-#: src/pyams_security/zmi/plugin/social.py:328
-#: src/pyams_security/zmi/plugin/userfolder.py:192
-#: src/pyams_security/zmi/plugin/group.py:159
-#: src/pyams_security/interfaces/__init__.py:246
+#: src/pyams_security/zmi/utility.py:121
+#: src/pyams_security/zmi/plugin/social.py:198
+#: src/pyams_security/zmi/plugin/social.py:331
+#: src/pyams_security/zmi/plugin/userfolder.py:193
+#: src/pyams_security/zmi/plugin/group.py:161
+#: src/pyams_security/interfaces/__init__.py:251
msgid "Name"
msgstr "Nom"
-#: src/pyams_security/zmi/utility.py:128
+#: src/pyams_security/zmi/utility.py:130
msgid "Delete plug-in"
msgstr "Supprimer ce module"
+#: src/pyams_security/zmi/utility.py:161
+msgid "Control panel"
+msgstr "Panneau de configuration"
+
#: src/pyams_security/zmi/utility.py:162
-#: src/pyams_security/zmi/plugin/social.py:370
-#: src/pyams_security/zmi/plugin/social.py:388
-#: src/pyams_security/zmi/plugin/social.py:443
+#: src/pyams_security/zmi/plugin/social.py:373
+#: src/pyams_security/zmi/plugin/social.py:391
+#: src/pyams_security/zmi/plugin/social.py:446
+#: src/pyams_security/zmi/plugin/userfolder.py:157
+#: src/pyams_security/zmi/plugin/group.py:196
msgid "Security manager"
msgstr "Gestionnaire de sécurité"
-#: src/pyams_security/zmi/utility.py:163
-msgid "Security manager plug-ins"
-msgstr "Modules du gestionnaire de sécurité"
-
-#: src/pyams_security/zmi/utility.py:171
+#: src/pyams_security/zmi/utility.py:170
msgid "Properties..."
msgstr "Propriétés..."
-#: src/pyams_security/zmi/utility.py:184
-#: src/pyams_security/zmi/notification.py:58
-#: src/pyams_security/zmi/plugin/social.py:79
-#: src/pyams_security/zmi/plugin/userfolder.py:76
-#: src/pyams_security/zmi/plugin/group.py:72
-#: src/pyams_security/zmi/plugin/admin.py:63
+#: src/pyams_security/zmi/utility.py:183
+#: src/pyams_security/zmi/notification.py:60
+#: src/pyams_security/zmi/plugin/social.py:81
+#: src/pyams_security/zmi/plugin/userfolder.py:78
+#: src/pyams_security/zmi/plugin/group.py:74
+#: src/pyams_security/zmi/plugin/admin.py:65
msgid "System security manager"
msgstr "Gestionnaire de sécurité"
-#: src/pyams_security/zmi/utility.py:185
+#: src/pyams_security/zmi/utility.py:184
msgid "Security manager properties"
msgstr "Propriétés du gestionnaire de sécurité"
@@ -117,12 +119,12 @@
msgstr "Modules"
#: src/pyams_security/zmi/utility.py:207
-#: src/pyams_security/interfaces/__init__.py:552
+#: src/pyams_security/interfaces/__init__.py:557
msgid "Enable social login?"
msgstr "Activer les réseaux sociaux ?"
#: src/pyams_security/zmi/utility.py:214
-#: src/pyams_security/interfaces/__init__.py:576
+#: src/pyams_security/interfaces/__init__.py:581
msgid "Enable free registration?"
msgstr "Activer l'inscription libre ?"
@@ -134,240 +136,247 @@
msgid "Given plug-in name doesn't exist!"
msgstr "Le module indiqué n'existe pas !"
-#: src/pyams_security/zmi/notification.py:45
+#: src/pyams_security/zmi/notification.py:46
msgid "Notifications..."
msgstr "Notifications..."
-#: src/pyams_security/zmi/notification.py:59
+#: src/pyams_security/zmi/notification.py:61
msgid "Notifications properties"
msgstr "Paramétrage des notifications"
-#: src/pyams_security/zmi/security.py:46
-msgid "Access rules..."
-msgstr "Règles d'accès..."
+#: src/pyams_security/zmi/profile.py:42
+msgid "User profile"
+msgstr "Profil utilisateur"
+
+#: src/pyams_security/zmi/profile.py:54
+msgid "Edit user profile"
+msgstr "Modification du profil utilisateur"
-#: src/pyams_security/zmi/security.py:71
-msgid "Security management"
-msgstr "Paramètres de sécurité"
+#: src/pyams_security/zmi/profile.py:78
+msgid "Public profile"
+msgstr "Profil public"
-#: src/pyams_security/zmi/security.py:93
-msgid "Granted roles"
+#: src/pyams_security/zmi/security.py:58
+msgid "Access rules"
+msgstr "Droits d'accès"
+
+#: src/pyams_security/zmi/security.py:70
+msgid "Granted users roles"
msgstr "Affectation des rôles"
-#: src/pyams_security/zmi/security.py:83 src/pyams_security/zmi/security.py:84
-msgid "(inherit from parent)"
-msgstr "(héritée du parent)"
+#: src/pyams_security/zmi/security.py:117
+msgid "Security policy..."
+msgstr "Politique de sécurité..."
-#: src/pyams_security/zmi/plugin/social.py:68
+#: src/pyams_security/zmi/security.py:128
+msgid "Update security policy"
+msgstr "Mise à jour de la politique de sécurité"
+
+#: src/pyams_security/zmi/plugin/social.py:70
msgid "Add social users folder..."
msgstr "Ajouter un dossier pour les réseaux sociaux..."
-#: src/pyams_security/zmi/plugin/social.py:80
+#: src/pyams_security/zmi/plugin/social.py:82
msgid "Add social users folder plug-in"
msgstr "Ajout d'un dossier pour les réseaux sociaux"
-#: src/pyams_security/zmi/plugin/social.py:122
+#: src/pyams_security/zmi/plugin/social.py:124
msgid "Edit social users folder plug-in properties"
msgstr "Modification d'un dossier pour les réseaux sociaux"
-#: src/pyams_security/zmi/plugin/social.py:163
-#: src/pyams_security/zmi/plugin/userfolder.py:160
+#: src/pyams_security/zmi/plugin/social.py:166
msgid "Search users"
msgstr "Rechercher des utilisateurs"
-#: src/pyams_security/zmi/plugin/social.py:172
-#: src/pyams_security/zmi/plugin/userfolder.py:169
+#: src/pyams_security/zmi/plugin/social.py:175
+#: src/pyams_security/zmi/plugin/userfolder.py:170
msgid "Search results"
msgstr "Résultats de la recherche"
-#: src/pyams_security/zmi/plugin/social.py:185
+#: src/pyams_security/zmi/plugin/social.py:188
msgid "User ID"
msgstr "ID utilisateur"
-#: src/pyams_security/zmi/plugin/social.py:205
-#: src/pyams_security/zmi/plugin/userfolder.py:202
-#: src/pyams_security/interfaces/__init__.py:257
-#: src/pyams_security/interfaces/__init__.py:333
+#: src/pyams_security/zmi/plugin/social.py:208
+#: src/pyams_security/zmi/plugin/userfolder.py:203
+#: src/pyams_security/interfaces/__init__.py:262
+#: src/pyams_security/interfaces/__init__.py:338
msgid "E-mail address"
msgstr "Adresse de messagerie"
-#: src/pyams_security/zmi/plugin/social.py:215
-#: src/pyams_security/interfaces/__init__.py:241
+#: src/pyams_security/zmi/plugin/social.py:218
+#: src/pyams_security/interfaces/__init__.py:246
msgid "OAuth provider name"
msgstr "Nom du fournisseur"
-#: src/pyams_security/zmi/plugin/social.py:225
-#: src/pyams_security/zmi/plugin/userfolder.py:212
-#: src/pyams_security/interfaces/__init__.py:281
+#: src/pyams_security/zmi/plugin/social.py:228
+#: src/pyams_security/zmi/plugin/userfolder.py:213
+#: src/pyams_security/interfaces/__init__.py:286
msgid "Registration date"
msgstr "Date d'enregistrement"
-#: src/pyams_security/zmi/plugin/social.py:248
-#: src/pyams_security/zmi/plugin/userfolder.py:333
+#: src/pyams_security/zmi/plugin/social.py:251
+#: src/pyams_security/zmi/plugin/userfolder.py:335
msgid "Edit user properties"
msgstr "Modification des propriétés d'un utilisateur"
-#: src/pyams_security/zmi/plugin/social.py:280
+#: src/pyams_security/zmi/plugin/social.py:283
msgid "Social networks login"
msgstr "Connexions aux réseaux sociaux"
-#: src/pyams_security/zmi/plugin/social.py:288
+#: src/pyams_security/zmi/plugin/social.py:291
msgid "Configured social networks login providers"
msgstr "Connecteurs d'accès aux réseaux sociaux"
-#: src/pyams_security/zmi/plugin/social.py:318
+#: src/pyams_security/zmi/plugin/social.py:321
msgid "ID"
msgstr "ID"
-#: src/pyams_security/zmi/plugin/social.py:337
+#: src/pyams_security/zmi/plugin/social.py:340
msgid "Delete provider"
msgstr "Supprimer ce connecteur"
-#: src/pyams_security/zmi/plugin/social.py:371
+#: src/pyams_security/zmi/plugin/social.py:374
msgid "Social networks login providers"
msgstr "Accès aux réseaux sociaux"
-#: src/pyams_security/zmi/plugin/social.py:379
+#: src/pyams_security/zmi/plugin/social.py:382
msgid "Add provider"
msgstr "Ajouter un connecteur"
-#: src/pyams_security/zmi/plugin/social.py:389
+#: src/pyams_security/zmi/plugin/social.py:392
msgid "Add new social login provider"
msgstr "Ajout d'un nouveau connecteur"
-#: src/pyams_security/zmi/plugin/social.py:444
+#: src/pyams_security/zmi/plugin/social.py:447
msgid "Edit social login provider properties"
msgstr "Modification d'un connecteur"
-#: src/pyams_security/zmi/plugin/social.py:104
-#: src/pyams_security/zmi/plugin/userfolder.py:101
-#: src/pyams_security/zmi/plugin/group.py:97
-#: src/pyams_security/zmi/plugin/admin.py:89
+#: src/pyams_security/zmi/plugin/social.py:106
+#: src/pyams_security/zmi/plugin/userfolder.py:103
+#: src/pyams_security/zmi/plugin/group.py:99
+#: src/pyams_security/zmi/plugin/admin.py:91
msgid "Specified prefix is already used!"
msgstr "Ce préfixe est déjà utilisé !"
-#: src/pyams_security/zmi/plugin/social.py:419
+#: src/pyams_security/zmi/plugin/social.py:422
msgid "This provider is already defined!"
msgstr "Un connecteur pour ce réseau social est déjà défini !"
-#: src/pyams_security/zmi/plugin/social.py:435
+#: src/pyams_security/zmi/plugin/social.py:438
msgid "Social provider was created successfully"
msgstr "Le connecteur a été créé avec succès."
-#: src/pyams_security/zmi/plugin/social.py:422
+#: src/pyams_security/zmi/plugin/social.py:425
msgid "This provider ID is already used!"
msgstr "L'ID de ce connecteur est déjà utilisé !"
-#: src/pyams_security/zmi/plugin/social.py:475
+#: src/pyams_security/zmi/plugin/social.py:478
msgid "No provided provider_name argument!"
msgstr "Argument 'provider_name' non fourni !"
-#: src/pyams_security/zmi/plugin/social.py:479
+#: src/pyams_security/zmi/plugin/social.py:482
msgid "Given provider name doesn't exist!"
msgstr "Le connecteur indiqué n'existe pas !"
-#: src/pyams_security/zmi/plugin/userfolder.py:65
+#: src/pyams_security/zmi/plugin/userfolder.py:67
msgid "Add local users folder..."
msgstr "Ajouter un dossier d'utilisateurs locaux..."
-#: src/pyams_security/zmi/plugin/userfolder.py:77
+#: src/pyams_security/zmi/plugin/userfolder.py:79
msgid "Add local users folder plug-in"
msgstr "Ajout d'un dossier d'utilisateurs locaux"
-#: src/pyams_security/zmi/plugin/userfolder.py:119
+#: src/pyams_security/zmi/plugin/userfolder.py:121
msgid "Edit local users folder plug-in properties"
msgstr "Modification d'un dossier d'utilisateurs locaux"
-#: src/pyams_security/zmi/plugin/userfolder.py:182
+#: src/pyams_security/zmi/plugin/userfolder.py:183
#: src/pyams_security/views/login.py:56
msgid "Login"
msgstr "Code utilisateur"
-#: src/pyams_security/zmi/plugin/userfolder.py:228
-#: src/pyams_security/interfaces/__init__.py:455
-#: src/pyams_security/interfaces/__init__.py:458
+#: src/pyams_security/zmi/plugin/userfolder.py:229
+#: src/pyams_security/interfaces/__init__.py:460
+#: src/pyams_security/interfaces/__init__.py:463
msgid "Activation date"
msgstr "Date d'activation"
-#: src/pyams_security/zmi/plugin/userfolder.py:248
+#: src/pyams_security/zmi/plugin/userfolder.py:249
msgid "Add user"
msgstr "Ajouter un utilisateur"
-#: src/pyams_security/zmi/plugin/userfolder.py:261
+#: src/pyams_security/zmi/plugin/userfolder.py:263
msgid "Add new local user"
msgstr "Ajout d'un utilisateur local"
-#: src/pyams_security/zmi/plugin/userfolder.py:311
+#: src/pyams_security/zmi/plugin/userfolder.py:313
#: src/pyams_security/views/userfolder.py:124
msgid "Specified login can't be used!"
msgstr "Le code utilisateur indiqué ne peut pas être utilisé !"
-#: src/pyams_security/zmi/plugin/userfolder.py:322
+#: src/pyams_security/zmi/plugin/userfolder.py:324
msgid "User was created successfully"
msgstr "L'utilisateur a été créé avec succès."
-#: src/pyams_security/zmi/plugin/group.py:61
+#: src/pyams_security/zmi/plugin/group.py:63
msgid "Add local groups folder..."
msgstr "Ajouter un dossier de groupes locaux..."
-#: src/pyams_security/zmi/plugin/group.py:73
+#: src/pyams_security/zmi/plugin/group.py:75
msgid "Add local groups folder plug-in"
msgstr "Ajout d'un dossier de groupes locaux"
-#: src/pyams_security/zmi/plugin/group.py:115
+#: src/pyams_security/zmi/plugin/group.py:117
msgid "Edit local groups folder plug-in properties"
msgstr "Modification d'un dossier de groupes locaux"
-#: src/pyams_security/zmi/plugin/group.py:141
-msgid "Local groups"
-msgstr "Groupes locaux"
+#: src/pyams_security/zmi/plugin/group.py:143
+msgid "Local groups list"
+msgstr "Liste des groupes locaux"
-#: src/pyams_security/zmi/plugin/group.py:169
-#: src/pyams_security/interfaces/__init__.py:499
+#: src/pyams_security/zmi/plugin/group.py:171
+#: src/pyams_security/interfaces/__init__.py:504
msgid "Description"
msgstr "Description"
-#: src/pyams_security/zmi/plugin/group.py:199
-msgid "Groups list"
-msgstr "Liste des groupes"
-
-#: src/pyams_security/zmi/plugin/group.py:212
+#: src/pyams_security/zmi/plugin/group.py:213
msgid "Add group"
msgstr "Ajouter un groupe"
-#: src/pyams_security/zmi/plugin/group.py:225
+#: src/pyams_security/zmi/plugin/group.py:227
msgid "Add new local group"
msgstr "Ajout d'un groupe local"
-#: src/pyams_security/zmi/plugin/group.py:281
+#: src/pyams_security/zmi/plugin/group.py:283
msgid "Edit group properties"
msgstr "Modification des propriétés d'un groupe"
-#: src/pyams_security/zmi/plugin/group.py:258
+#: src/pyams_security/zmi/plugin/group.py:260
msgid "Specified group ID can't be used!"
msgstr "L'ID indiqué pour ce groupe ne peut pas être utilisé !"
-#: src/pyams_security/zmi/plugin/group.py:270
+#: src/pyams_security/zmi/plugin/group.py:272
msgid "Group was created successfully"
msgstr "Le groupe a été créé avec succès."
-#: src/pyams_security/zmi/plugin/admin.py:52
+#: src/pyams_security/zmi/plugin/admin.py:54
msgid "Add admin authentication..."
msgstr "Ajouter un compte système..."
-#: src/pyams_security/zmi/plugin/admin.py:64
+#: src/pyams_security/zmi/plugin/admin.py:66
msgid "Add administration authentication plug-in"
msgstr "Ajout d'un compte d'administration système"
-#: src/pyams_security/zmi/plugin/admin.py:107
+#: src/pyams_security/zmi/plugin/admin.py:109
msgid "Edit administration authentication plug-in"
msgstr "Modification d'un compte d'administration système"
-#: src/pyams_security/zmi/plugin/admin.py:130
+#: src/pyams_security/zmi/plugin/admin.py:132
msgid "WARNING"
msgstr "ATTENTION"
-#: src/pyams_security/zmi/plugin/admin.py:132
+#: src/pyams_security/zmi/plugin/admin.py:134
msgid ""
"Before disabling plug-in, please verify that you have other administration "
"access!"
@@ -396,7 +405,7 @@
msgstr "Veuillez confirmer les paramètres de votre compte"
#: src/pyams_security/views/userfolder.py:65
-#: src/pyams_security/views/login.py:140
+#: src/pyams_security/views/login.py:142
msgid "Cancel"
msgstr "Annuler"
@@ -437,14 +446,14 @@
msgid "Can't retrieve user profile!"
msgstr "Impossible d'accéder à votre compte utilisateur !"
-#: src/pyams_security/views/login.py:90 src/pyams_security/views/login.py:149
+#: src/pyams_security/views/login.py:90 src/pyams_security/views/login.py:151
msgid "Please enter valid credentials to log-in"
msgstr "Veuillez indiquer vos paramètres de connexion"
#: src/pyams_security/views/login.py:57
-#: src/pyams_security/interfaces/__init__.py:352
-#: src/pyams_security/interfaces/__init__.py:378
-#: src/pyams_security/interfaces/__init__.py:430
+#: src/pyams_security/interfaces/__init__.py:357
+#: src/pyams_security/interfaces/__init__.py:383
+#: src/pyams_security/interfaces/__init__.py:435
msgid "Password"
msgstr "Mot de passe"
@@ -452,7 +461,7 @@
msgid "Reset"
msgstr "Annuler"
-#: src/pyams_security/views/login.py:64 src/pyams_security/views/login.py:141
+#: src/pyams_security/views/login.py:64 src/pyams_security/views/login.py:143
msgid "Connect"
msgstr "Connexion"
@@ -483,92 +492,92 @@
msgid "Return to home page"
msgstr "Retourner à la page d'accueil"
-#: src/pyams_security/interfaces/__init__.py:137
+#: src/pyams_security/interfaces/__init__.py:142
msgid "Plug-in prefix"
msgstr "Préfixe du module"
-#: src/pyams_security/interfaces/__init__.py:138
+#: src/pyams_security/interfaces/__init__.py:143
msgid ""
"This prefix is mainly used by authentication plug-ins to mark principals"
msgstr ""
"Ce préfixe est utilisé par les modules d'authentification pour identifier "
"les utilisateurs"
-#: src/pyams_security/interfaces/__init__.py:140
+#: src/pyams_security/interfaces/__init__.py:145
msgid "Plug-in title"
msgstr "Libellé du module"
-#: src/pyams_security/interfaces/__init__.py:143
+#: src/pyams_security/interfaces/__init__.py:148
msgid "Enabled plug-in?"
msgstr "Module actif ?"
-#: src/pyams_security/interfaces/__init__.py:144
+#: src/pyams_security/interfaces/__init__.py:149
msgid "You can choose to disable any plug-in..."
msgstr ""
"Un module inactif ne peut plus être utilisé pour authentifier ou rechercher "
"les utilisateurs..."
-#: src/pyams_security/interfaces/__init__.py:179
+#: src/pyams_security/interfaces/__init__.py:184
msgid "Admin. login"
msgstr "Code utilisateur"
-#: src/pyams_security/interfaces/__init__.py:181
+#: src/pyams_security/interfaces/__init__.py:186
msgid "Admin. password"
msgstr "Mot de passe"
-#: src/pyams_security/interfaces/__init__.py:239
+#: src/pyams_security/interfaces/__init__.py:244
msgid "Internal provider ID"
msgstr "ID du connecteur"
-#: src/pyams_security/interfaces/__init__.py:243
+#: src/pyams_security/interfaces/__init__.py:248
msgid "User name"
msgstr "Nom d'utilisateur"
-#: src/pyams_security/interfaces/__init__.py:248
-#: src/pyams_security/interfaces/__init__.py:343
-#: src/pyams_security/interfaces/__init__.py:414
+#: src/pyams_security/interfaces/__init__.py:253
+#: src/pyams_security/interfaces/__init__.py:348
+#: src/pyams_security/interfaces/__init__.py:419
msgid "First name"
msgstr "Prénom"
-#: src/pyams_security/interfaces/__init__.py:251
-#: src/pyams_security/interfaces/__init__.py:346
-#: src/pyams_security/interfaces/__init__.py:417
+#: src/pyams_security/interfaces/__init__.py:256
+#: src/pyams_security/interfaces/__init__.py:351
+#: src/pyams_security/interfaces/__init__.py:422
msgid "Last name"
msgstr "Nom"
-#: src/pyams_security/interfaces/__init__.py:254
+#: src/pyams_security/interfaces/__init__.py:259
msgid "Nickname"
msgstr "Surnom"
-#: src/pyams_security/interfaces/__init__.py:260
+#: src/pyams_security/interfaces/__init__.py:265
msgid "Timezone"
msgstr "Fuseau horaire"
-#: src/pyams_security/interfaces/__init__.py:263
+#: src/pyams_security/interfaces/__init__.py:268
msgid "Country"
msgstr "Pays"
-#: src/pyams_security/interfaces/__init__.py:266
+#: src/pyams_security/interfaces/__init__.py:271
msgid "City"
msgstr "Ville"
-#: src/pyams_security/interfaces/__init__.py:269
+#: src/pyams_security/interfaces/__init__.py:274
msgid "Postal code"
msgstr "Code postal"
-#: src/pyams_security/interfaces/__init__.py:272
+#: src/pyams_security/interfaces/__init__.py:277
msgid "Locale code"
msgstr "Langue"
-#: src/pyams_security/interfaces/__init__.py:275
+#: src/pyams_security/interfaces/__init__.py:280
msgid "Picture URL"
msgstr "Photo (URL)"
-#: src/pyams_security/interfaces/__init__.py:278
+#: src/pyams_security/interfaces/__init__.py:283
msgid "Birth date"
msgstr "Date de naissance"
-#: src/pyams_security/interfaces/__init__.py:314
+#: src/pyams_security/interfaces/__init__.py:319
msgid ""
"Your password must contain at least three of these kinds of characters: "
"lowercase letters, uppercase letters, numbers and special characters"
@@ -576,20 +585,20 @@
"Votre mot de passe doit contenir au moins trois de ces types de caractères : "
"minuscules, majuscules, chiffres et autres caractères"
-#: src/pyams_security/interfaces/__init__.py:324
-#: src/pyams_security/interfaces/__init__.py:375
-#: src/pyams_security/interfaces/__init__.py:397
+#: src/pyams_security/interfaces/__init__.py:329
+#: src/pyams_security/interfaces/__init__.py:380
+#: src/pyams_security/interfaces/__init__.py:402
msgid "User login"
msgstr "Code utilisateur"
-#: src/pyams_security/interfaces/__init__.py:325
+#: src/pyams_security/interfaces/__init__.py:330
msgid ""
"If you don't provide a custom login, your login will be your email address..."
msgstr ""
"Si vous n'indiquez pas de code utilisateur, vous pourrez utiliser votre "
"adresse de messagerie pour vous connecter..."
-#: src/pyams_security/interfaces/__init__.py:334
+#: src/pyams_security/interfaces/__init__.py:339
msgid ""
"An email will be sent to this address to validate account activation; it "
"will be used as your future user login"
@@ -598,12 +607,12 @@
"permettre d'activer votre compte ; il pourra être utilisé compte identifiant "
"de connexion si vous n'avez pas indiqué de code utilisateur"
-#: src/pyams_security/interfaces/__init__.py:349
-#: src/pyams_security/interfaces/__init__.py:422
+#: src/pyams_security/interfaces/__init__.py:354
+#: src/pyams_security/interfaces/__init__.py:427
msgid "Company name"
msgstr "Société"
-#: src/pyams_security/interfaces/__init__.py:353
+#: src/pyams_security/interfaces/__init__.py:358
msgid ""
"Password must be at least 8 characters long, and contain at least three kins "
"of characters between lowercase letters, uppercase letters, numbers and "
@@ -613,29 +622,29 @@
"moins trois types de caractères parmi les lettres minuscules, les "
"majuscules, les chiffres et les caractères spéciaux"
-#: src/pyams_security/interfaces/__init__.py:359
-#: src/pyams_security/interfaces/__init__.py:382
+#: src/pyams_security/interfaces/__init__.py:364
+#: src/pyams_security/interfaces/__init__.py:387
msgid "Confirmed password"
msgstr "Confirmation du mot de passe"
-#: src/pyams_security/interfaces/__init__.py:372
-#: src/pyams_security/interfaces/__init__.py:449
+#: src/pyams_security/interfaces/__init__.py:377
+#: src/pyams_security/interfaces/__init__.py:454
msgid "Activation hash"
msgstr "Clé d'activation"
-#: src/pyams_security/interfaces/__init__.py:406
+#: src/pyams_security/interfaces/__init__.py:411
msgid "User email address"
msgstr "Adresse de messagerie"
-#: src/pyams_security/interfaces/__init__.py:425
+#: src/pyams_security/interfaces/__init__.py:430
msgid "Password manager name"
msgstr "Gestionnaire de mot de passe"
-#: src/pyams_security/interfaces/__init__.py:434
+#: src/pyams_security/interfaces/__init__.py:439
msgid "Wait confirmation?"
msgstr "Attendre la confirmation ?"
-#: src/pyams_security/interfaces/__init__.py:435
+#: src/pyams_security/interfaces/__init__.py:440
msgid ""
"If 'no', user will be activated immediately without waiting email "
"confirmation"
@@ -643,20 +652,20 @@
"Si 'non', ce compte utilisateur sera activé immédiatement sans attendre le "
"message de confirmation"
-#: src/pyams_security/interfaces/__init__.py:440
+#: src/pyams_security/interfaces/__init__.py:445
msgid "Self-registered profile?"
msgstr "Profil auto-enregistré ?"
-#: src/pyams_security/interfaces/__init__.py:445
+#: src/pyams_security/interfaces/__init__.py:450
msgid "Activation secret key"
msgstr "Clé secrète"
-#: src/pyams_security/interfaces/__init__.py:446
+#: src/pyams_security/interfaces/__init__.py:451
msgid "This private secret is used to create and check activation hash"
msgstr ""
"Cette clé secrète est utilisé pour créer et vérifier la clé d'activation"
-#: src/pyams_security/interfaces/__init__.py:450
+#: src/pyams_security/interfaces/__init__.py:455
msgid ""
"This hash is provided into activation message URL. Activation hash is "
"missing for local users which were registered without waiting their "
@@ -666,84 +675,84 @@
"Cette clé d'activation n'est pas définie pour les utilisateurs pour lesquels "
"l'attente de confirmation n'a pas été demandée."
-#: src/pyams_security/interfaces/__init__.py:490
+#: src/pyams_security/interfaces/__init__.py:495
msgid "Group ID"
msgstr "ID du groupe"
-#: src/pyams_security/interfaces/__init__.py:491
+#: src/pyams_security/interfaces/__init__.py:496
msgid "This ID should be unique between all groups"
msgstr "Cet ID doit être unique pour tous les groupes"
-#: src/pyams_security/interfaces/__init__.py:495
+#: src/pyams_security/interfaces/__init__.py:500
msgid "Title"
msgstr "Nom"
-#: src/pyams_security/interfaces/__init__.py:496
+#: src/pyams_security/interfaces/__init__.py:501
msgid "Public label of this group"
msgstr "Libellé public de ce groupe"
-#: src/pyams_security/interfaces/__init__.py:502
+#: src/pyams_security/interfaces/__init__.py:507
msgid "Group principals"
msgstr "Mandants du groupe"
-#: src/pyams_security/interfaces/__init__.py:503
+#: src/pyams_security/interfaces/__init__.py:508
msgid "IDs of principals contained in this group"
msgstr "ID des mandants contenus dans ce groupe"
-#: src/pyams_security/interfaces/__init__.py:553
+#: src/pyams_security/interfaces/__init__.py:558
msgid "Enable login via social OAuth plug-ins"
msgstr ""
"Autoriser la connexion à partir des réseaux sociaux via les modules OAuth"
-#: src/pyams_security/interfaces/__init__.py:557
+#: src/pyams_security/interfaces/__init__.py:562
msgid "Social users folder"
msgstr "Dossier des utilisateurs \"sociaux\""
-#: src/pyams_security/interfaces/__init__.py:558
+#: src/pyams_security/interfaces/__init__.py:563
msgid "Name of folder used to store social users properties"
msgstr ""
"Nom du dossier dans lequel seront stockés les profils des utilisateurs "
"connectés via des réseaux sociaux"
-#: src/pyams_security/interfaces/__init__.py:567
+#: src/pyams_security/interfaces/__init__.py:572
msgid "Authomatic secret"
msgstr "Clé OAuth"
-#: src/pyams_security/interfaces/__init__.py:568
+#: src/pyams_security/interfaces/__init__.py:573
msgid "This secret phrase is used to encrypt Authomatic cookie"
msgstr ""
"Cette phrase secrète est utilisée pour crypter le cookie d'authentification"
-#: src/pyams_security/interfaces/__init__.py:572
+#: src/pyams_security/interfaces/__init__.py:577
msgid "Use social popup?"
msgstr "Connection via une popup ?"
-#: src/pyams_security/interfaces/__init__.py:577
+#: src/pyams_security/interfaces/__init__.py:582
msgid "If 'Yes', any use will be able to create a new user account"
msgstr "Si 'oui', toute personne sera à même de se créer un compte utilisateur"
-#: src/pyams_security/interfaces/__init__.py:581
+#: src/pyams_security/interfaces/__init__.py:586
msgid "Users folder"
msgstr "Dossier des utilisateurs locaux"
-#: src/pyams_security/interfaces/__init__.py:582
+#: src/pyams_security/interfaces/__init__.py:587
msgid "Name of users folder used to store registered principals"
msgstr "Nom du dossier dans lequel seront créés les utilisateurs enregistrés"
-#: src/pyams_security/interfaces/__init__.py:591
+#: src/pyams_security/interfaces/__init__.py:596
msgid "Credentials plug-ins"
msgstr "Modules d'identification"
-#: src/pyams_security/interfaces/__init__.py:592
+#: src/pyams_security/interfaces/__init__.py:597
msgid "These plug-ins can be used to extract request credentials"
msgstr ""
"Ces modules peuvent être utilisés pour extraire l'identitité des utilisateurs"
-#: src/pyams_security/interfaces/__init__.py:597
+#: src/pyams_security/interfaces/__init__.py:602
msgid "Authentication plug-ins"
msgstr "Modules d'authentification"
-#: src/pyams_security/interfaces/__init__.py:598
+#: src/pyams_security/interfaces/__init__.py:603
msgid ""
"The plug-ins can be used to check extracted credentials against a local or "
"remote users database"
@@ -751,88 +760,112 @@
"Ces modules sont utilisés pour vérifier l'identité des utilisateurs vis à "
"vis d'une base d'utilisateurs locale ou distante"
-#: src/pyams_security/interfaces/__init__.py:603
+#: src/pyams_security/interfaces/__init__.py:608
msgid "Directory plug-ins"
msgstr "Modules d'annuaires"
-#: src/pyams_security/interfaces/__init__.py:604
+#: src/pyams_security/interfaces/__init__.py:609
msgid "The plug-in can be used to extract principals information"
msgstr ""
"Ces modules peuvent être utilisés pour extraire les propriétés des "
"utilisateurs"
-#: src/pyams_security/interfaces/__init__.py:678
+#: src/pyams_security/interfaces/__init__.py:683
msgid "Provider name"
msgstr "Nom du fournisseur"
-#: src/pyams_security/interfaces/__init__.py:682
+#: src/pyams_security/interfaces/__init__.py:687
msgid "Provider ID"
msgstr "ID du fournisseur"
-#: src/pyams_security/interfaces/__init__.py:683
+#: src/pyams_security/interfaces/__init__.py:688
msgid "This value should be unique between all providers"
msgstr "Cette valeur numérique doit être unique pour tous les fournisseurs"
-#: src/pyams_security/interfaces/__init__.py:687
+#: src/pyams_security/interfaces/__init__.py:692
msgid "Provider consumer key"
msgstr "Clé cliente"
-#: src/pyams_security/interfaces/__init__.py:690
+#: src/pyams_security/interfaces/__init__.py:695
msgid "Provider secret"
msgstr "Clé secrète"
-#: src/pyams_security/interfaces/__init__.py:708
+#: src/pyams_security/interfaces/__init__.py:713
msgid "Inherit parent security?"
msgstr "Héritage de la sécurité ?"
-#: src/pyams_security/interfaces/__init__.py:709
+#: src/pyams_security/interfaces/__init__.py:714
msgid "Get access control entries (ACE) inherited from parent levels"
msgstr "Utiliser les règles d'accès (ACE) héritées du parent"
-#: src/pyams_security/interfaces/__init__.py:714
-msgid "Public permissions"
-msgstr "Permissions publiques"
+#: src/pyams_security/interfaces/__init__.py:719
+msgid "Public denied permissions"
+msgstr "Permissions publiques retirées"
-#: src/pyams_security/interfaces/__init__.py:715
+#: src/pyams_security/interfaces/__init__.py:720
+msgid ""
+"These permissions will be denied to all users. Denied permissions take "
+"precedence over granted ones."
+msgstr ""
+"Ces permissions seront retirées à tous les utilisateurs. Les permissions "
+"retirées sont prioritaires par rapport aux permissions accordées."
+
+#: src/pyams_security/interfaces/__init__.py:725
+msgid "Public granted permissions"
+msgstr "Permissions publiques accordées"
+
+#: src/pyams_security/interfaces/__init__.py:726
msgid "These permissions will be granted to all users"
-msgstr "Ces permissions seront attribuées à tous les utilisateurs"
+msgstr "Ces permissions seront accordées à tous les utilisateurs"
+
+#: src/pyams_security/interfaces/__init__.py:729
+msgid "Authenticated denied permissions"
+msgstr "Permissions authentifiées retirées"
-#: src/pyams_security/interfaces/__init__.py:718
-msgid "Authenticated permissions"
-msgstr "Permissions authentifiées"
+#: src/pyams_security/interfaces/__init__.py:730
+msgid ""
+"These permissions will be denied to authenticated users. Denied permissions "
+"take precedence over granted ones."
+msgstr ""
+"Ces permissions seront retirées aux utilisateurs authentifiés. Les "
+"permissions retirées sont prioritaires par rapport aux permissions accordées."
-#: src/pyams_security/interfaces/__init__.py:719
+#: src/pyams_security/interfaces/__init__.py:735
+msgid "Authenticated granted permissions"
+msgstr "Permissions authentifiées accordées"
+
+#: src/pyams_security/interfaces/__init__.py:736
msgid "These permissions will be granted to authenticated users"
msgstr "Ces permissions seront attribuées à tous les utilisateurs authentifiés"
-#: src/pyams_security/interfaces/__init__.py:723
+#: src/pyams_security/interfaces/__init__.py:740
msgid "Inherit parent roles?"
msgstr "Héritage des rôles ?"
-#: src/pyams_security/interfaces/__init__.py:724
+#: src/pyams_security/interfaces/__init__.py:741
msgid "Get roles granted on parent levels"
msgstr "Disposer des rôles affectés aux niveaux parents"
-#: src/pyams_security/interfaces/__init__.py:341
+#: src/pyams_security/interfaces/__init__.py:346
msgid "Your email address is not valid!"
msgstr "Votre adresse de messagerie est incorrecte !"
-#: src/pyams_security/interfaces/__init__.py:365
-#: src/pyams_security/interfaces/__init__.py:388
+#: src/pyams_security/interfaces/__init__.py:370
+#: src/pyams_security/interfaces/__init__.py:393
msgid "You didn't confirmed your password correctly!"
msgstr "Vous n'avez pas confirmé votre mot de passe correctement !"
-#: src/pyams_security/interfaces/__init__.py:412
+#: src/pyams_security/interfaces/__init__.py:417
msgid "Given email address is not valid!"
msgstr "L'adrese de messagerie indiquée est invalide !"
-#: src/pyams_security/interfaces/__init__.py:565
+#: src/pyams_security/interfaces/__init__.py:570
msgid "You can't activate social login without selecting a social users folder"
msgstr ""
"Vous ne pouvez pas activer la connexion via les réseaux sociaux sans "
"sélectionner de dossier de stockage des utilisateurs"
-#: src/pyams_security/interfaces/__init__.py:589
+#: src/pyams_security/interfaces/__init__.py:594
msgid "You can't activate open registration without selecting a users folder"
msgstr ""
"Vous ne pouvez pas activer les fonctions d'inscription libre sans "
@@ -913,6 +946,14 @@
"Les notifications ne peuvent pas être activées si vous ne séletionnez pas un "
"outil d'envoi de messages"
+#: src/pyams_security/interfaces/profile.py:33
+msgid "Profile's avatar"
+msgstr "Avatar du profil"
+
+#: src/pyams_security/interfaces/profile.py:34
+msgid "This picture will be associated to your user profile"
+msgstr "Cette image sera associée à votre profil utilisateur"
+
#: src/pyams_security/plugin/http.py:44
msgid "HTTP Basic credentials"
msgstr "Authentification HTTP Basic"
@@ -991,5 +1032,17 @@
"Vous avez créé un nouveau compte que vous devez confirmer avant de pouvoir "
"utiliser ce service."
+#~ msgid "Security management"
+#~ msgstr "Paramètres de sécurité"
+
+#~ msgid "Security manager plug-ins"
+#~ msgstr "Modules du gestionnaire de sécurité"
+
+#~ msgid "(inherit from parent)"
+#~ msgstr "(héritée du parent)"
+
+#~ msgid "Groups list"
+#~ msgstr "Liste des groupes"
+
#~ msgid "Edit local roles"
#~ msgstr "Gestion des règles d'accès"
--- a/src/pyams_security/locales/pyams_security.pot Thu Oct 08 09:31:45 2015 +0200
+++ b/src/pyams_security/locales/pyams_security.pot Thu Oct 08 09:39:15 2015 +0200
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2015-06-01 14:47+0200\n"
+"POT-Creation-Date: 2015-09-25 16:58+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,35 +16,35 @@
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Lingua 3.10.dev0\n"
-#: ./src/pyams_security/__init__.py:33
+#: ./src/pyams_security/__init__.py:36
msgid "View public contents"
msgstr ""
-#: ./src/pyams_security/__init__.py:35
+#: ./src/pyams_security/__init__.py:38
msgid "View protected contents"
msgstr ""
-#: ./src/pyams_security/__init__.py:37
+#: ./src/pyams_security/__init__.py:40
msgid "Manage contents properties"
msgstr ""
-#: ./src/pyams_security/__init__.py:39
+#: ./src/pyams_security/__init__.py:42
msgid "View management screens"
msgstr ""
-#: ./src/pyams_security/__init__.py:41
-msgid "Manage system properties"
-msgstr ""
-
#: ./src/pyams_security/__init__.py:44
+msgid "Manage system properties"
+msgstr ""
+
+#: ./src/pyams_security/__init__.py:47
msgid "Manage security"
msgstr ""
-#: ./src/pyams_security/__init__.py:46
+#: ./src/pyams_security/__init__.py:49
msgid "Manage roles"
msgstr ""
-#: ./src/pyams_security/principal.py:53
+#: ./src/pyams_security/principal.py:57
msgid "Not logged in"
msgstr ""
@@ -59,56 +59,58 @@
msgid "Select permissions..."
msgstr ""
-#: ./src/pyams_security/zmi/utility.py:75
+#: ./src/pyams_security/zmi/utility.py:77
msgid "Security"
msgstr ""
-#: ./src/pyams_security/zmi/utility.py:84
+#: ./src/pyams_security/zmi/utility.py:86
msgid "Authentication and users directory plug-ins"
msgstr ""
-#: ./src/pyams_security/zmi/utility.py:104
+#: ./src/pyams_security/zmi/utility.py:106
msgid "See plug-in contents"
msgstr ""
-#: ./src/pyams_security/zmi/utility.py:119
-#: ./src/pyams_security/zmi/plugin/social.py:195
-#: ./src/pyams_security/zmi/plugin/social.py:328
-#: ./src/pyams_security/zmi/plugin/userfolder.py:192
-#: ./src/pyams_security/zmi/plugin/group.py:159
-#: ./src/pyams_security/interfaces/__init__.py:246
+#: ./src/pyams_security/zmi/utility.py:121
+#: ./src/pyams_security/zmi/plugin/social.py:198
+#: ./src/pyams_security/zmi/plugin/social.py:331
+#: ./src/pyams_security/zmi/plugin/userfolder.py:193
+#: ./src/pyams_security/zmi/plugin/group.py:161
+#: ./src/pyams_security/interfaces/__init__.py:251
msgid "Name"
msgstr ""
-#: ./src/pyams_security/zmi/utility.py:128
+#: ./src/pyams_security/zmi/utility.py:130
msgid "Delete plug-in"
msgstr ""
+#: ./src/pyams_security/zmi/utility.py:161
+msgid "Control panel"
+msgstr ""
+
#: ./src/pyams_security/zmi/utility.py:162
-#: ./src/pyams_security/zmi/plugin/social.py:370
-#: ./src/pyams_security/zmi/plugin/social.py:388
-#: ./src/pyams_security/zmi/plugin/social.py:443
+#: ./src/pyams_security/zmi/plugin/social.py:373
+#: ./src/pyams_security/zmi/plugin/social.py:391
+#: ./src/pyams_security/zmi/plugin/social.py:446
+#: ./src/pyams_security/zmi/plugin/userfolder.py:157
+#: ./src/pyams_security/zmi/plugin/group.py:196
msgid "Security manager"
msgstr ""
-#: ./src/pyams_security/zmi/utility.py:163
-msgid "Security manager plug-ins"
+#: ./src/pyams_security/zmi/utility.py:170
+msgid "Properties..."
msgstr ""
-#: ./src/pyams_security/zmi/utility.py:171
-msgid "Properties..."
+#: ./src/pyams_security/zmi/utility.py:183
+#: ./src/pyams_security/zmi/notification.py:60
+#: ./src/pyams_security/zmi/plugin/social.py:81
+#: ./src/pyams_security/zmi/plugin/userfolder.py:78
+#: ./src/pyams_security/zmi/plugin/group.py:74
+#: ./src/pyams_security/zmi/plugin/admin.py:65
+msgid "System security manager"
msgstr ""
#: ./src/pyams_security/zmi/utility.py:184
-#: ./src/pyams_security/zmi/notification.py:58
-#: ./src/pyams_security/zmi/plugin/social.py:79
-#: ./src/pyams_security/zmi/plugin/userfolder.py:76
-#: ./src/pyams_security/zmi/plugin/group.py:72
-#: ./src/pyams_security/zmi/plugin/admin.py:63
-msgid "System security manager"
-msgstr ""
-
-#: ./src/pyams_security/zmi/utility.py:185
msgid "Security manager properties"
msgstr ""
@@ -117,12 +119,12 @@
msgstr ""
#: ./src/pyams_security/zmi/utility.py:207
-#: ./src/pyams_security/interfaces/__init__.py:552
+#: ./src/pyams_security/interfaces/__init__.py:557
msgid "Enable social login?"
msgstr ""
#: ./src/pyams_security/zmi/utility.py:214
-#: ./src/pyams_security/interfaces/__init__.py:576
+#: ./src/pyams_security/interfaces/__init__.py:581
msgid "Enable free registration?"
msgstr ""
@@ -134,241 +136,247 @@
msgid "Given plug-in name doesn't exist!"
msgstr ""
-#: ./src/pyams_security/zmi/notification.py:45
+#: ./src/pyams_security/zmi/notification.py:46
msgid "Notifications..."
msgstr ""
-#: ./src/pyams_security/zmi/notification.py:59
+#: ./src/pyams_security/zmi/notification.py:61
msgid "Notifications properties"
msgstr ""
-#: ./src/pyams_security/zmi/security.py:46
-msgid "Access rules..."
+#: ./src/pyams_security/zmi/profile.py:42
+msgid "User profile"
msgstr ""
-#: ./src/pyams_security/zmi/security.py:71
-msgid "Security management"
+#: ./src/pyams_security/zmi/profile.py:54
+msgid "Edit user profile"
+msgstr ""
+
+#: ./src/pyams_security/zmi/profile.py:78
+msgid "Public profile"
msgstr ""
-#: ./src/pyams_security/zmi/security.py:93
-msgid "Granted roles"
+#: ./src/pyams_security/zmi/security.py:58
+msgid "Access rules"
+msgstr ""
+
+#: ./src/pyams_security/zmi/security.py:70
+msgid "Granted users roles"
msgstr ""
-#: ./src/pyams_security/zmi/security.py:83
-#: ./src/pyams_security/zmi/security.py:84
-msgid "(inherit from parent)"
+#: ./src/pyams_security/zmi/security.py:117
+msgid "Security policy..."
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:68
+#: ./src/pyams_security/zmi/security.py:128
+msgid "Update security policy"
+msgstr ""
+
+#: ./src/pyams_security/zmi/plugin/social.py:70
msgid "Add social users folder..."
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:80
+#: ./src/pyams_security/zmi/plugin/social.py:82
msgid "Add social users folder plug-in"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:122
+#: ./src/pyams_security/zmi/plugin/social.py:124
msgid "Edit social users folder plug-in properties"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:163
-#: ./src/pyams_security/zmi/plugin/userfolder.py:160
+#: ./src/pyams_security/zmi/plugin/social.py:166
msgid "Search users"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:172
-#: ./src/pyams_security/zmi/plugin/userfolder.py:169
+#: ./src/pyams_security/zmi/plugin/social.py:175
+#: ./src/pyams_security/zmi/plugin/userfolder.py:170
msgid "Search results"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:185
+#: ./src/pyams_security/zmi/plugin/social.py:188
msgid "User ID"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:205
-#: ./src/pyams_security/zmi/plugin/userfolder.py:202
-#: ./src/pyams_security/interfaces/__init__.py:257
-#: ./src/pyams_security/interfaces/__init__.py:333
+#: ./src/pyams_security/zmi/plugin/social.py:208
+#: ./src/pyams_security/zmi/plugin/userfolder.py:203
+#: ./src/pyams_security/interfaces/__init__.py:262
+#: ./src/pyams_security/interfaces/__init__.py:338
msgid "E-mail address"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:215
-#: ./src/pyams_security/interfaces/__init__.py:241
+#: ./src/pyams_security/zmi/plugin/social.py:218
+#: ./src/pyams_security/interfaces/__init__.py:246
msgid "OAuth provider name"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:225
-#: ./src/pyams_security/zmi/plugin/userfolder.py:212
-#: ./src/pyams_security/interfaces/__init__.py:281
+#: ./src/pyams_security/zmi/plugin/social.py:228
+#: ./src/pyams_security/zmi/plugin/userfolder.py:213
+#: ./src/pyams_security/interfaces/__init__.py:286
msgid "Registration date"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:248
-#: ./src/pyams_security/zmi/plugin/userfolder.py:333
+#: ./src/pyams_security/zmi/plugin/social.py:251
+#: ./src/pyams_security/zmi/plugin/userfolder.py:335
msgid "Edit user properties"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:280
+#: ./src/pyams_security/zmi/plugin/social.py:283
msgid "Social networks login"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:288
+#: ./src/pyams_security/zmi/plugin/social.py:291
msgid "Configured social networks login providers"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:318
+#: ./src/pyams_security/zmi/plugin/social.py:321
msgid "ID"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:337
+#: ./src/pyams_security/zmi/plugin/social.py:340
msgid "Delete provider"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:371
+#: ./src/pyams_security/zmi/plugin/social.py:374
msgid "Social networks login providers"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:379
+#: ./src/pyams_security/zmi/plugin/social.py:382
msgid "Add provider"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:389
+#: ./src/pyams_security/zmi/plugin/social.py:392
msgid "Add new social login provider"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:444
+#: ./src/pyams_security/zmi/plugin/social.py:447
msgid "Edit social login provider properties"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:104
-#: ./src/pyams_security/zmi/plugin/userfolder.py:101
-#: ./src/pyams_security/zmi/plugin/group.py:97
-#: ./src/pyams_security/zmi/plugin/admin.py:89
+#: ./src/pyams_security/zmi/plugin/social.py:106
+#: ./src/pyams_security/zmi/plugin/userfolder.py:103
+#: ./src/pyams_security/zmi/plugin/group.py:99
+#: ./src/pyams_security/zmi/plugin/admin.py:91
msgid "Specified prefix is already used!"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:419
+#: ./src/pyams_security/zmi/plugin/social.py:422
msgid "This provider is already defined!"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:435
+#: ./src/pyams_security/zmi/plugin/social.py:438
msgid "Social provider was created successfully"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:422
+#: ./src/pyams_security/zmi/plugin/social.py:425
msgid "This provider ID is already used!"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:475
+#: ./src/pyams_security/zmi/plugin/social.py:478
msgid "No provided provider_name argument!"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/social.py:479
+#: ./src/pyams_security/zmi/plugin/social.py:482
msgid "Given provider name doesn't exist!"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/userfolder.py:65
+#: ./src/pyams_security/zmi/plugin/userfolder.py:67
msgid "Add local users folder..."
msgstr ""
-#: ./src/pyams_security/zmi/plugin/userfolder.py:77
+#: ./src/pyams_security/zmi/plugin/userfolder.py:79
msgid "Add local users folder plug-in"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/userfolder.py:119
+#: ./src/pyams_security/zmi/plugin/userfolder.py:121
msgid "Edit local users folder plug-in properties"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/userfolder.py:182
+#: ./src/pyams_security/zmi/plugin/userfolder.py:183
#: ./src/pyams_security/views/login.py:56
msgid "Login"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/userfolder.py:228
-#: ./src/pyams_security/interfaces/__init__.py:455
-#: ./src/pyams_security/interfaces/__init__.py:458
+#: ./src/pyams_security/zmi/plugin/userfolder.py:229
+#: ./src/pyams_security/interfaces/__init__.py:460
+#: ./src/pyams_security/interfaces/__init__.py:463
msgid "Activation date"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/userfolder.py:248
+#: ./src/pyams_security/zmi/plugin/userfolder.py:249
msgid "Add user"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/userfolder.py:261
+#: ./src/pyams_security/zmi/plugin/userfolder.py:263
msgid "Add new local user"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/userfolder.py:311
+#: ./src/pyams_security/zmi/plugin/userfolder.py:313
#: ./src/pyams_security/views/userfolder.py:124
msgid "Specified login can't be used!"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/userfolder.py:322
+#: ./src/pyams_security/zmi/plugin/userfolder.py:324
msgid "User was created successfully"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/group.py:61
+#: ./src/pyams_security/zmi/plugin/group.py:63
msgid "Add local groups folder..."
msgstr ""
-#: ./src/pyams_security/zmi/plugin/group.py:73
+#: ./src/pyams_security/zmi/plugin/group.py:75
msgid "Add local groups folder plug-in"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/group.py:115
+#: ./src/pyams_security/zmi/plugin/group.py:117
msgid "Edit local groups folder plug-in properties"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/group.py:141
-msgid "Local groups"
+#: ./src/pyams_security/zmi/plugin/group.py:143
+msgid "Local groups list"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/group.py:169
-#: ./src/pyams_security/interfaces/__init__.py:499
+#: ./src/pyams_security/zmi/plugin/group.py:171
+#: ./src/pyams_security/interfaces/__init__.py:504
msgid "Description"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/group.py:199
-msgid "Groups list"
-msgstr ""
-
-#: ./src/pyams_security/zmi/plugin/group.py:212
+#: ./src/pyams_security/zmi/plugin/group.py:213
msgid "Add group"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/group.py:225
+#: ./src/pyams_security/zmi/plugin/group.py:227
msgid "Add new local group"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/group.py:281
+#: ./src/pyams_security/zmi/plugin/group.py:283
msgid "Edit group properties"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/group.py:258
+#: ./src/pyams_security/zmi/plugin/group.py:260
msgid "Specified group ID can't be used!"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/group.py:270
+#: ./src/pyams_security/zmi/plugin/group.py:272
msgid "Group was created successfully"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/admin.py:52
+#: ./src/pyams_security/zmi/plugin/admin.py:54
msgid "Add admin authentication..."
msgstr ""
-#: ./src/pyams_security/zmi/plugin/admin.py:64
+#: ./src/pyams_security/zmi/plugin/admin.py:66
msgid "Add administration authentication plug-in"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/admin.py:107
+#: ./src/pyams_security/zmi/plugin/admin.py:109
msgid "Edit administration authentication plug-in"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/admin.py:130
+#: ./src/pyams_security/zmi/plugin/admin.py:132
msgid "WARNING"
msgstr ""
-#: ./src/pyams_security/zmi/plugin/admin.py:132
+#: ./src/pyams_security/zmi/plugin/admin.py:134
msgid ""
"Before disabling plug-in, please verify that you have other administration "
"access!"
@@ -395,7 +403,7 @@
msgstr ""
#: ./src/pyams_security/views/userfolder.py:65
-#: ./src/pyams_security/views/login.py:140
+#: ./src/pyams_security/views/login.py:142
msgid "Cancel"
msgstr ""
@@ -430,14 +438,14 @@
msgstr ""
#: ./src/pyams_security/views/login.py:90
-#: ./src/pyams_security/views/login.py:149
+#: ./src/pyams_security/views/login.py:151
msgid "Please enter valid credentials to log-in"
msgstr ""
#: ./src/pyams_security/views/login.py:57
-#: ./src/pyams_security/interfaces/__init__.py:352
-#: ./src/pyams_security/interfaces/__init__.py:378
-#: ./src/pyams_security/interfaces/__init__.py:430
+#: ./src/pyams_security/interfaces/__init__.py:357
+#: ./src/pyams_security/interfaces/__init__.py:383
+#: ./src/pyams_security/interfaces/__init__.py:435
msgid "Password"
msgstr ""
@@ -446,7 +454,7 @@
msgstr ""
#: ./src/pyams_security/views/login.py:64
-#: ./src/pyams_security/views/login.py:141
+#: ./src/pyams_security/views/login.py:143
msgid "Connect"
msgstr ""
@@ -474,324 +482,344 @@
msgid "Return to home page"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:137
+#: ./src/pyams_security/interfaces/__init__.py:142
msgid "Plug-in prefix"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:138
+#: ./src/pyams_security/interfaces/__init__.py:143
msgid ""
"This prefix is mainly used by authentication plug-ins to mark principals"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:140
+#: ./src/pyams_security/interfaces/__init__.py:145
msgid "Plug-in title"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:143
+#: ./src/pyams_security/interfaces/__init__.py:148
msgid "Enabled plug-in?"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:144
+#: ./src/pyams_security/interfaces/__init__.py:149
msgid "You can choose to disable any plug-in..."
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:179
+#: ./src/pyams_security/interfaces/__init__.py:184
msgid "Admin. login"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:181
+#: ./src/pyams_security/interfaces/__init__.py:186
msgid "Admin. password"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:239
+#: ./src/pyams_security/interfaces/__init__.py:244
msgid "Internal provider ID"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:243
+#: ./src/pyams_security/interfaces/__init__.py:248
msgid "User name"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:248
-#: ./src/pyams_security/interfaces/__init__.py:343
-#: ./src/pyams_security/interfaces/__init__.py:414
+#: ./src/pyams_security/interfaces/__init__.py:253
+#: ./src/pyams_security/interfaces/__init__.py:348
+#: ./src/pyams_security/interfaces/__init__.py:419
msgid "First name"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:251
-#: ./src/pyams_security/interfaces/__init__.py:346
-#: ./src/pyams_security/interfaces/__init__.py:417
+#: ./src/pyams_security/interfaces/__init__.py:256
+#: ./src/pyams_security/interfaces/__init__.py:351
+#: ./src/pyams_security/interfaces/__init__.py:422
msgid "Last name"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:254
+#: ./src/pyams_security/interfaces/__init__.py:259
msgid "Nickname"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:260
+#: ./src/pyams_security/interfaces/__init__.py:265
msgid "Timezone"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:263
+#: ./src/pyams_security/interfaces/__init__.py:268
msgid "Country"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:266
+#: ./src/pyams_security/interfaces/__init__.py:271
msgid "City"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:269
+#: ./src/pyams_security/interfaces/__init__.py:274
msgid "Postal code"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:272
+#: ./src/pyams_security/interfaces/__init__.py:277
msgid "Locale code"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:275
+#: ./src/pyams_security/interfaces/__init__.py:280
msgid "Picture URL"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:278
+#: ./src/pyams_security/interfaces/__init__.py:283
msgid "Birth date"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:314
+#: ./src/pyams_security/interfaces/__init__.py:319
msgid ""
"Your password must contain at least three of these kinds of characters: "
"lowercase letters, uppercase letters, numbers and special characters"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:324
-#: ./src/pyams_security/interfaces/__init__.py:375
-#: ./src/pyams_security/interfaces/__init__.py:397
+#: ./src/pyams_security/interfaces/__init__.py:329
+#: ./src/pyams_security/interfaces/__init__.py:380
+#: ./src/pyams_security/interfaces/__init__.py:402
msgid "User login"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:325
+#: ./src/pyams_security/interfaces/__init__.py:330
msgid ""
"If you don't provide a custom login, your login will be your email address..."
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:334
+#: ./src/pyams_security/interfaces/__init__.py:339
msgid ""
"An email will be sent to this address to validate account activation; it will"
" be used as your future user login"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:349
-#: ./src/pyams_security/interfaces/__init__.py:422
+#: ./src/pyams_security/interfaces/__init__.py:354
+#: ./src/pyams_security/interfaces/__init__.py:427
msgid "Company name"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:353
+#: ./src/pyams_security/interfaces/__init__.py:358
msgid ""
"Password must be at least 8 characters long, and contain at least three kins "
"of characters between lowercase letters, uppercase letters, numbers and "
"special characters"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:359
-#: ./src/pyams_security/interfaces/__init__.py:382
+#: ./src/pyams_security/interfaces/__init__.py:364
+#: ./src/pyams_security/interfaces/__init__.py:387
msgid "Confirmed password"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:372
-#: ./src/pyams_security/interfaces/__init__.py:449
+#: ./src/pyams_security/interfaces/__init__.py:377
+#: ./src/pyams_security/interfaces/__init__.py:454
msgid "Activation hash"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:406
+#: ./src/pyams_security/interfaces/__init__.py:411
msgid "User email address"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:425
+#: ./src/pyams_security/interfaces/__init__.py:430
msgid "Password manager name"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:434
+#: ./src/pyams_security/interfaces/__init__.py:439
msgid "Wait confirmation?"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:435
+#: ./src/pyams_security/interfaces/__init__.py:440
msgid ""
"If 'no', user will be activated immediately without waiting email "
"confirmation"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:440
+#: ./src/pyams_security/interfaces/__init__.py:445
msgid "Self-registered profile?"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:445
+#: ./src/pyams_security/interfaces/__init__.py:450
msgid "Activation secret key"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:446
+#: ./src/pyams_security/interfaces/__init__.py:451
msgid "This private secret is used to create and check activation hash"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:450
+#: ./src/pyams_security/interfaces/__init__.py:455
msgid ""
"This hash is provided into activation message URL. Activation hash is missing"
" for local users which were registered without waiting their confirmation."
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:490
+#: ./src/pyams_security/interfaces/__init__.py:495
msgid "Group ID"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:491
+#: ./src/pyams_security/interfaces/__init__.py:496
msgid "This ID should be unique between all groups"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:495
+#: ./src/pyams_security/interfaces/__init__.py:500
msgid "Title"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:496
+#: ./src/pyams_security/interfaces/__init__.py:501
msgid "Public label of this group"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:502
+#: ./src/pyams_security/interfaces/__init__.py:507
msgid "Group principals"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:503
+#: ./src/pyams_security/interfaces/__init__.py:508
msgid "IDs of principals contained in this group"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:553
+#: ./src/pyams_security/interfaces/__init__.py:558
msgid "Enable login via social OAuth plug-ins"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:557
+#: ./src/pyams_security/interfaces/__init__.py:562
msgid "Social users folder"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:558
+#: ./src/pyams_security/interfaces/__init__.py:563
msgid "Name of folder used to store social users properties"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:567
+#: ./src/pyams_security/interfaces/__init__.py:572
msgid "Authomatic secret"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:568
+#: ./src/pyams_security/interfaces/__init__.py:573
msgid "This secret phrase is used to encrypt Authomatic cookie"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:572
+#: ./src/pyams_security/interfaces/__init__.py:577
msgid "Use social popup?"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:577
+#: ./src/pyams_security/interfaces/__init__.py:582
msgid "If 'Yes', any use will be able to create a new user account"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:581
+#: ./src/pyams_security/interfaces/__init__.py:586
msgid "Users folder"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:582
+#: ./src/pyams_security/interfaces/__init__.py:587
msgid "Name of users folder used to store registered principals"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:591
+#: ./src/pyams_security/interfaces/__init__.py:596
msgid "Credentials plug-ins"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:592
+#: ./src/pyams_security/interfaces/__init__.py:597
msgid "These plug-ins can be used to extract request credentials"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:597
+#: ./src/pyams_security/interfaces/__init__.py:602
msgid "Authentication plug-ins"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:598
+#: ./src/pyams_security/interfaces/__init__.py:603
msgid ""
"The plug-ins can be used to check extracted credentials against a local or "
"remote users database"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:603
+#: ./src/pyams_security/interfaces/__init__.py:608
msgid "Directory plug-ins"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:604
+#: ./src/pyams_security/interfaces/__init__.py:609
msgid "The plug-in can be used to extract principals information"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:678
-msgid "Provider name"
-msgstr ""
-
-#: ./src/pyams_security/interfaces/__init__.py:682
-msgid "Provider ID"
-msgstr ""
-
#: ./src/pyams_security/interfaces/__init__.py:683
+msgid "Provider name"
+msgstr ""
+
+#: ./src/pyams_security/interfaces/__init__.py:687
+msgid "Provider ID"
+msgstr ""
+
+#: ./src/pyams_security/interfaces/__init__.py:688
msgid "This value should be unique between all providers"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:687
+#: ./src/pyams_security/interfaces/__init__.py:692
msgid "Provider consumer key"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:690
+#: ./src/pyams_security/interfaces/__init__.py:695
msgid "Provider secret"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:708
+#: ./src/pyams_security/interfaces/__init__.py:713
msgid "Inherit parent security?"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:709
-msgid "Get access control entries (ACE) inherited from parent levels"
-msgstr ""
-
#: ./src/pyams_security/interfaces/__init__.py:714
-msgid "Public permissions"
+msgid "Get access control entries (ACE) inherited from parent levels"
+msgstr ""
+
+#: ./src/pyams_security/interfaces/__init__.py:719
+msgid "Public denied permissions"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:715
+#: ./src/pyams_security/interfaces/__init__.py:720
+msgid ""
+"These permissions will be denied to all users. Denied permissions take "
+"precedence over granted ones."
+msgstr ""
+
+#: ./src/pyams_security/interfaces/__init__.py:725
+msgid "Public granted permissions"
+msgstr ""
+
+#: ./src/pyams_security/interfaces/__init__.py:726
msgid "These permissions will be granted to all users"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:718
-msgid "Authenticated permissions"
+#: ./src/pyams_security/interfaces/__init__.py:729
+msgid "Authenticated denied permissions"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:719
+#: ./src/pyams_security/interfaces/__init__.py:730
+msgid ""
+"These permissions will be denied to authenticated users. Denied permissions "
+"take precedence over granted ones."
+msgstr ""
+
+#: ./src/pyams_security/interfaces/__init__.py:735
+msgid "Authenticated granted permissions"
+msgstr ""
+
+#: ./src/pyams_security/interfaces/__init__.py:736
msgid "These permissions will be granted to authenticated users"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:723
+#: ./src/pyams_security/interfaces/__init__.py:740
msgid "Inherit parent roles?"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:724
+#: ./src/pyams_security/interfaces/__init__.py:741
msgid "Get roles granted on parent levels"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:341
+#: ./src/pyams_security/interfaces/__init__.py:346
msgid "Your email address is not valid!"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:365
-#: ./src/pyams_security/interfaces/__init__.py:388
+#: ./src/pyams_security/interfaces/__init__.py:370
+#: ./src/pyams_security/interfaces/__init__.py:393
msgid "You didn't confirmed your password correctly!"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:412
+#: ./src/pyams_security/interfaces/__init__.py:417
msgid "Given email address is not valid!"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:565
+#: ./src/pyams_security/interfaces/__init__.py:570
msgid "You can't activate social login without selecting a social users folder"
msgstr ""
-#: ./src/pyams_security/interfaces/__init__.py:589
+#: ./src/pyams_security/interfaces/__init__.py:594
msgid "You can't activate open registration without selecting a users folder"
msgstr ""
@@ -866,6 +894,14 @@
msgid "Notifications can't be enabled without mailer utility"
msgstr ""
+#: ./src/pyams_security/interfaces/profile.py:33
+msgid "Profile's avatar"
+msgstr ""
+
+#: ./src/pyams_security/interfaces/profile.py:34
+msgid "This picture will be associated to your user profile"
+msgstr ""
+
#: ./src/pyams_security/plugin/http.py:44
msgid "HTTP Basic credentials"
msgstr ""
--- a/src/pyams_security/utility.py Thu Oct 08 09:31:45 2015 +0200
+++ b/src/pyams_security/utility.py Thu Oct 08 09:39:15 2015 +0200
@@ -179,6 +179,13 @@
return principal
return MissingPrincipal(id=principal_id)
+ def get_all_principals(self, principal_id):
+ principals = set()
+ if principal_id:
+ for plugin in self.get_directory_plugins():
+ principals.update(plugin.get_all_principals(principal_id))
+ return principals
+
def find_principals(self, query):
principals = set()
for plugin in self.get_directory_plugins():
@@ -272,7 +279,7 @@
manager = self._get_security_manager(request)
if manager is not None:
principals |= set(manager.effective_principals(principal_id))
- logger.debug('principals = {0}'.format(str(principals)))
+ logger.debug('principals = {0}'.format(str(sorted(principals))))
return principals
def remember(self, request, principal, **kw):