From: Simo Sorce Date: Thu, 27 Mar 2014 16:56:28 +0000 (-0400) Subject: Add generic support for IdP plugin admin pages X-Git-Tag: v0.2.2~49 X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=commitdiff_plain;h=7b56b1311ba0c730fa884c75ccf15dfbf996ebd8 Add generic support for IdP plugin admin pages Signed-off-by: Simo Sorce --- diff --git a/ipsilon/admin/providers.py b/ipsilon/admin/providers.py index 26e96a7..1a2df7c 100755 --- a/ipsilon/admin/providers.py +++ b/ipsilon/admin/providers.py @@ -36,7 +36,10 @@ class ProviderPlugins(Page): for plugin in self._site[FACILITY]['available']: cherrypy.log.error('Admin provider plugin: %s' % plugin) obj = self._site[FACILITY]['available'][plugin] - self.__dict__[plugin] = AdminPluginPage(obj, self) + page = AdminPluginPage(obj, self._site, self) + if hasattr(obj, 'admin'): + obj.admin.mount(page) + self.add_subtree(plugin, page) def root_with_msg(self, message=None, message_type=None): plugins = self._site[FACILITY] diff --git a/ipsilon/providers/common.py b/ipsilon/providers/common.py index 8e62cbe..f9c1311 100755 --- a/ipsilon/providers/common.py +++ b/ipsilon/providers/common.py @@ -43,6 +43,7 @@ class ProviderBase(PluginObject): super(ProviderBase, self).__init__() self.name = name self.path = path + self.admin = None def _debug(self, fact): if cherrypy.config.get('debug', False): diff --git a/templates/admin/providers.html b/templates/admin/providers.html index 18445b6..fbeb54d 100644 --- a/templates/admin/providers.html +++ b/templates/admin/providers.html @@ -10,6 +10,9 @@ {% if available[p] in enabled %} Disable Configure + {% if available[p].admin %} + Administer + {% endif %} {% else %} Enable {% endif %}