# HG changeset patch # User Thierry Florac # Date 1425133587 -3600 # Node ID 67acb59f115e08e3b1ada20bc0ec13ac15441862 # Parent 7920b5e679ec8f476096e365fb7a08a21c626a59 Updated ZMI diff -r 7920b5e679ec -r 67acb59f115e src/pyams_security/zmi/plugin/admin.py --- a/src/pyams_security/zmi/plugin/admin.py Sat Feb 28 15:25:05 2015 +0100 +++ b/src/pyams_security/zmi/plugin/admin.py Sat Feb 28 15:26:27 2015 +0100 @@ -19,7 +19,7 @@ from pyams_security.zmi.interfaces import ISecurityManagerToolbarAddingMenu from pyams_skin.interfaces import IContentHelp from pyams_skin.layer import IPyAMSLayer -from z3c.form.interfaces import DISPLAY_MODE +from z3c.form.interfaces import DISPLAY_MODE, IDataExtractedEvent from zope.component.interfaces import ISite # import packages @@ -34,9 +34,11 @@ from pyams_viewlet.viewlet import viewlet_config from pyams_zmi.form import AdminDialogEditForm, AdminDialogAddForm from pyams_zmi.layer import IAdminLayer +from pyramid.events import subscriber from pyramid.url import resource_url from pyramid.view import view_config from z3c.form import field +from zope.interface import Invalid from pyams_security import _ @@ -77,6 +79,15 @@ return resource_url(self.context, self.request, 'security-manager.html') +@subscriber(IDataExtractedEvent, form_selector=AdminAuthenticationAddForm) +def handle_new_admin_folder_data_extraction(event): + """Handle new admin authentication plug-in form data extraction""" + manager = query_utility(ISecurityManager) + prefix = event.data.get('prefix') + if prefix in manager: + event.form.widgets.errors += (Invalid(_("Specified prefix is already used!")),) + + @view_config(name='add_admin_authentication.json', context=ISite, request_type=IPyAMSLayer, permission='system.manage', renderer='json', xhr=True) class AdminAuthenticationAJAXAddForm(AJAXAddForm, AdminAuthenticationAddForm): diff -r 7920b5e679ec -r 67acb59f115e src/pyams_security/zmi/plugin/group.py --- a/src/pyams_security/zmi/plugin/group.py Sat Feb 28 15:25:05 2015 +0100 +++ b/src/pyams_security/zmi/plugin/group.py Sat Feb 28 15:26:27 2015 +0100 @@ -89,6 +89,15 @@ return absolute_url(self.context, self.request, 'security-manager.html') +@subscriber(IDataExtractedEvent, form_selector=GroupsFolderAddForm) +def handle_new_user_folder_data_extraction(event): + """Handle new groups folder plug-in form data extraction""" + manager = query_utility(ISecurityManager) + prefix = event.data.get('prefix') + if prefix in manager: + event.form.widgets.errors += (Invalid(_("Specified prefix is already used!")),) + + @view_config(name='add-groups-folder.json', context=ISite, request_type=IPyAMSLayer, permission='system.manage', renderer='json', xhr=True) class GroupsFolderAJAXAddForm(AJAXAddForm, GroupsFolderAddForm): diff -r 7920b5e679ec -r 67acb59f115e src/pyams_security/zmi/plugin/social.py --- a/src/pyams_security/zmi/plugin/social.py Sat Feb 28 15:25:05 2015 +0100 +++ b/src/pyams_security/zmi/plugin/social.py Sat Feb 28 15:26:27 2015 +0100 @@ -95,6 +95,15 @@ return absolute_url(self.context, self.request, 'security-manager.html') +@subscriber(IDataExtractedEvent, form_selector=SocialUsersFolderAddForm) +def handle_new_user_folder_data_extraction(event): + """Handle new social users folder form data extraction""" + manager = query_utility(ISecurityManager) + prefix = event.data.get('prefix') + if prefix in manager: + event.form.widgets.errors += (Invalid(_("Specified prefix is already used!")),) + + @view_config(name='add-social-users-folder.json', context=ISite, request_type=IPyAMSLayer, permission='system.manage', renderer='json', xhr=True) class SocialUsersFolderAJAXAddForm(AJAXAddForm, SocialUsersFolderAddForm): diff -r 7920b5e679ec -r 67acb59f115e src/pyams_security/zmi/plugin/userfolder.py --- a/src/pyams_security/zmi/plugin/userfolder.py Sat Feb 28 15:25:05 2015 +0100 +++ b/src/pyams_security/zmi/plugin/userfolder.py Sat Feb 28 15:26:27 2015 +0100 @@ -93,6 +93,15 @@ return absolute_url(self.context, self.request, 'security-manager.html') +@subscriber(IDataExtractedEvent, form_selector=UsersFolderAddForm) +def handle_new_user_folder_data_extraction(event): + """Handle new user folder form data extraction""" + manager = query_utility(ISecurityManager) + prefix = event.data.get('prefix') + if prefix in manager: + event.form.widgets.errors += (Invalid(_("Specified prefix is already used!")),) + + @view_config(name='add-users-folder.json', context=ISite, request_type=IPyAMSLayer, permission='system.manage', renderer='json', xhr=True) class UsersFolderAJAXAddForm(AJAXAddForm, UsersFolderAddForm):