X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=ipsilon%2Fproviders%2Fcommon.py;h=6bcfef8419747405ec8541d561e97f6e4a1861a4;hp=b1eab1a02fa87f5436d7ecb558bd102a2d79628a;hb=e841faf4a5e729aff8831ef72dab41adb51d6cf0;hpb=0464f1403990d3bfd85cd471f6676e70b1e81648 diff --git a/ipsilon/providers/common.py b/ipsilon/providers/common.py index b1eab1a..6bcfef8 100755 --- a/ipsilon/providers/common.py +++ b/ipsilon/providers/common.py @@ -17,13 +17,14 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +from ipsilon.util.log import Log from ipsilon.util.plugin import PluginLoader, PluginObject from ipsilon.util.plugin import PluginInstaller from ipsilon.util.page import Page import cherrypy -class ProviderException(Exception): +class ProviderException(Exception, Log): def __init__(self, message): super(ProviderException, self).__init__(message) @@ -32,10 +33,6 @@ class ProviderException(Exception): def __str__(self): return repr(self.message) - def _debug(self, fact): - if cherrypy.config.get('debug', False): - cherrypy.log('%s: %s' % (self.__class__.__name__, fact)) - class ProviderBase(PluginObject): @@ -44,11 +41,11 @@ class ProviderBase(PluginObject): self.name = name self.path = path self.tree = None - self.admin = None - def _debug(self, fact): - if cherrypy.config.get('debug', False): - cherrypy.log(fact) + def on_enable(self): + # this one does nothing + # derived classes can override with custom behavior + return def get_tree(self, site): raise NotImplementedError @@ -90,6 +87,8 @@ class ProviderBase(PluginObject): self.set_config_value('enabled', '1') self.save_plugin_config(FACILITY) + + self.on_enable() self._debug('IdP Provider enabled: %s' % self.name) def disable(self, site): @@ -136,7 +135,7 @@ class ProviderPageBase(Page): FACILITY = 'provider_config' -class LoadProviders(object): +class LoadProviders(Log): def __init__(self, root, site): loader = PluginLoader(LoadProviders, FACILITY, 'IdpProvider') @@ -151,10 +150,6 @@ class LoadProviders(object): plugin = providers['available'][item] plugin.register(site) - def _debug(self, fact): - if cherrypy.config.get('debug', False): - cherrypy.log(fact) - class ProvidersInstall(object):