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>
from ipsilon.util.page import admin_protect, auth_protect
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)
def __init__(self, obj, site, parent):
super(AdminPluginPage, self).__init__(site, form=True)
options=self.plugin_config)
options=self.plugin_config)
def __init__(self, site, mount):
super(Admin, self).__init__(site)
def __init__(self, site, mount):
super(Admin, self).__init__(site)
# Copyright (C) 2014 Ipsilon Contributors see COPYING for license
import cherrypy
# 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.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
from ipsilon.info.common import FACILITY
-class InfoPluginsOrder(Page):
+class InfoPluginsOrder(AdminPage):
def __init__(self, site, parent):
super(InfoPluginsOrder, self).__init__(site, form=True)
def __init__(self, site, parent):
super(InfoPluginsOrder, self).__init__(site, form=True)
-class InfoPlugins(Page):
+class InfoPlugins(AdminPage):
def __init__(self, site, parent):
super(InfoPlugins, self).__init__(site)
self._master = parent
def __init__(self, site, parent):
super(InfoPlugins, self).__init__(site)
self._master = parent
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import cherrypy
# 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.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
from ipsilon.login.common import FACILITY
po.save_plugin_config(FACILITY)
po.save_plugin_config(FACILITY)
-class LoginPluginsOrder(Page):
+class LoginPluginsOrder(AdminPage):
def __init__(self, site, parent):
super(LoginPluginsOrder, self).__init__(site, form=True)
def __init__(self, site, parent):
super(LoginPluginsOrder, self).__init__(site, form=True)
-class LoginPlugins(Page):
+class LoginPlugins(AdminPage):
def __init__(self, site, parent):
super(LoginPlugins, self).__init__(site)
self._master = parent
def __init__(self, site, parent):
super(LoginPlugins, self).__init__(site)
self._master = parent
-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.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
def __init__(self, site, parent):
super(ProviderPlugins, self).__init__(site)
self._master = parent
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import cherrypy
# 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
from ipsilon.providers.saml2.provider import ServiceProvider
from ipsilon.providers.saml2.provider import ServiceProviderCreator
from ipsilon.providers.saml2.provider import InvalidProviderId
VALID_IN_NAME = r'[^\ a-zA-Z0-9]'
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)
def __init__(self, site, parent):
super(NewSPAdminPage, self).__init__(site, form=True)
-class SPAdminPage(Page):
+class SPAdminPage(AdminPage):
def __init__(self, sp, site, parent):
super(SPAdminPage, self).__init__(site, form=True)
def __init__(self, sp, site, parent):
super(SPAdminPage, self).__init__(site, form=True)
delete.public_function = True
delete.public_function = True
+class Saml2AdminPage(AdminPage):
def __init__(self, site, config):
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.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)
def add_sp(self, name, sp):
page = SPAdminPage(sp, self._site, self)
from ipsilon.providers.common import ProviderBase, ProviderPageBase
from ipsilon.providers.common import FACILITY
from ipsilon.providers.saml2.auth import AuthenticateRequest
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
from ipsilon.providers.saml2.provider import IdentityProvider
from ipsilon.tools.certs import Certificate
from ipsilon.tools import saml2metadata as metadata
def get_tree(self, site):
self.idp = self.init_idp()
self.page = SAML2(site, self)
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):
return self.page
def init_idp(self):