--- 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")