Author: matevz
Date: Thu Mar 28 14:58:26 2013
New Revision: 1462137
URL: http://svn.apache.org/r1462137
Log:
Adjust admin panels for global/scoped views
Modified:
bloodhound/branches/bep_0003_multiproduct/trac/trac/admin/web_ui.py
bloodhound/branches/bep_0003_multiproduct/trac/trac/ticket/admin.py
Modified: bloodhound/branches/bep_0003_multiproduct/trac/trac/admin/web_ui.py
URL:
http://svn.apache.org/viewvc/bloodhound/branches/bep_0003_multiproduct/trac/trac/admin/web_ui.py?rev=1462137&r1=1462136&r2=1462137&view=diff
==============================================================================
--- bloodhound/branches/bep_0003_multiproduct/trac/trac/admin/web_ui.py
(original)
+++ bloodhound/branches/bep_0003_multiproduct/trac/trac/admin/web_ui.py Thu Mar
28 14:58:26 2013
@@ -49,6 +49,11 @@ try:
except ImportError:
IAdminPageProvider = None
+try:
+ from acct_mgr.admin import AccountManagerAdminPanel
+except:
+ AccountManagerAdminPanel = None
+
class AdminModule(Component):
"""Web administration interface provider and panel manager."""
@@ -166,10 +171,17 @@ class AdminModule(Component):
providers = {}
for provider in self.panel_providers:
- p = list(provider.get_admin_panels(req) or [])
- for panel in p:
- providers[(panel[0], panel[2])] = provider
- panels += p
+ add_provider = True
+ if AccountManagerAdminPanel is not None and \
+ isinstance(provider, AccountManagerAdminPanel) and \
+ getattr(self.env, 'parent', None):
+ add_provider = False
+
+ if add_provider:
+ p = list(provider.get_admin_panels(req) or [])
+ for panel in p:
+ providers[(panel[0], panel[2])] = provider
+ panels += p
# Add panels contributed by legacy WebAdmin plugins
if IAdminPageProvider:
@@ -264,10 +276,12 @@ class LoggingAdminPanel(Component):
# IAdminPanelProvider methods
def get_admin_panels(self, req):
- if 'TRAC_ADMIN' in req.perm:
+ if 'TRAC_ADMIN' in req.perm and not getattr(self.env, 'parent', None):
yield ('general', _('General'), 'logging', _('Logging'))
def render_admin_panel(self, req, cat, page, path_info):
+ if getattr(self.env, 'parent', None):
+ raise PermissionError()
log_type = self.env.log_type
log_level = self.env.log_level
log_file = self.env.log_file
Modified: bloodhound/branches/bep_0003_multiproduct/trac/trac/ticket/admin.py
URL:
http://svn.apache.org/viewvc/bloodhound/branches/bep_0003_multiproduct/trac/trac/ticket/admin.py?rev=1462137&r1=1462136&r2=1462137&view=diff
==============================================================================
--- bloodhound/branches/bep_0003_multiproduct/trac/trac/ticket/admin.py
(original)
+++ bloodhound/branches/bep_0003_multiproduct/trac/trac/ticket/admin.py Thu Mar
28 14:58:26 2013
@@ -45,8 +45,13 @@ class TicketAdminPanel(Component):
def get_admin_panels(self, req):
if 'TICKET_ADMIN' in req.perm:
- yield ('ticket', _('Ticket System'), self._type,
- gettext(self._label[1]))
+ # in global scope show only products
+ # in local scope everything but products
+ parent = getattr(self.env, 'parent', None)
+ if (parent is None and self._type == 'products') or \
+ (parent and self._type != 'products'):
+ yield ('ticket', _('Ticket System'), self._type,
+ gettext(self._label[1]))
def render_admin_panel(self, req, cat, page, version):
req.perm.require('TICKET_ADMIN')