From fa44c247962a1afc8e5b6edc8c8973f6aa6b9516 Mon Sep 17 00:00:00 2001 From: Awais Jibran Date: Wed, 24 Feb 2021 15:09:21 +0500 Subject: [PATCH] refactor: use q objects when fetching user using an identifier --- .../discussion/management/commands/assign_role.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lms/djangoapps/discussion/management/commands/assign_role.py b/lms/djangoapps/discussion/management/commands/assign_role.py index 81427a5521..713f972640 100644 --- a/lms/djangoapps/discussion/management/commands/assign_role.py +++ b/lms/djangoapps/discussion/management/commands/assign_role.py @@ -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)