1 # Copyright (C) 2013 Ipsilon project Contributors, for license see COPYING
3 from ipsilon.util.page import Page
4 from ipsilon.util import errors
5 from ipsilon.login.common import Login
6 from ipsilon.login.common import Logout
7 from ipsilon.admin.common import Admin
8 from ipsilon.providers.common import LoadProviders
9 from ipsilon.admin.loginstack import LoginStack
10 from ipsilon.admin.info import InfoPlugins
11 from ipsilon.admin.login import LoginPlugins
12 from ipsilon.admin.providers import ProviderPlugins
13 from ipsilon.rest.common import Rest
14 from ipsilon.rest.providers import RestProviderPlugins
22 def __init__(self, site, template_env):
26 sites[site]['template_env'] = template_env
27 super(Root, self).__init__(sites[site])
28 self.html_heads = dict()
31 cherrypy.config['error_page.400'] = errors.Error_400(self._site)
32 cherrypy.config['error_page.401'] = errors.Error_401(self._site)
33 cherrypy.config['error_page.404'] = errors.Error_404(self._site)
34 cherrypy.config['error_page.500'] = errors.Errors(self._site)
36 # now set up the default login plugins
37 self.login = Login(self._site)
38 self.logout = Logout(self._site)
40 # set up idp providers now
41 LoadProviders(self, self._site)
43 # after all plugins are setup we can instantiate the admin pages
44 self.admin = Admin(self._site, 'admin')
45 self.rest = Rest(self._site, 'rest')
46 self.stack = LoginStack(self._site, self.admin)
47 LoginPlugins(self._site, self.stack)
48 InfoPlugins(self._site, self.stack)
49 ProviderPlugins(self._site, self.admin)
50 RestProviderPlugins(self._site, self.rest)
53 self.debug(self.html_heads)
54 return self._template('index.html', title='Ipsilon',
55 heads=self.html_heads)