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)
downloadipsilon-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-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):