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


Reply via email to