Fix login session's userdata acquisition
authorSimo Sorce <simo@redhat.com>
Sun, 5 Oct 2014 17:33:16 +0000 (13:33 -0400)
committerPatrick Uiterwijk <puiterwijk@redhat.com>
Mon, 6 Oct 2014 17:53:08 +0000 (19:53 +0200)
With the transaction code changes th session.login() function was
incorrectly moved before all the userdata was gathered. An incomplete
set was stored in the session.

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

index 2b3ac19..3f44c15 100755 (executable)
@@ -45,7 +45,6 @@ class LoginManagerBase(PluginObject, Log):
 
     def auth_successful(self, trans, username, auth_type=None, userdata=None):
         session = UserSession()
-        session.login(username, userdata)
 
         if self.info:
             userattrs = self.info.get_user_attrs(username)
@@ -61,6 +60,9 @@ class LoginManagerBase(PluginObject, Log):
             else:
                 userdata = {'auth_type': auth_type}
 
+        # create session login including all the userdata just gathered
+        session.login(username, userdata)
+
         # save username into a cookie if parent was form base auth
         if auth_type == 'password':
             cookie = SecureCookie(USERNAME_COOKIE, username)