From 47f0c12ddd7d806d46a1b63faf0719c85c05fee0 Mon Sep 17 00:00:00 2001 From: Dmitry Yakhnov Date: Fri, 19 Mar 2021 10:48:12 +1100 Subject: [PATCH] Check for migrated user --- mydata/__init__.py | 2 +- mydata/models/user.py | 25 +++++++++++++++++++------ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/mydata/__init__.py b/mydata/__init__.py index cc3cb88b..3fa0dc92 100644 --- a/mydata/__init__.py +++ b/mydata/__init__.py @@ -8,7 +8,7 @@ import subprocess import sys -__version__ = "0.9.5" +__version__ = "0.9.6" if hasattr(sys, "frozen"): diff --git a/mydata/models/user.py b/mydata/models/user.py index 10782ee3..84c4346d 100644 --- a/mydata/models/user.py +++ b/mydata/models/user.py @@ -123,15 +123,28 @@ def GetUserByUsername(username): response = requests.get(url=url, headers=SETTINGS.defaultHeaders) response.raise_for_status() userRecordsJson = response.json() - numUserRecordsFound = userRecordsJson['meta']['total_count'] - if numUserRecordsFound == 0: - raise DoesNotExist( - message="User \"%s\" was not found in MyTardis" % username, - response=response) + if userRecordsJson["meta"]["total_count"] == 0: + """ + Let's check if user has been migrated from LDAP to AAF + """ + url = "%s/api/v1/mydata_user/?username=%s" \ + % (SETTINGS.general.myTardisUrl, username) + try: + rsp = requests.get(url=url, headers=SETTINGS.defaultHeaders) + data = rsp.json() + userFound = data["success"] + except: + userFound = False + if userFound: + return UserModel.GetUserByUsername(data["username"]) + else: + raise DoesNotExist( + message="User \"%s\" was not found in MyTardis" % username, + response=response) logger.debug("Found user record for username '" + username + "'.") return UserModel(username=username, - userRecordJson=userRecordsJson['objects'][0]) + userRecordJson=userRecordsJson["objects"][0]) @staticmethod def GetUserByEmail(email):