From 2d7cf76d844a407ac8bcd79db301883fea5b60b7 Mon Sep 17 00:00:00 2001 From: Loic Baron Date: Tue, 1 Dec 2015 17:55:30 +0100 Subject: [PATCH] auth_user in Django username is limited in number of characters so use only the 1st part of email --- localauth/manifoldbackend.py | 9 +++++---- portal/actions.py | 3 +-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/localauth/manifoldbackend.py b/localauth/manifoldbackend.py index 504a85be..3e235151 100644 --- a/localauth/manifoldbackend.py +++ b/localauth/manifoldbackend.py @@ -23,11 +23,12 @@ class ManifoldBackend: person = {} try: - username = token['username'] + email = token['username'] + username = email.split('@')[-1] password = token['password'] request = token['request'] - auth = {'AuthMethod': 'password', 'Username': username, 'AuthString': password} + auth = {'AuthMethod': 'password', 'Username': email, 'AuthString': password} api = ManifoldAPI(auth) sessions_result = api.forward(Query.create('local:session').to_dict()) sessions = sessions_result.ok_value() @@ -69,10 +70,10 @@ class ManifoldBackend: try: # Check if the user exists in Django's local database - user = User.objects.get(username=username) + user = User.objects.get(email=email) except User.DoesNotExist: # Create a user in Django's local database - user = User.objects.create_user(username, username, 'passworddoesntmatter') + user = User.objects.create_user(username, email, 'passworddoesntmatter') user.email = person['email'] if 'firstname' in person: diff --git a/portal/actions.py b/portal/actions.py index 523a9e1e..e0dc131f 100644 --- a/portal/actions.py +++ b/portal/actions.py @@ -1114,7 +1114,6 @@ def manifold_add_reference_user_accounts(wsgi_request, request): .select('user_id', 'config', 'email', 'status') \ .filter_by('email', '==', request['email']) user_details = execute_admin_query(wsgi_request, user_query) - # USER MAIN ACCOUNT != reference #print 'USER MAIN ACCOUNT != reference' list_accounts_query = Query().get('local:account') \ @@ -1286,7 +1285,7 @@ def create_pending_user(wsgi_request, request, user_detail): msg.send() # saves the user to django auth_user table [needed for password reset] - user = User.objects.create_user(request['email'], request['email'], request['password']) + user = User.objects.create_user(request['email'].split('@')[-1], request['email'], request['password']) # Creating a manifold user user_id = manifold_add_user(wsgi_request, request) -- 2.43.0