X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=ipsilon%2Froot.py;h=c5fc5ae2c9813d4c7543ccadaef3059c21b8861e;hp=034a7b3618a502ea897ced915138facebaafbc61;hb=f47a95ba1df58ccf9784c47beeaa0702c469b3e1;hpb=739ca49e93d7bf534bfc401633a612e16ff19bc6 diff --git a/ipsilon/root.py b/ipsilon/root.py index 034a7b3..c5fc5ae 100755 --- a/ipsilon/root.py +++ b/ipsilon/root.py @@ -18,9 +18,14 @@ # along with this program. If not, see . from ipsilon.util.page import Page +from ipsilon.util import errors from ipsilon.login.common import Login from ipsilon.login.common import Logout from ipsilon.admin.common import Admin +from ipsilon.providers.common import LoadProviders +from ipsilon.admin.login import LoginPlugins +from ipsilon.admin.providers import ProviderPlugins +import cherrypy sites = dict() @@ -28,18 +33,28 @@ sites = dict() class Root(Page): def __init__(self, site, template_env): - if not site in sites: + if site not in sites: sites[site] = dict() if template_env: sites[site]['template_env'] = template_env super(Root, self).__init__(sites[site]) + # set up error pages + cherrypy.config['error_page.400'] = errors.Error_400(self._site) + cherrypy.config['error_page.401'] = errors.Error_401(self._site) + cherrypy.config['error_page.500'] = errors.Errors(self._site) + # now set up the default login plugins self.login = Login(self._site) self.logout = Logout(self._site) + # set up idp providers now + LoadProviders(self, self._site) + # after all plugins are setup we can instantiate the admin pages - self.admin = Admin(self._site) + self.admin = Admin(self._site, 'admin') + LoginPlugins(self._site, self.admin) + ProviderPlugins(self._site, self.admin) def root(self): return self._template('index.html', title='Ipsilon')