diff options
author | Simo Sorce <simo@redhat.com> | 2014-10-06 22:48:07 -0400 |
---|---|---|
committer | Patrick Uiterwijk <puiterwijk@redhat.com> | 2014-10-07 16:48:31 +0200 |
commit | 3d38500a756d26294956c53bdcc82313a8bbfc55 (patch) | |
tree | fc66b738d180d888a738aff346e92be2c052f2c7 | |
parent | 049e2dfb2edf97d32f66fa97ee04bc8ccad44df8 (diff) | |
download | ipsilon-3d38500a756d26294956c53bdcc82313a8bbfc55.tar.gz ipsilon-3d38500a756d26294956c53bdcc82313a8bbfc55.tar.xz ipsilon-3d38500a756d26294956c53bdcc82313a8bbfc55.zip |
Add AdminPage abstraction on top of util.Page
This is to allow different default headers between Admin pages and
other pages.
In particular we set no-caching headers to all admin pages to force
browsers to refresh as often as possible.
Signed-off-by: Simo Sorce <simo@redhat.com>
Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
-rwxr-xr-x | ipsilon/admin/common.py | 15 | ||||
-rwxr-xr-x | ipsilon/admin/info.py | 6 | ||||
-rwxr-xr-x | ipsilon/admin/login.py | 6 | ||||
-rwxr-xr-x | ipsilon/admin/providers.py | 4 | ||||
-rwxr-xr-x | ipsilon/providers/saml2/admin.py | 12 | ||||
-rwxr-xr-x | ipsilon/providers/saml2idp.py | 4 |
6 files changed, 29 insertions, 18 deletions
diff --git a/ipsilon/admin/common.py b/ipsilon/admin/common.py index b8572e3..19ca6ff 100755 --- a/ipsilon/admin/common.py +++ b/ipsilon/admin/common.py @@ -22,7 +22,18 @@ from ipsilon.util.page import Page from ipsilon.util.page import admin_protect, auth_protect -class AdminPluginPage(Page): +class AdminPage(Page): + + def __init__(self, *args, **kwargs): + super(AdminPage, self).__init__(*args, **kwargs) + self.default_headers.update({ + 'Cache-Control': 'no-cache, must-revalidate', + 'Pragma': 'no-cache', + 'Expires': 'Thu, 01 Dec 1994 16:00:00 GMT', + }) + + +class AdminPluginPage(AdminPage): def __init__(self, obj, site, parent): super(AdminPluginPage, self).__init__(site, form=True) @@ -103,7 +114,7 @@ class AdminPluginPage(Page): options=self.plugin_config) -class Admin(Page): +class Admin(AdminPage): def __init__(self, site, mount): super(Admin, self).__init__(site) diff --git a/ipsilon/admin/info.py b/ipsilon/admin/info.py index 4a8aaba..1ce06f1 100755 --- a/ipsilon/admin/info.py +++ b/ipsilon/admin/info.py @@ -3,14 +3,14 @@ # Copyright (C) 2014 Ipsilon Contributors see COPYING for license import cherrypy -from ipsilon.util.page import Page from ipsilon.util.page import admin_protect, auth_protect from ipsilon.util.plugin import PluginObject from ipsilon.admin.common import AdminPluginPage +from ipsilon.admin.common import AdminPage from ipsilon.info.common import FACILITY -class InfoPluginsOrder(Page): +class InfoPluginsOrder(AdminPage): def __init__(self, site, parent): super(InfoPluginsOrder, self).__init__(site, form=True) @@ -84,7 +84,7 @@ class InfoPluginsOrder(Page): options=opts) -class InfoPlugins(Page): +class InfoPlugins(AdminPage): def __init__(self, site, parent): super(InfoPlugins, self).__init__(site) self._master = parent diff --git a/ipsilon/admin/login.py b/ipsilon/admin/login.py index 165b4ab..62e0a0e 100755 --- a/ipsilon/admin/login.py +++ b/ipsilon/admin/login.py @@ -18,10 +18,10 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. import cherrypy -from ipsilon.util.page import Page from ipsilon.util.page import admin_protect, auth_protect from ipsilon.util.plugin import PluginObject from ipsilon.admin.common import AdminPluginPage +from ipsilon.admin.common import AdminPage from ipsilon.login.common import FACILITY @@ -34,7 +34,7 @@ def save_enabled_plugins(names): po.save_plugin_config(FACILITY) -class LoginPluginsOrder(Page): +class LoginPluginsOrder(AdminPage): def __init__(self, site, parent): super(LoginPluginsOrder, self).__init__(site, form=True) @@ -116,7 +116,7 @@ class LoginPluginsOrder(Page): options=opts) -class LoginPlugins(Page): +class LoginPlugins(AdminPage): def __init__(self, site, parent): super(LoginPlugins, self).__init__(site) self._master = parent diff --git a/ipsilon/admin/providers.py b/ipsilon/admin/providers.py index 31e11ef..ce21e16 100755 --- a/ipsilon/admin/providers.py +++ b/ipsilon/admin/providers.py @@ -19,13 +19,13 @@ import cherrypy -from ipsilon.util.page import Page from ipsilon.util.page import admin_protect, auth_protect from ipsilon.providers.common import FACILITY from ipsilon.admin.common import AdminPluginPage +from ipsilon.admin.common import AdminPage -class ProviderPlugins(Page): +class ProviderPlugins(AdminPage): def __init__(self, site, parent): super(ProviderPlugins, self).__init__(site) self._master = parent diff --git a/ipsilon/providers/saml2/admin.py b/ipsilon/providers/saml2/admin.py index 7e14312..dae4a47 100755 --- a/ipsilon/providers/saml2/admin.py +++ b/ipsilon/providers/saml2/admin.py @@ -18,7 +18,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. import cherrypy -from ipsilon.util.page import Page +from ipsilon.admin.common import AdminPage from ipsilon.providers.saml2.provider import ServiceProvider from ipsilon.providers.saml2.provider import ServiceProviderCreator from ipsilon.providers.saml2.provider import InvalidProviderId @@ -29,7 +29,7 @@ import requests VALID_IN_NAME = r'[^\ a-zA-Z0-9]' -class NewSPAdminPage(Page): +class NewSPAdminPage(AdminPage): def __init__(self, site, parent): super(NewSPAdminPage, self).__init__(site, form=True) @@ -127,7 +127,7 @@ class UnauthorizedUser(Exception): pass -class SPAdminPage(Page): +class SPAdminPage(AdminPage): def __init__(self, sp, site, parent): super(SPAdminPage, self).__init__(site, form=True) @@ -277,15 +277,15 @@ class SPAdminPage(Page): delete.public_function = True -class AdminPage(Page): +class Saml2AdminPage(AdminPage): def __init__(self, site, config): - super(AdminPage, self).__init__(site) + super(Saml2AdminPage, self).__init__(site) self.name = 'admin' self.cfg = config self.providers = [] self.menu = [] self.url = None - self.sp = Page(self._site) + self.sp = AdminPage(self._site) def add_sp(self, name, sp): page = SPAdminPage(sp, self._site, self) diff --git a/ipsilon/providers/saml2idp.py b/ipsilon/providers/saml2idp.py index e30e4a1..7508760 100755 --- a/ipsilon/providers/saml2idp.py +++ b/ipsilon/providers/saml2idp.py @@ -20,7 +20,7 @@ from ipsilon.providers.common import ProviderBase, ProviderPageBase from ipsilon.providers.common import FACILITY from ipsilon.providers.saml2.auth import AuthenticateRequest -from ipsilon.providers.saml2.admin import AdminPage +from ipsilon.providers.saml2.admin import Saml2AdminPage from ipsilon.providers.saml2.provider import IdentityProvider from ipsilon.tools.certs import Certificate from ipsilon.tools import saml2metadata as metadata @@ -214,7 +214,7 @@ Provides SAML 2.0 authentication infrastructure. """ def get_tree(self, site): self.idp = self.init_idp() self.page = SAML2(site, self) - self.admin = AdminPage(site, self) + self.admin = Saml2AdminPage(site, self) return self.page def init_idp(self): |