Skip to content

fix: show staff tag for global staff in discussion forum#181

Open
Alam-2U wants to merge 1 commit intorelease-ulmofrom
ealam/COSMO2-842
Open

fix: show staff tag for global staff in discussion forum#181
Alam-2U wants to merge 1 commit intorelease-ulmofrom
ealam/COSMO2-842

Conversation

@Alam-2U
Copy link

@Alam-2U Alam-2U commented Mar 13, 2026

Description

Global staff users were being displayed as learners in the discussion forum, and the staff tag was not shown.

Issue :

The course staff check was overriding the global staff check. As a result, if a user was not marked as course staff, they were displayed as a learner even if they had global staff privileges.

Ticket :

COSMO2-842

Copilot AI review requested due to automatic review settings March 13, 2026 10:33
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes discussion forum author labeling so platform-wide staff users (Django is_staff=True) display the “Staff” tag even when they don’t hold a course-specific forum role.

Changes:

  • Add global staff fallback checks when computing author_label / user labels.
  • Add serializer test coverage for global staff author labeling (anonymous vs non-anonymous).
  • Extend deleted-content labeling helper to also recognize platform-wide staff.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
lms/djangoapps/discussion/rest_api/tests/test_serializers.py Adds a test ensuring is_staff authors receive “Staff” unless anonymous.
lms/djangoapps/discussion/rest_api/serializers.py Updates _get_user_label to fall back to user.is_staff when not course staff.
lms/djangoapps/discussion/rest_api/api.py Updates deleted-content user label helper to also return “Staff” for is_staff users.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 279 to 288

# Check if user is a platform-wide staff member
if not is_staff:
try:
User = get_user_model()
user = User.objects.get(id=user_id)
is_staff = user.is_staff
except ObjectDoesNotExist:
pass

# Make author a platform-wide staff member
self.author.is_staff = True
self.author.save()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants