Save user attributes on subsequent calls to login.
authorRob Crittenden <rcritten@redhat.com>
Mon, 16 Mar 2015 18:34:24 +0000 (14:34 -0400)
committerRob Crittenden <rcritten@redhat.com>
Mon, 16 Mar 2015 21:18:13 +0000 (17:18 -0400)
When a login comes in via the remote_login() call no
user attributes are set. These may be later filled in by
a subsequent call to login() after the info plugins are
called but a short-circuit in that function exits if the
user matches the current session.

Add an extra conditional such that if the user matches,
userattributes are passed in and the current user attributes
for this user is empty then save the new data.

https://fedorahosted.org/ipsilon/ticket/86

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-by: Nathan Kinder <nkinder@redhat.com>
ipsilon/util/user.py

index 1ce5c17..758bf3d 100644 (file)
@@ -121,6 +121,8 @@ class UserSession(Log):
 
     def login(self, username, userattrs=None):
         if self.user == username:
+            if userattrs and not self.get_user_attrs():
+                self.save_user_attrs(userattrs)
             return
 
         # REMOTE_USER changed, replace user