src/pyams_security/zmi/plugin/userfolder.py
changeset 42 07229ac2497b
parent 26 1a7d6f305943
child 54 59683c264d94
equal deleted inserted replaced
41:905e30f5467b 42:07229ac2497b
    15 
    15 
    16 # import standard library
    16 # import standard library
    17 from datetime import datetime
    17 from datetime import datetime
    18 
    18 
    19 # import interfaces
    19 # import interfaces
       
    20 from pyams_pagelet.interfaces import PageletCreatedEvent
    20 from pyams_security.interfaces import IUsersFolderPlugin, ISecurityManager, ILocalUser, IUserRegistrationInfo
    21 from pyams_security.interfaces import IUsersFolderPlugin, ISecurityManager, ILocalUser, IUserRegistrationInfo
    21 from pyams_skin.interfaces.viewlet import IToolbarViewletManager, IToolbarAddingMenu
    22 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, IWidgetTitleViewletManager
    22 from pyams_skin.interfaces import IPageHeader
    23 from pyams_skin.interfaces import IPageHeader
    23 from pyams_skin.layer import IPyAMSLayer
    24 from pyams_skin.layer import IPyAMSLayer
    24 from pyams_zmi.layer import IAdminLayer
    25 from pyams_zmi.layer import IAdminLayer
    25 from z3c.form.interfaces import DISPLAY_MODE, IDataExtractedEvent
    26 from z3c.form.interfaces import DISPLAY_MODE, IDataExtractedEvent
    26 from z3c.table.interfaces import IColumn
    27 from z3c.table.interfaces import IColumn
    31 from pyams_form.form import AJAXAddForm, AJAXEditForm
    32 from pyams_form.form import AJAXAddForm, AJAXEditForm
    32 from pyams_form.search import SearchView, SearchResultsView
    33 from pyams_form.search import SearchView, SearchResultsView
    33 from pyams_pagelet.pagelet import pagelet_config
    34 from pyams_pagelet.pagelet import pagelet_config
    34 from pyams_security.plugin.userfolder import UsersFolder, User
    35 from pyams_security.plugin.userfolder import UsersFolder, User
    35 from pyams_security.zmi.utility import SecurityManagerPluginsTable
    36 from pyams_security.zmi.utility import SecurityManagerPluginsTable
    36 from pyams_skin.skin import apply_skin
    37 from pyams_skin.page import DefaultPageHeaderAdapter
    37 from pyams_skin.table import I18nColumn
    38 from pyams_skin.table import I18nColumn
    38 from pyams_skin.viewlet.toolbar import ToolbarMenuItem, ToolbarAction
    39 from pyams_skin.viewlet.toolbar import ToolbarMenuItem, ToolbarAction
    39 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter
    40 from pyams_utils.adapter import adapter_config
    40 from pyams_utils.date import format_datetime
    41 from pyams_utils.date import format_datetime
    41 from pyams_utils.registry import query_utility
    42 from pyams_utils.registry import query_utility
    42 from pyams_utils.url import absolute_url
    43 from pyams_utils.url import absolute_url
    43 from pyams_viewlet.viewlet import viewlet_config
    44 from pyams_viewlet.viewlet import viewlet_config
    44 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm
    45 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm
   145     def __init__(self, context, request):
   146     def __init__(self, context, request):
   146         super(UsersFolderSearchView, self).__init__(context, request)
   147         super(UsersFolderSearchView, self).__init__(context, request)
   147 
   148 
   148 
   149 
   149 @adapter_config(context=(IUsersFolderPlugin, IAdminLayer, UsersFolderSearchView), provides=IPageHeader)
   150 @adapter_config(context=(IUsersFolderPlugin, IAdminLayer, UsersFolderSearchView), provides=IPageHeader)
   150 class UsersFolderSearchViewHeaderAdapter(ContextRequestViewAdapter):
   151 class UsersFolderSearchViewHeaderAdapter(DefaultPageHeaderAdapter):
   151     """Users folder search view header adapter"""
   152     """Users folder search view header adapter"""
   152 
   153 
   153     back_url = '#security-manager.html'
   154     back_url = '#security-manager.html'
   154     icon_class = 'fa fa-fw fa-user'
   155     icon_class = 'fa fa-fw fa-user'
       
   156     title = _("Security manager")
   155 
   157 
   156     @property
   158     @property
   157     def title(self):
   159     def subtitle(self):
   158         return self.context.title
   160         return self.context.title
   159 
       
   160     subtitle = _("Search users")
       
   161 
   161 
   162 
   162 
   163 @view_config(name='search-results.html', context=IUsersFolderPlugin, request_type=IPyAMSLayer,
   163 @view_config(name='search-results.html', context=IUsersFolderPlugin, request_type=IPyAMSLayer,
   164              permission='system.view')
   164              permission='system.view')
   165 class UsersFolderSearchResultsView(AdminView, SearchResultsView):
   165 class UsersFolderSearchResultsView(AdminView, SearchResultsView):
   169     title = _("Search results")
   169     title = _("Search results")
   170     cssClasses = {'table': 'table table-bordered table-striped table-hover table-tight datatable'}
   170     cssClasses = {'table': 'table table-bordered table-striped table-hover table-tight datatable'}
   171 
   171 
   172     def __init__(self, context, request):
   172     def __init__(self, context, request):
   173         super(UsersFolderSearchResultsView, self).__init__(context, request)
   173         super(UsersFolderSearchResultsView, self).__init__(context, request)
   174         apply_skin(self.request, 'PyAMS admin skin')
   174         request.registry.notify(PageletCreatedEvent(self))
   175 
   175 
   176 
   176 
   177 @adapter_config(name='login', context=(IUsersFolderPlugin, IAdminLayer, UsersFolderSearchResultsView),
   177 @adapter_config(name='login', context=(IUsersFolderPlugin, IAdminLayer, UsersFolderSearchResultsView),
   178                 provides=IColumn)
   178                 provides=IColumn)
   179 class LoginColumn(I18nColumn, GetAttrColumn):
   179 class LoginColumn(I18nColumn, GetAttrColumn):
   239 # Users views
   239 # Users views
   240 #
   240 #
   241 
   241 
   242 @viewlet_config(name='users-folder.toolbar.adding', context=IUsersFolderPlugin,
   242 @viewlet_config(name='users-folder.toolbar.adding', context=IUsersFolderPlugin,
   243                 view=UsersFolderSearchView.search_form_factory, layer=IAdminLayer,
   243                 view=UsersFolderSearchView.search_form_factory, layer=IAdminLayer,
   244                 manager=IToolbarViewletManager, permission='system.manage')
   244                 manager=IWidgetTitleViewletManager, permission='system.manage')
   245 class LocalUserAddAction(ToolbarAction):
   245 class LocalUserAddAction(ToolbarAction):
   246     """Users folder adding action"""
   246     """Users folder adding action"""
   247 
   247 
   248     label = _("Add user")
   248     label = _("Add user")
   249     url = 'add-user.html'
   249     url = 'add-user.html'