summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2014-10-06 22:48:07 -0400
committerPatrick Uiterwijk <puiterwijk@redhat.com>2014-10-07 16:48:31 +0200
commit3d38500a756d26294956c53bdcc82313a8bbfc55 (patch)
treefc66b738d180d888a738aff346e92be2c052f2c7
parent049e2dfb2edf97d32f66fa97ee04bc8ccad44df8 (diff)
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-xipsilon/admin/common.py15
-rwxr-xr-xipsilon/admin/info.py6
-rwxr-xr-xipsilon/admin/login.py6
-rwxr-xr-xipsilon/admin/providers.py4
-rwxr-xr-xipsilon/providers/saml2/admin.py12
-rwxr-xr-xipsilon/providers/saml2idp.py4
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):