From eaefd726cf56d0dce66a54491895f700386f3126 Mon Sep 17 00:00:00 2001 From: moeez96 Date: Tue, 6 Sep 2022 20:54:12 +0500 Subject: [PATCH] fix: Fix retiring user auth models on disable event --- lms/djangoapps/support/tests/test_views.py | 13 +++++++++++++ lms/djangoapps/support/views/manage_user.py | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/support/tests/test_views.py b/lms/djangoapps/support/tests/test_views.py index dcbfe3c82b..bf31b23398 100644 --- a/lms/djangoapps/support/tests/test_views.py +++ b/lms/djangoapps/support/tests/test_views.py @@ -24,6 +24,7 @@ from edx_proctoring.runtime import set_runtime_service from edx_proctoring.statuses import ProctoredExamStudentAttemptStatus from edx_proctoring.tests.test_services import MockLearningSequencesService, MockScheduleItemData from edx_proctoring.tests.utils import ProctoredExamTestCase +from oauth2_provider.models import AccessToken, RefreshToken from opaque_keys.edx.locator import BlockUsageLocator from organizations.tests.factories import OrganizationFactory from pytz import UTC @@ -58,6 +59,7 @@ from lms.djangoapps.verify_student.models import VerificationDeadline from lms.djangoapps.verify_student.services import IDVerificationService from lms.djangoapps.verify_student.tests.factories import SSOVerificationFactory from openedx.core.djangoapps.content.course_overviews.models import CourseOverview +from openedx.core.djangoapps.oauth_dispatch.tests import factories from openedx.features.content_type_gating.models import ContentTypeGatingConfig from openedx.features.course_duration_limits.models import CourseDurationLimitConfig from openedx.features.enterprise_support.api import enterprise_is_enabled @@ -155,6 +157,15 @@ class SupportViewManageUserTests(SupportViewTestCase): test_user = UserFactory( username='foobar', email='foobar@foobar.com', password='foobar' ) + + application = factories.ApplicationFactory(user=test_user) + access_token = factories.AccessTokenFactory(user=test_user, application=application) + factories.RefreshTokenFactory( + user=test_user, application=application, access_token=access_token + ) + assert 0 != AccessToken.objects.filter(user=test_user).count() + assert 0 != RefreshToken.objects.filter(user=test_user).count() + url = reverse('support:manage_user_detail') + test_user.username response = self.client.post(url, data={ 'username_or_email': test_user.username, @@ -164,6 +175,8 @@ class SupportViewManageUserTests(SupportViewTestCase): assert data['success_msg'] == 'User Disabled Successfully' test_user = User.objects.get(username=test_user.username, email=test_user.email) assert test_user.has_usable_password() is False + assert 0 == AccessToken.objects.filter(user=test_user).count() + assert 0 == RefreshToken.objects.filter(user=test_user).count() @ddt.ddt diff --git a/lms/djangoapps/support/views/manage_user.py b/lms/djangoapps/support/views/manage_user.py index 097202019d..e29652a905 100644 --- a/lms/djangoapps/support/views/manage_user.py +++ b/lms/djangoapps/support/views/manage_user.py @@ -75,7 +75,7 @@ class ManageUserDetailView(GenericAPIView): UserPasswordToggleHistory.objects.create( user=user, comment=comment, created_by=request.user, disabled=True ) - retire_dot_oauth2_models(request.user) + retire_dot_oauth2_models(user) else: user.set_password(generate_password(length=25)) UserPasswordToggleHistory.objects.create(