Merge pull request #21050 from edx/LEARNER-3761/capa-grading-exception
Restrict grading endpoints in LMS
This commit is contained in:
@@ -577,16 +577,17 @@ def get_module_system_for_user(
|
||||
"""
|
||||
Submit a grade for the block.
|
||||
"""
|
||||
grades_signals.SCORE_PUBLISHED.send(
|
||||
sender=None,
|
||||
block=block,
|
||||
user=user,
|
||||
raw_earned=event['value'],
|
||||
raw_possible=event['max_value'],
|
||||
only_if_higher=event.get('only_if_higher'),
|
||||
score_deleted=event.get('score_deleted'),
|
||||
grader_response=event.get('grader_response')
|
||||
)
|
||||
if not user.is_anonymous():
|
||||
grades_signals.SCORE_PUBLISHED.send(
|
||||
sender=None,
|
||||
block=block,
|
||||
user=user,
|
||||
raw_earned=event['value'],
|
||||
raw_possible=event['max_value'],
|
||||
only_if_higher=event.get('only_if_higher'),
|
||||
score_deleted=event.get('score_deleted'),
|
||||
grader_response=event.get('grader_response')
|
||||
)
|
||||
|
||||
def handle_deprecated_progress_event(block, event):
|
||||
"""
|
||||
|
||||
@@ -906,6 +906,26 @@ class TestHandleXBlockCallback(SharedModuleStoreTestCase, LoginEnrollmentTestCas
|
||||
with self.assertRaises(BlockCompletion.DoesNotExist):
|
||||
BlockCompletion.objects.get(block_key=block.scope_ids.usage_id)
|
||||
|
||||
@XBlock.register_temp_plugin(GradedStatelessXBlock, identifier='stateless_scorer')
|
||||
@patch('lms.djangoapps.courseware.module_render.grades_signals.SCORE_PUBLISHED.send')
|
||||
def test_anonymous_user_not_be_graded(self, mock_score_signal):
|
||||
course = CourseFactory.create()
|
||||
descriptor_kwargs = {
|
||||
'category': 'problem',
|
||||
}
|
||||
request = self.request_factory.get('/')
|
||||
request.user = AnonymousUser()
|
||||
descriptor = ItemFactory.create(**descriptor_kwargs)
|
||||
|
||||
render.handle_xblock_callback(
|
||||
request,
|
||||
text_type(course.id),
|
||||
quote_slashes(text_type(descriptor.location)),
|
||||
'xmodule_handler',
|
||||
'problem_check',
|
||||
)
|
||||
self.assertFalse(mock_score_signal.called)
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
@patch.dict('django.conf.settings.FEATURES', {'ENABLE_XBLOCK_VIEW_ENDPOINT': True})
|
||||
|
||||
Reference in New Issue
Block a user