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:
Awais Jibran
2021-02-25 15:24:02 +05:00
committed by GitHub

View File

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