From 7b56b1311ba0c730fa884c75ccf15dfbf996ebd8 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Thu, 27 Mar 2014 12:56:28 -0400 Subject: [PATCH] Add generic support for IdP plugin admin pages Signed-off-by: Simo Sorce --- ipsilon/admin/providers.py | 5 ++++- ipsilon/providers/common.py | 1 + templates/admin/providers.html | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) 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 %} -- 2.20.1