Changeset 70

Show
Ignore:
Timestamp:
07/18/05 08:04:57 (3 years ago)
Author:
athomas
Message:

AdminConsoleProviderPatch:

  • Moved !IAdminConsoleProvider extension implementations into distinct classes.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • adminconsoleproviderpatch/trunk/admin-provider-refactor.diff

    r69 r70  
    1111 class MyLinkResolver(Component): 
    1212     """ 
    13 @@ -35,7 +36,7 @@ 
    14   
    15   
    16  class TicketSystem(Component): 
    17 -    implements(IPermissionRequestor, IWikiSyntaxProvider) 
    18 +    implements(IPermissionRequestor, IWikiSyntaxProvider, IAdminConsoleProvider) 
    19   
    20      # Public API 
    21   
    22 @@ -168,4 +169,270 @@ 
     13@@ -168,4 +169,276 @@ 
    2314             return '<a class="missing ticket" href="%s" rel="nofollow">%s</a>' \ 
    2415                    % (formatter.href.ticket(target), label) 
    2516  
    2617-     
     18+ 
     19+class TicketAdminConsole(Component): 
     20+    """ Provides trac-admin with ticket related commands """ 
     21+ 
    2722+    # IAdminConsoleProvider methods 
     23+    implements(IAdminConsoleProvider) 
    2824+ 
    2925+    def get_console_commands(self, tracadm): 
     
    292288+        rows = self.db_query("SELECT name FROM version") 
    293289+        return [row[0] for row in rows] 
     290+ 
    294291Index: trac/Milestone.py 
    295292=================================================================== 
     
    306303  
    307304     def __init__(self, env, name=None, db=None): 
    308 @@ -252,7 +252,7 @@ 
    309  class MilestoneModule(Component): 
    310   
    311      implements(INavigationContributor, IPermissionRequestor, IRequestHandler, 
    312 -               ITimelineEventProvider, IWikiSyntaxProvider) 
    313 +               ITimelineEventProvider, IWikiSyntaxProvider, IAdminConsoleProvider) 
    314   
    315      # INavigationContributor methods 
    316   
    317 @@ -465,3 +465,85 @@ 
     305@@ -465,3 +465,91 @@ 
    318306     def _format_link(self, formatter, ns, name, label): 
    319307         return '<a class="milestone" href="%s">%s</a>' \ 
    320308                % (formatter.href.milestone(name), label) 
     309+ 
     310+ 
     311+class MilestoneAdminConsole(Component): 
     312+    """ Provide trac-admin with commands for manipulating milestones """ 
     313+ 
     314+    implements(IAdminConsoleProvider) 
    321315+ 
    322316+    # IAdminConsoleProvider methods 
     
    12751269            'IPermissionGroupProvider', 'PermissionError', 'PermissionSystem'] 
    12761270  
    1277 @@ -80,7 +81,7 @@ 
    1278  class PermissionSystem(Component): 
    1279      """Sub-system that manages user permissions.""" 
    1280   
    1281 -    implements(IPermissionRequestor) 
    1282 +    implements(IPermissionRequestor, IAdminConsoleProvider) 
    1283   
    1284      requestors = ExtensionPoint(IPermissionRequestor) 
    1285      stores = ExtensionPoint(IPermissionStore) 
    1286 @@ -165,6 +166,88 @@ 
     1271@@ -165,6 +166,7 @@ 
    12871272                     actions.append(action) 
    12881273         return [('TRAC_ADMIN', actions)] 
    12891274  
     1275+ 
     1276     # Internal methods 
     1277  
     1278     def _get_store(self): 
     1279@@ -178,6 +180,8 @@ 
     1280     store = property(fget=lambda self: self._get_store()) 
     1281  
     1282  
     1283+ 
     1284+ 
     1285 class IPermissionGroupProvider(Interface): 
     1286     """ 
     1287     Extension point interface for components that provide information about user 
     1288@@ -289,3 +293,90 @@ 
     1289  
     1290     def permissions(self): 
     1291         return self.perms.keys() 
     1292+ 
     1293+ 
     1294+class PermissionAdminConsole(Component): 
     1295+    """ Provides trac-admin permission commands """ 
     1296+ 
     1297+    implements(IAdminConsoleProvider) 
     1298+ 
    12901299+    # IAdminConsoleProvider methods 
    12911300+ 
     
    13681377+            sql += " WHERE " + " AND ".join(clauses) 
    13691378+        self.tracadm.db_update(sql) 
    1370 + 
    1371 + 
    1372      # Internal methods 
    1373   
    1374      def _get_store(self): 
    13751379Index: trac/wiki/api.py 
    13761380=================================================================== 
     
    13891393     """ 
    13901394     Extension point interface for components that should get notified about the 
    1391 @@ -83,13 +85,11 @@ 
     1395@@ -83,8 +85,6 @@ 
    13921396         """ 
    13931397         Return an iterable over (namespace, formatter) tuples. 
     
    13981402     """ 
    13991403     Represents the wiki system. 
    1400      """ 
    1401 -    implements(IWikiChangeListener, IWikiSyntaxProvider) 
    1402 +    implements(IWikiChangeListener, IWikiSyntaxProvider, IAdminConsoleProvider) 
    1403   
    1404      change_listeners = ExtensionPoint(IWikiChangeListener) 
    1405      macro_providers = ExtensionPoint(IWikiMacroProvider) 
    1406 @@ -158,3 +158,148 @@ 
     1404@@ -158,3 +158,154 @@ 
    14071405             return '<a class="wiki" href="%s">%s</a>' \ 
    14081406                    % (formatter.href.wiki(page) + anchor, label) 
    14091407  
     1408+ 
     1409+class WikiAdminConsole(Component): 
     1410+    """ Provide trac-admin with wiki commands """ 
     1411+     
     1412+    implements(IAdminConsoleProvider) 
     1413+ 
    14101414+    # IAdminConsoleProvider methods 
    14111415+