Commit ccfa3ea7 by rabiaiftikhar

TNl-6610 Fix "more" menu on discussion post for global staff.

parent 0c30c06a
......@@ -1405,6 +1405,26 @@ class PermissionsTestCase(ModuleStoreTestCase):
'can_report': True
})
def test_get_ability_with_global_staff(self):
"""
Tests that global staff has rights to report other user's post inspite
of enrolled in the course or not.
"""
content = {'user_id': '1', 'type': 'thread'}
with mock.patch('django_comment_client.utils.check_permissions_by_view') as check_perm:
# check_permissions_by_view returns false because user is not enrolled in the course.
check_perm.return_value = False
global_staff = UserFactory(username='global_staff', email='global_staff@edx.org', is_staff=True)
self.assertEqual(utils.get_ability(None, content, global_staff), {
'editable': False,
'can_reply': False,
'can_delete': False,
'can_openclose': False,
'can_vote': False,
'can_report': True
})
def test_is_content_authored_by(self):
content = {}
user = mock.Mock()
......
......@@ -29,6 +29,7 @@ from openedx.core.djangoapps.course_groups.cohorts import (
)
from openedx.core.djangoapps.course_groups.models import CourseUserGroup
from request_cache.middleware import request_cached
from student.roles import GlobalStaff
log = logging.getLogger(__name__)
......@@ -525,12 +526,12 @@ def get_ability(course_id, content, user):
content,
"vote_for_thread" if content['type'] == 'thread' else "vote_for_comment"
),
'can_report': not is_content_authored_by(content, user) and check_permissions_by_view(
'can_report': not is_content_authored_by(content, user) and (check_permissions_by_view(
user,
course_id,
content,
"flag_abuse_for_thread" if content['type'] == 'thread' else "flag_abuse_for_comment"
)
) or GlobalStaff().has_user(user))
}
# TODO: RENAME
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment