Merge pull request #26702 from edx/aj/refactor/using-q-objects
refactor: use q objects when fetching user using an identifier
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
# lint-amnesty, pylint: disable=imported-auth-user, missing-module-docstring
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
from django.db.models import Q
|
||||
|
||||
from openedx.core.djangoapps.django_comment_common.models import Role
|
||||
|
||||
@@ -26,10 +27,9 @@ class Command(BaseCommand): # lint-amnesty, pylint: disable=missing-class-docst
|
||||
|
||||
role = Role.objects.get(name=role, course_id=course_id)
|
||||
|
||||
if '@' in name_or_email:
|
||||
user = User.objects.get(email=name_or_email)
|
||||
else:
|
||||
user = User.objects.get(username=name_or_email)
|
||||
user = User.objects.filter(Q(email=name_or_email) | Q(username=name_or_email)).first()
|
||||
if not user:
|
||||
raise CommandError(f"User {name_or_email} does not exist.")
|
||||
|
||||
if options['remove']:
|
||||
user.roles.remove(role)
|
||||
|
||||
Reference in New Issue
Block a user