Drop usage of self._debug and use self.debug instead
[cascardo/ipsilon.git] / ipsilon / providers / common.py
index dff302d..9dcfa52 100644 (file)
 
 from ipsilon.util.log import Log
 from ipsilon.util.plugin import PluginInstaller, PluginLoader
-from ipsilon.util.plugin import PluginObject, PluginConfig
+from ipsilon.util.plugin import PluginObject
+from ipsilon.util.config import ConfigHelper
 from ipsilon.util.page import Page
+from ipsilon.util.page import admin_protect
 from ipsilon.rest.common import RestPage
 import cherrypy
 
@@ -38,20 +40,20 @@ class AuthenticationError(ProviderException):
     def __init__(self, message, code):
         super(AuthenticationError, self).__init__(message)
         self.code = code
-        self._debug('%s [%s]' % (message, code))
+        self.debug('%s [%s]' % (message, code))
 
 
 class InvalidRequest(ProviderException):
 
     def __init__(self, message):
         super(InvalidRequest, self).__init__(message)
-        self._debug(message)
+        self.debug(message)
 
 
-class ProviderBase(PluginConfig, PluginObject):
+class ProviderBase(ConfigHelper, PluginObject):
 
     def __init__(self, name, path, *pargs):
-        PluginConfig.__init__(self)
+        ConfigHelper.__init__(self)
         PluginObject.__init__(self, *pargs)
         self.name = name
         self._root = None
@@ -66,7 +68,7 @@ class ProviderBase(PluginConfig, PluginObject):
         self._root = root
         # init pages and admin interfaces
         self.tree = self.get_tree(site)
-        self._debug('IdP Provider registered: %s' % self.name)
+        self.debug('IdP Provider registered: %s' % self.name)
 
     def on_enable(self):
         self._root.add_subtree(self.name, self.tree)
@@ -101,9 +103,9 @@ class ProviderPageBase(Page):
         else:
             raise cherrypy.HTTPError(405)
 
-    def _debug(self, fact):
+    def debug(self, fact):
         superfact = '%s: %s' % (self.plugin_name, fact)
-        super(ProviderPageBase, self)._debug(superfact)
+        super(ProviderPageBase, self).debug(superfact)
 
     def _audit(self, fact):
         cherrypy.log('%s: %s' % (self.plugin_name, fact))
@@ -124,6 +126,9 @@ class ProviderInstaller(object):
     def install_args(self, group):
         raise NotImplementedError
 
+    def validate_args(self, args):
+        return
+
     def configure(self, opts):
         raise NotImplementedError
 
@@ -136,14 +141,14 @@ class LoadProviders(Log):
         site[FACILITY] = plugins
 
         available = plugins.available.keys()
-        self._debug('Available providers: %s' % str(available))
+        self.debug('Available providers: %s' % str(available))
 
         for item in plugins.available:
             plugin = plugins.available[item]
             plugin.register(root, site)
 
         for item in plugins.enabled:
-            self._debug('Provider plugin in enabled list: %s' % item)
+            self.debug('Provider plugin in enabled list: %s' % item)
             if item not in plugins.available:
                 continue
             plugins.available[item].enable()
@@ -163,15 +168,19 @@ class RestProviderBase(RestPage):
         self.plugin_name = config.name
         self.cfg = config
 
+    @admin_protect
     def GET(self, *args, **kwargs):
         raise cherrypy.HTTPError(501)
 
+    @admin_protect
     def POST(self, *args, **kwargs):
         raise cherrypy.HTTPError(501)
 
+    @admin_protect
     def DELETE(self, *args, **kwargs):
         raise cherrypy.HTTPError(501)
 
+    @admin_protect
     def PUT(self, *args, **kwargs):
         raise cherrypy.HTTPError(501)
 
@@ -188,9 +197,9 @@ class RestProviderBase(RestPage):
         else:
             raise cherrypy.HTTPError(405)
 
-    def _debug(self, fact):
+    def debug(self, fact):
         superfact = '%s: %s' % (self.plugin_name, fact)
-        super(RestProviderBase, self)._debug(superfact)
+        super(RestProviderBase, self).debug(superfact)
 
     def _audit(self, fact):
         cherrypy.log('%s: %s' % (self.plugin_name, fact))