Add way to save user data after login
authorSimo Sorce <simo@redhat.com>
Sun, 2 Mar 2014 23:06:44 +0000 (18:06 -0500)
committerSimo Sorce <simo@redhat.com>
Sun, 2 Mar 2014 23:10:39 +0000 (18:10 -0500)
The login manager that successfully authenticated the user can now
pass data to be stored in the user facility of the session.

Signed-off-by: Simo Sorce <simo@redhat.com>
ipsilon/login/common.py

index 4ffdd8a..b7000b2 100755 (executable)
@@ -34,7 +34,7 @@ class LoginManagerBase(PluginObject):
         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()
@@ -43,6 +43,12 @@ class LoginManagerBase(PluginObject):
             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):