From 0034ad1215de99fc13e9dc57bc652cfb8eeb58ae Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Tue, 4 Nov 2014 17:56:50 -0500 Subject: Use indirection to report error strings This way if CSS/Code changes we have just one place to fix. Signed-off-by: Simo Sorce Reviewed-by: Patrick Uiterwijk --- ipsilon/admin/common.py | 27 ++++++++++++++++----------- ipsilon/providers/saml2/admin.py | 29 ++++++++++++++++------------- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/ipsilon/admin/common.py b/ipsilon/admin/common.py index 0177402..af315ff 100755 --- a/ipsilon/admin/common.py +++ b/ipsilon/admin/common.py @@ -23,6 +23,11 @@ from ipsilon.util.page import admin_protect from ipsilon.util import config as pconfig +ADMIN_STATUS_OK = "success" +ADMIN_STATUS_ERROR = "danger" +ADMIN_STATUS_WARN = "warning" + + class AdminError(Exception): def __init__(self, message): super(AdminError, self).__init__(message) @@ -73,7 +78,7 @@ class AdminPluginConfig(AdminPage): if self._po.is_readonly: return self.root_with_msg( message="Configuration is marked Read-Only", - message_type="warning") + message_type=ADMIN_STATUS_WARN) message = "Nothing was modified." message_type = "info" @@ -111,10 +116,10 @@ class AdminPluginConfig(AdminPage): try: self._po.save_plugin_config(new_db_values) message = "New configuration saved." - message_type = "success" + message_type = ADMIN_STATUS_OK except Exception: # pylint: disable=broad-except message = "Failed to save data!" - message_type = "error" + message_type = ADMIN_STATUS_ERROR # Then refresh the actual objects self._po.refresh_plugin_config() @@ -149,7 +154,7 @@ class AdminPluginsOrder(AdminPage): if self._site[self.facility].is_readonly: return self.parent.root_with_msg( message="Configuration is marked Read-Only", - message_type="warning") + message_type=ADMIN_STATUS_WARN) message = "Nothing was modified." message_type = "info" @@ -178,15 +183,15 @@ class AdminPluginsOrder(AdminPage): self._site[self.facility].refresh_enabled() message = "New configuration saved." - message_type = "success" + message_type = ADMIN_STATUS_OK except ValueError, e: message = str(e) - message_type = "error" + message_type = ADMIN_STATUS_ERROR except Exception, e: # pylint: disable=broad-except message = "Failed to save data!" - message_type = "error" + message_type = ADMIN_STATUS_ERROR return self.parent.root_with_msg(message=message, message_type=message_type) @@ -259,12 +264,12 @@ class AdminPlugins(AdminPage): try: obj = self._get_plugin_obj(plugin) except AdminError, e: - return self.root_with_msg(str(e), "warning") + return self.root_with_msg(str(e), ADMIN_STATUS_WARN) if not obj.is_enabled: obj.enable() obj.save_enabled_state() msg = "Plugin %s enabled" % obj.name - return self.root_with_msg(msg, "success") + return self.root_with_msg(msg, ADMIN_STATUS_OK) enable.public_function = True @admin_protect @@ -273,12 +278,12 @@ class AdminPlugins(AdminPage): try: obj = self._get_plugin_obj(plugin) except AdminError, e: - return self.root_with_msg(str(e), "warning") + return self.root_with_msg(str(e), ADMIN_STATUS_WARN) if obj.is_enabled: obj.disable() obj.save_enabled_state() msg = "Plugin %s disabled" % obj.name - return self.root_with_msg(msg, "success") + return self.root_with_msg(msg, ADMIN_STATUS_OK) disable.public_function = True diff --git a/ipsilon/providers/saml2/admin.py b/ipsilon/providers/saml2/admin.py index dae4a47..ac9c730 100755 --- a/ipsilon/providers/saml2/admin.py +++ b/ipsilon/providers/saml2/admin.py @@ -19,6 +19,9 @@ import cherrypy from ipsilon.admin.common import AdminPage +from ipsilon.admin.common import ADMIN_STATUS_OK +from ipsilon.admin.common import ADMIN_STATUS_ERROR +from ipsilon.admin.common import ADMIN_STATUS_WARN from ipsilon.providers.saml2.provider import ServiceProvider from ipsilon.providers.saml2.provider import ServiceProviderCreator from ipsilon.providers.saml2.provider import InvalidProviderId @@ -59,7 +62,7 @@ class NewSPAdminPage(AdminPage): if 'content-type' not in cherrypy.request.headers: self._debug("Invalid request, missing content-type") message = "Malformed request" - message_type = "error" + message_type = ADMIN_STATUS_ERROR return self.form_new(message, message_type) ctype = cherrypy.request.headers['content-type'].split(';')[0] if ctype != 'multipart/form-data': @@ -70,7 +73,7 @@ class NewSPAdminPage(AdminPage): if re.search(VALID_IN_NAME, value): message = "Invalid name!" \ " Use only numbers and letters" - message_type = "error" + message_type = ADMIN_STATUS_ERROR return self.form_new(message, message_type) name = value @@ -91,7 +94,7 @@ class NewSPAdminPage(AdminPage): except Exception, e: # pylint: disable=broad-except self._debug("Failed to fetch metadata: " + repr(e)) message = "Failed to fetch metadata: " + repr(e) - message_type = "error" + message_type = ADMIN_STATUS_ERROR return self.form_new(message, message_type) if name and meta: @@ -100,21 +103,21 @@ class NewSPAdminPage(AdminPage): sp = spc.create_from_buffer(name, meta) sp_page = self.parent.add_sp(name, sp) message = "SP Successfully added" - message_type = "success" + message_type = ADMIN_STATUS_OK return sp_page.form_standard(message, message_type) except InvalidProviderId, e: message = str(e) - message_type = "error" + message_type = ADMIN_STATUS_ERROR except Exception, e: # pylint: disable=broad-except self._debug(repr(e)) message = "Failed to create Service Provider!" - message_type = "error" + message_type = ADMIN_STATUS_ERROR else: message = "A name and a metadata file must be provided" - message_type = "error" + message_type = ADMIN_STATUS_ERROR else: message = "Unauthorized" - message_type = "error" + message_type = ADMIN_STATUS_ERROR return self.form_new(message, message_type) @@ -235,16 +238,16 @@ class SPAdminPage(AdminPage): except InvalidValueFormat, e: message = str(e) - message_type = "warning" + message_type = ADMIN_STATUS_WARN return self.form_standard(message, message_type) except UnauthorizedUser, e: message = str(e) - message_type = "error" + message_type = ADMIN_STATUS_ERROR return self.form_standard(message, message_type) except Exception, e: # pylint: disable=broad-except self._debug("Error: %s" % repr(e)) message = "Internal Error" - message_type = "error" + message_type = ADMIN_STATUS_ERROR return self.form_standard(message, message_type) if len(results) > 0: @@ -263,10 +266,10 @@ class SPAdminPage(AdminPage): self.url = '%s/sp/%s' % (self.parent.url, rename[1]) self.parent.rename_sp(rename[0], rename[1]) message = "Properties successfully changed" - message_type = "success" + message_type = ADMIN_STATUS_OK except Exception: # pylint: disable=broad-except message = "Failed to save data!" - message_type = "error" + message_type = ADMIN_STATUS_ERROR return self.form_standard(message, message_type, self.url) -- cgit