Merge branch 'onelab' of ssh://git.onelab.eu/git/myslice into fibre
[unfold.git] / auth / manifoldbackend.py
index 4f44661..0522653 100644 (file)
@@ -23,14 +23,21 @@ class ManifoldBackend:
             return None
 
         try:
-            #usernameldap is from LDAP user form. If it is filled - See portal/homeview.py too
-            usernameldap = token['usernameldap']
+            print "ManifoldBackend authenticate()"
+            # Mandatory fields in token
             username = token['username']
-            password = token['password']
             request = token['request']
 
+            # usernameldap is optional - from LDAP user form. 
+            # If it is filled - See portal/homeview.py too
+            if 'usernameldap' in token:
+                usernameldap = token['usernameldap']
+            else:
+                usernameldap = None
+            password = token['password']
             # if data are not from LDAP form then normal (local) login
             if not usernameldap:
+                print "not userldap ManifoldBackend authenticate()"
                 auth = {'AuthMethod': 'password', 'Username': username, 'AuthString': password}
                 api = ManifoldAPI(auth)
                 sessions_result = api.forward(Query.create('local:session').to_dict())
@@ -62,8 +69,9 @@ class ManifoldBackend:
             # Edelberto LDAP authentication
             # if data are from LDAP form, so
             else:
+                print "userldap ManifoldBackend authenticate()"
             # XXX UGLY
-            # Needing to create an specif entries at settings.py (or myslice.ini) for these vars
+            # Needing to create an specific entries at settings.py (or myslice.ini) for these vars
             ##################################################
             # Edelberto - UFF - esilva@ic.uff.br
             # v1 - ldap authentication module
@@ -201,10 +209,7 @@ class ManifoldBackend:
             except User.DoesNotExist:
                 # Create a user in Django's local database
                 user = User.objects.create_user(username, usernamep, 'passworddoesntmatter')
-                user.first_name = "DUMMY_FIRST_NAME" #person['first_name']
-                user.last_name = "DUMMY LAST NAME" # person['last_name']
                 user.email = person['email']
-            return user
         else:
             if checkldap:
                 try:
@@ -213,11 +218,14 @@ class ManifoldBackend:
                 except User.DoesNotExist:
                     # Create a user in Django's local database
                     user = User.objects.create_user(username, usernameldap, 'passworddoesntmatter')
-                    user.first_name = "DUMMY_FIRST_NAME" #person['first_name']
-                    user.last_name = "DUMMY LAST NAME" # person['last_name']
                     user.email = person['email']
-                return user
 
+        if 'firstname' in person:
+            user.first_name = person['firstname']
+        if 'lastname' in person:
+            user.last_name = person['lastname']
+
+        return user
     # Required for your backend to work properly - unchanged in most scenarios
     def get_user(self, user_id):
         try: