After changes from #31472, the user service of a "leaf" XBlock gets overridden with the one created for its parent (SequenceBlock). Therefore, the `requires_per_student_anonymous_id` is ignored in these XBlocks. The subsequent renders of an XBlock (e.g., when requesting the solution) use the student-specific IDs. This removes choosing the proper ID (course-specific or student-specific) from the runtime initialization. Instead, both IDs are passed to the user service. There are only two XBlocks that relied on the `requires_per_student_anonymous_id` - `ProblemBlock` and `HtmlBlock`. They now request the "deprecated" (student-specific) user ID directly from the user service.
15 lines
618 B
Python
15 lines
618 B
Python
"""
|
|
Constants used by DjangoXBlockUserService
|
|
"""
|
|
|
|
# Optional attributes stored on the XBlockUser
|
|
ATTR_KEY_ANONYMOUS_USER_ID = 'edx-platform.anonymous_user_id'
|
|
ATTR_KEY_DEPRECATED_ANONYMOUS_USER_ID = 'edx-platform.deprecated_anonymous_user_id'
|
|
ATTR_KEY_REQUEST_COUNTRY_CODE = 'edx-platform.request_country_code'
|
|
ATTR_KEY_IS_AUTHENTICATED = 'edx-platform.is_authenticated'
|
|
ATTR_KEY_USER_ID = 'edx-platform.user_id'
|
|
ATTR_KEY_USERNAME = 'edx-platform.username'
|
|
ATTR_KEY_USER_IS_STAFF = 'edx-platform.user_is_staff'
|
|
ATTR_KEY_USER_PREFERENCES = 'edx-platform.user_preferences'
|
|
ATTR_KEY_USER_ROLE = 'edx-platform.user_role'
|