return repr(self.message)
+class AuthenticationError(ProviderException):
+
+ def __init__(self, message, code):
+ super(AuthenticationError, self).__init__(message)
+ self.code = code
+ self._debug('%s [%s]' % (message, code))
+
+
+class InvalidRequest(ProviderException):
+
+ def __init__(self, message):
+ super(InvalidRequest, self).__init__(message)
+ self._debug(message)
+
+
class ProviderBase(PluginObject):
def __init__(self, name, path):
self.name = name
self.path = path
self.tree = None
- self.admin = None
+
+ def on_enable(self):
+ # this one does nothing
+ # derived classes can override with custom behavior
+ return
def get_tree(self, site):
raise NotImplementedError
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):
raise cherrypy.HTTPError(501)
def root(self, *args, **kwargs):
- op = getattr(self, cherrypy.request.method, self.GET)
+ method = cherrypy.request.method
+
+ preop = getattr(self, 'pre_%s' % method, None)
+ if preop and callable(preop):
+ preop(*args, **kwargs)
+
+ op = getattr(self, method, self.GET)
if callable(op):
return op(*args, **kwargs)
else: