src/pyams_security/zmi/plugin/userfolder.py
changeset 2 94e76f8e9828
parent 0 f04e1d0a0723
child 8 67acb59f115e
--- a/src/pyams_security/zmi/plugin/userfolder.py	Sun Feb 22 14:52:32 2015 +0100
+++ b/src/pyams_security/zmi/plugin/userfolder.py	Mon Feb 23 17:55:05 2015 +0100
@@ -18,11 +18,10 @@
 
 # import interfaces
 from pyams_security.interfaces import IUsersFolderPlugin, ISecurityManager, ILocalUser, IUserRegistrationInfo
-from pyams_security.zmi.interfaces import ISecurityManagerToolbarAddingMenu, ISecurityManagerMenu
-from pyams_skin.interfaces.viewlet import IMenuItem, IToolbarViewletManager
+from pyams_security.zmi.interfaces import ISecurityManagerToolbarAddingMenu
+from pyams_skin.interfaces.viewlet import IToolbarViewletManager
 from pyams_skin.interfaces import IPageHeader
 from pyams_skin.layer import IPyAMSLayer
-from pyams_utils.interfaces.data import IObjectData
 from pyams_zmi.layer import IAdminLayer
 from z3c.form.interfaces import DISPLAY_MODE, IDataExtractedEvent
 from z3c.table.interfaces import IColumn
@@ -36,7 +35,7 @@
 from pyams_security.plugin.userfolder import UsersFolder, User
 from pyams_security.zmi.utility import SecurityManagerPluginsTable
 from pyams_skin.skin import apply_skin
-from pyams_skin.viewlet.menu import MenuItem
+from pyams_skin.table import I18nColumn
 from pyams_skin.viewlet.toolbar import ToolbarMenuItem, ToolbarAction
 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter
 from pyams_utils.date import format_datetime
@@ -49,11 +48,15 @@
 from pyramid.view import view_config
 from z3c.form import field
 from z3c.table.column import GetAttrColumn
-from zope.interface import implementer, Interface, Invalid
+from zope.interface import Invalid
 
 from pyams_security import _
 
 
+#
+# Users folder views
+#
+
 @viewlet_config(name='add-users-folder.menu', context=ISite, layer=IAdminLayer,
                 view=SecurityManagerPluginsTable, manager=ISecurityManagerToolbarAddingMenu,
                 permission='system.manage', weight=10)
@@ -77,7 +80,7 @@
 
     fields = field.Fields(IUsersFolderPlugin).omit('__name__', '__parent__')
     ajax_handler = 'add-users-folder.json'
-    edit_permission = None
+    edit_permission = 'system.manage'
 
     def create(self, data):
         return UsersFolder()
@@ -123,19 +126,9 @@
     """Users folder plug-in edit form, AJAX handler"""
 
 
-@adapter_config(name='security.menu', context=(IUsersFolderPlugin, IAdminLayer, Interface, ISecurityManagerMenu),
-                provides=IMenuItem)
-@implementer(IObjectData)
-class UsersFolderContentsMenu(MenuItem):
-    """Users folder contents menu"""
-    
-    url = 'contents.html'
-    object_data = {'ams-target': '#content'}
-
-    @property
-    def label(self):
-        return self.context.title
-    
+#
+# Users folder search views
+#
 
 @pagelet_config(name='search.html', context=IUsersFolderPlugin, layer=IPyAMSLayer, permission='system.view')
 class UsersFolderSearchView(AdminView, SearchView):
@@ -149,6 +142,7 @@
 class UsersFolderSearchViewHeaderAdapter(ContextRequestViewAdapter):
     """Users folder search view header adapter"""
 
+    back_url = '#security-manager.html'
     icon_class = 'fa fa-fw fa-user'
 
     @property
@@ -174,49 +168,37 @@
 
 @adapter_config(name='login', context=(IUsersFolderPlugin, IAdminLayer, UsersFolderSearchResultsView),
                 provides=IColumn)
-class LoginColumn(GetAttrColumn):
+class LoginColumn(I18nColumn, GetAttrColumn):
     """Users login column"""
 
     _header = _("Login")
     attrName = 'login'
     weight = 5
 
-    @property
-    def header(self):
-        return self.request.localizer.translate(self._header)
-
 
 @adapter_config(name='name', context=(IUsersFolderPlugin, IAdminLayer, UsersFolderSearchResultsView),
                 provides=IColumn)
-class NameColumn(GetAttrColumn):
+class NameColumn(I18nColumn, GetAttrColumn):
     """Users name column"""
 
     _header = _("Name")
     attrName = 'title'
     weight = 10
 
-    @property
-    def header(self):
-        return self.request.localizer.translate(self._header)
-
 
 @adapter_config(name='email', context=(IUsersFolderPlugin, IAdminLayer, UsersFolderSearchResultsView),
                 provides=IColumn)
-class EmailColumn(GetAttrColumn):
+class EmailColumn(I18nColumn, GetAttrColumn):
     """Users email column"""
 
     _header = _("E-mail address")
     attrName = 'email'
     weight = 20
 
-    @property
-    def header(self):
-        return self.request.localizer.translate(self._header)
-
 
 @adapter_config(name='registration_date', context=(IUsersFolderPlugin, IAdminLayer, UsersFolderSearchResultsView),
                 provides=IColumn)
-class RegistrationDateColumn(GetAttrColumn):
+class RegistrationDateColumn(I18nColumn, GetAttrColumn):
     """Users registration date column"""
 
     _header = _("Registration date")
@@ -229,14 +211,10 @@
         else:
             return '--'
 
-    @property
-    def header(self):
-        return self.request.localizer.translate(self._header)
-
 
 @adapter_config(name='activation_date', context=(IUsersFolderPlugin, IAdminLayer, UsersFolderSearchResultsView),
                 provides=IColumn)
-class ConfirmationDateColumn(GetAttrColumn):
+class ConfirmationDateColumn(I18nColumn, GetAttrColumn):
     """Users activation date column"""
 
     _header = _("Activation date")
@@ -248,15 +226,15 @@
         else:
             return '--'
 
-    @property
-    def header(self):
-        return self.request.localizer.translate(self._header)
 
+#
+# Users views
+#
 
 @viewlet_config(name='users-folder.toolbar.adding', context=IUsersFolderPlugin,
                 view=UsersFolderSearchView.search_form_factory, layer=IAdminLayer,
                 manager=IToolbarViewletManager, permission='system.manage')
-class UsersFolderAddAction(ToolbarAction):
+class LocalUserAddAction(ToolbarAction):
     """Users folder adding action"""
 
     label = _("Add user")