from ipsilon.util.page import Page
from ipsilon.util.user import UserSession
from ipsilon.util.plugin import PluginLoader, PluginObject
+from ipsilon.util.plugin import PluginInstaller
import cherrypy
base = cherrypy.config.get('base.mount', "")
raise cherrypy.HTTPRedirect('%s/login/%s' % (base, path))
- def auth_successful(self, username):
+ def auth_successful(self, username, userdata=None):
# save ref before calling UserSession login() as it
# may regenerate the session
session = UserSession()
ref = cherrypy.config.get('base.mount', "") + '/'
session.login(username)
+
+ # Save additional data provided by the login manager
+ if userdata:
+ for key in userdata:
+ session.save_data('user', key, userdata[key])
+
raise cherrypy.HTTPRedirect(ref)
def auth_failed(self):
# otherwise destroy session and return error
if not ref:
- ref = cherrypy.config.get('base.mount', "") + '/unauthorized'
- # Just make sure we destroy the session
session.logout(None)
+ raise cherrypy.HTTPError(401)
raise cherrypy.HTTPRedirect(ref)
def root(self, *args, **kwargs):
UserSession().logout(self.user)
return self._template('logout.html', title='Logout')
+
+
+class LoginMgrsInstall(object):
+
+ def __init__(self):
+ pi = PluginInstaller(LoginMgrsInstall)
+ self.plugins = pi.get_plugins()