16 # import standard library |
16 # import standard library |
17 |
17 |
18 # import interfaces |
18 # import interfaces |
19 from pyams_security.interfaces import IGroupsFolderPlugin, ISecurityManager, ILocalGroup |
19 from pyams_security.interfaces import IGroupsFolderPlugin, ISecurityManager, ILocalGroup |
20 from pyams_skin.interfaces import IPageHeader, IInnerPage |
20 from pyams_skin.interfaces import IPageHeader, IInnerPage |
21 from pyams_skin.interfaces.viewlet import IToolbarViewletManager, IToolbarAddingMenu |
21 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, IWidgetTitleViewletManager |
22 from pyams_skin.layer import IPyAMSLayer |
22 from pyams_skin.layer import IPyAMSLayer |
23 from pyams_zmi.layer import IAdminLayer |
23 from pyams_zmi.layer import IAdminLayer |
24 from z3c.form.interfaces import DISPLAY_MODE, IDataExtractedEvent |
24 from z3c.form.interfaces import DISPLAY_MODE, IDataExtractedEvent |
25 from z3c.table.interfaces import IColumn, IValues |
25 from z3c.table.interfaces import IColumn, IValues |
26 from zope.component.interfaces import ISite |
26 from zope.component.interfaces import ISite |
29 from pyams_form.form import AJAXAddForm, AJAXEditForm |
29 from pyams_form.form import AJAXAddForm, AJAXEditForm |
30 from pyams_pagelet.pagelet import pagelet_config |
30 from pyams_pagelet.pagelet import pagelet_config |
31 from pyams_security.plugin.group import GroupsFolder, Group |
31 from pyams_security.plugin.group import GroupsFolder, Group |
32 from pyams_security.zmi.utility import SecurityManagerPluginsTable |
32 from pyams_security.zmi.utility import SecurityManagerPluginsTable |
33 from pyams_skin.container import ContainerView |
33 from pyams_skin.container import ContainerView |
|
34 from pyams_skin.page import DefaultPageHeaderAdapter |
34 from pyams_skin.table import BaseTable, I18nColumn |
35 from pyams_skin.table import BaseTable, I18nColumn |
35 from pyams_skin.viewlet.toolbar import ToolbarMenuItem, ToolbarAction |
36 from pyams_skin.viewlet.toolbar import ToolbarMenuItem, ToolbarAction |
36 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter |
37 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter |
37 from pyams_utils.registry import query_utility |
38 from pyams_utils.registry import query_utility |
38 from pyams_utils.url import absolute_url |
39 from pyams_utils.url import absolute_url |
136 |
137 |
137 class GroupsFolderContentsTable(BaseTable): |
138 class GroupsFolderContentsTable(BaseTable): |
138 """Groups folder contents table""" |
139 """Groups folder contents table""" |
139 |
140 |
140 id = 'groups_folder_table' |
141 id = 'groups_folder_table' |
141 title = _("Local groups") |
142 title = _("Local groups list") |
142 cssClasses = {'table': 'table table-bordered table-striped table-hover table-tight datatable'} |
143 cssClasses = {'table': 'table table-bordered table-striped table-hover table-tight datatable'} |
143 |
144 |
144 |
145 |
145 @adapter_config(context=(IGroupsFolderPlugin, IAdminLayer, GroupsFolderContentsTable), provides=IValues) |
146 @adapter_config(context=(IGroupsFolderPlugin, IAdminLayer, GroupsFolderContentsTable), provides=IValues) |
146 class GroupsFolderContentsValuesAdapter(ContextRequestViewAdapter): |
147 class GroupsFolderContentsValuesAdapter(ContextRequestViewAdapter): |
184 def __init__(self, context, request): |
185 def __init__(self, context, request): |
185 super(GroupsFolderSearchView, self).__init__(context, request) |
186 super(GroupsFolderSearchView, self).__init__(context, request) |
186 |
187 |
187 |
188 |
188 @adapter_config(context=(IGroupsFolderPlugin, IAdminLayer, GroupsFolderSearchView), provides=IPageHeader) |
189 @adapter_config(context=(IGroupsFolderPlugin, IAdminLayer, GroupsFolderSearchView), provides=IPageHeader) |
189 class GroupsFolderSearchViewHeaderAdapter(ContextRequestViewAdapter): |
190 class GroupsFolderSearchViewHeaderAdapter(DefaultPageHeaderAdapter): |
190 """Groups folder search view header adapter""" |
191 """Groups folder search view header adapter""" |
191 |
192 |
192 back_url = '#security-manager.html' |
193 back_url = '#security-manager.html' |
193 icon_class = 'fa fa-fw fa-users' |
194 icon_class = 'fa fa-fw fa-users' |
194 |
195 title = _("Security manager") |
195 @property |
196 |
196 def title(self): |
197 @property |
|
198 def subtitle(self): |
197 return self.context.title |
199 return self.context.title |
198 |
|
199 subtitle = _("Groups list") |
|
200 |
200 |
201 |
201 |
202 # |
202 # |
203 # Groups views |
203 # Groups views |
204 # |
204 # |
205 |
205 |
206 @viewlet_config(name='groups-folder.toolbar.adding', context=IGroupsFolderPlugin, |
206 @viewlet_config(name='groups-folder.toolbar.adding', context=IGroupsFolderPlugin, |
207 view=GroupsFolderContentsTable, layer=IAdminLayer, |
207 view=GroupsFolderContentsTable, layer=IAdminLayer, |
208 manager=IToolbarViewletManager, permission='system.manage') |
208 manager=IWidgetTitleViewletManager, permission='system.manage') |
209 class LocalGroupAddAction(ToolbarAction): |
209 class LocalGroupAddAction(ToolbarAction): |
210 """Groups folder adding action""" |
210 """Groups folder adding action""" |
211 |
211 |
212 label = _("Add group") |
212 label = _("Add group") |
213 url = 'add-group.html' |
213 url = 'add-group.html' |