From dd5c3790c3a55e52436927f6bbe0eca56ca85e2b Mon Sep 17 00:00:00 2001 From: uzairr Date: Fri, 21 May 2021 17:34:42 +0500 Subject: [PATCH] refactor login api --- openedx/core/djangoapps/user_authn/views/login.py | 13 ++++--------- .../djangoapps/user_authn/views/tests/test_login.py | 2 +- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/openedx/core/djangoapps/user_authn/views/login.py b/openedx/core/djangoapps/user_authn/views/login.py index 0900d5c28e..631c83f82e 100644 --- a/openedx/core/djangoapps/user_authn/views/login.py +++ b/openedx/core/djangoapps/user_authn/views/login.py @@ -118,21 +118,16 @@ def _get_user_by_email_or_username(request): """ Finds a user object in the database based on the given request, ignores all fields except for email and username. """ - if not ( - 'email' in request.POST or 'username' in request.POST - ) or 'password' not in request.POST: + if 'email_or_username' not in request.POST or 'password' not in request.POST: raise AuthFailedError(_('There was an error receiving your login information. Please email us.')) - email = request.POST.get('email', None) - username = request.POST.get('username', None) - + email_or_username = request.POST.get('email_or_username', None) try: return USER_MODEL.objects.get( - Q(username=username) | Q(email=email) + Q(username=email_or_username) | Q(email=email_or_username) ) except USER_MODEL.DoesNotExist: - username_or_email = email or username - digest = hashlib.shake_128(username_or_email.encode('utf-8')).hexdigest(16) # pylint: disable=too-many-function-args + digest = hashlib.shake_128(email_or_username.encode('utf-8')).hexdigest(16) # pylint: disable=too-many-function-args AUDIT_LOG.warning(f"Login failed - Unknown user username/email {digest}") diff --git a/openedx/core/djangoapps/user_authn/views/tests/test_login.py b/openedx/core/djangoapps/user_authn/views/tests/test_login.py index 9d75acd5c1..c35e930c4c 100644 --- a/openedx/core/djangoapps/user_authn/views/tests/test_login.py +++ b/openedx/core/djangoapps/user_authn/views/tests/test_login.py @@ -1053,7 +1053,7 @@ class LoginSessionViewTest(ApiTestCase): def test_login_with_username(self): UserFactory.create(username=self.USERNAME, email=self.EMAIL, password=self.PASSWORD) data = { - "username": self.USERNAME, + "email_or_username": self.USERNAME, "password": self.PASSWORD, } self.url = reverse("user_api_login_session", kwargs={'api_version': 'v2'})