diff options
Diffstat (limited to 'ipsilon/admin/providers.py')
-rwxr-xr-x | ipsilon/admin/providers.py | 87 |
1 files changed, 6 insertions, 81 deletions
diff --git a/ipsilon/admin/providers.py b/ipsilon/admin/providers.py index 06e5f54..ddba535 100755 --- a/ipsilon/admin/providers.py +++ b/ipsilon/admin/providers.py @@ -1,89 +1,14 @@ #!/usr/bin/python # -# Copyright (C) 2014 Simo Sorce <simo@redhat.com> -# -# see file 'COPYING' for use and warranty information -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - +# Copyright (C) 2014 Ipsilon Contributors see COPYING for license -import cherrypy -from ipsilon.util.page import admin_protect +from ipsilon.admin.common import AdminPlugins from ipsilon.providers.common import FACILITY -from ipsilon.admin.common import AdminPluginConfig -from ipsilon.admin.common import AdminPage -class ProviderPlugins(AdminPage): +class ProviderPlugins(AdminPlugins): def __init__(self, site, parent): - super(ProviderPlugins, self).__init__(site) - self._master = parent + super(ProviderPlugins, self).__init__('providers', site, parent, + FACILITY, ordered=False) self.title = 'Identity Providers' - self.url = '%s/providers' % parent.url - self.facility = FACILITY - parent.add_subtree('providers', self) - - for plugin in self._site[FACILITY]['available']: - cherrypy.log.error('Admin provider plugin: %s' % plugin) - obj = self._site[FACILITY]['available'][plugin] - page = AdminPluginConfig(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] - enabled_plugins = [] - for item in plugins['available']: - plugin = plugins['available'][item] - if plugin.is_enabled: - enabled_plugins.append(item) - return self._template('admin/providers.html', title=self.title, - baseurl=self.url, - message=message, - message_type=message_type, - available=plugins['available'], - enabled=enabled_plugins, - menu=self._master.menu) - - def root(self, *args, **kwargs): - return self.root_with_msg() - - @admin_protect - def enable(self, plugin): - msg = None - plugins = self._site[FACILITY] - if plugin not in plugins['available']: - msg = "Unknown plugin %s" % plugin - return self.root_with_msg(msg, "error") - obj = plugins['available'][plugin] - if not obj.is_enabled: - obj.enable(self._site) - msg = "Plugin %s enabled" % obj.name - return self.root_with_msg(msg, "success") - enable.public_function = True - - @admin_protect - def disable(self, plugin): - msg = None - plugins = self._site[FACILITY] - if plugin not in plugins['available']: - msg = "Unknown plugin %s" % plugin - return self.root_with_msg(msg, "error") - obj = plugins['available'][plugin] - if obj.is_enabled: - obj.disable(self._site) - msg = "Plugin %s disabled" % obj.name - return self.root_with_msg(msg, "success") - disable.public_function = True + self.template = 'admin/providers.html' |