refactor: remove error_descriptor_class and NonStaffErrorBlock

It's safe to remove this because non-staff [1] users cannot access [2]
an `ErrorBlock`. We were able to reproduce this with and without this commit
with the following results:
1. Staff users were seeing the `ErrorBlock`.
2. Non-staff users were getting an empty `<div class="vert-mod"></div>`.

In theory, error blocks should be hidden in the Learning MFE because of this
option [3]. However, when we manually set `hide_access_error_blocks` to
`False`, we kept getting identical results (with and without this commit), so
it looks that the removal `NonStaffErrorBlock` was just omitted at some point.

[1] a4ec4c1b8e/lms/djangoapps/courseware/access.py (L419-L436)
[2] a4ec4c1b8e/lms/djangoapps/courseware/access.py (L150-L151)
[3] 92ca176fde/lms/djangoapps/courseware/views/views.py (L1547-L1551)
This commit is contained in:
0x29a
2022-06-23 19:22:47 +02:00
committed by Piotr Surowiec
parent 0f858835f1
commit cf1a7c616a
8 changed files with 4 additions and 62 deletions

View File

@@ -40,7 +40,6 @@ from xblock.reference.plugins import FSService
from xblock.runtime import KvsFieldData
from xmodule.contentstore.django import contentstore
from xmodule.error_module import ErrorBlock, NonStaffErrorBlock
from xmodule.exceptions import NotFoundError, ProcessingError
from xmodule.modulestore.django import modulestore
from xmodule.modulestore.exceptions import ItemNotFoundError
@@ -728,12 +727,6 @@ def get_module_system_for_user(
system.set('user_is_beta_tester', CourseBetaTesterRole(course_id).has_user(user))
system.set('days_early_for_beta', descriptor.days_early_for_beta)
# make an ErrorBlock -- assuming that the descriptor's system is ok
if has_access(user, 'staff', descriptor.location, course_id):
system.error_descriptor_class = ErrorBlock
else:
system.error_descriptor_class = NonStaffErrorBlock
return system, field_data