X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=ipsilon%2Froot.py;h=c308c951369e52617fa54f06971b5efe81b1fb06;hp=cd64ef3724b12ff6f9e1734206af8a34f204bfff;hb=a5be918364744f92d73aa4b6589f3b9b33235d6d;hpb=47ff1fb4cd7a6c416c93246decacd19628b232c3 diff --git a/ipsilon/root.py b/ipsilon/root.py index cd64ef3..c308c95 100755 --- a/ipsilon/root.py +++ b/ipsilon/root.py @@ -18,8 +18,41 @@ # 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 +import cherrypy + +sites = dict() + class Root(Page): + def __init__(self, site, template_env): + if not site 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, 'admin') + LoginPlugins(self._site, self.admin) + def root(self): - return self._template('index.html', title='Root') + return self._template('index.html', title='Ipsilon')