Merge pull request #253 from edx/moeez96/LEARNER-9001

fix: Fix retiring user auth models on disable event
This commit is contained in:
Ali Akbar
2022-12-05 11:53:58 +05:00
committed by GitHub
2 changed files with 14 additions and 1 deletions

View File

@@ -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

View File

@@ -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(