Open edX Authorization Systems Explicit Roles Table#
edX Platform - Course Roles#
System Users |
|
System Role Options |
|
Example Use Cases |
|
System Details |
|
Data Model |
Note: If the course_id column is an empty string the role is for the org, if the org and course_id are empty strings the role is for the entire system. |
edx Platform - Django Admin Flow#
System Users |
|
System Role Options |
Note: Student is not an explicit role at this time. It is an implicit role based on the existence of an enrollment. |
Example Use Cases |
|
System Details |
Note: Other services have their own Django Admin Panels that grant permissions. |
Data Model |
|
edx-rbac#
System Users |
|
System Role Options |
|
Example Use Cases |
|
System Details |
|
Data Model |
|
content_libraries - v2 Library Roles#
System Users |
|
System Role Options |
|
Example Use Cases |
|
System Details |
|
Data Model |
|
comment_client - Discussion Roles#
System Users
Roles are assigned by instructors in the LMS.
Roles can be assigned to any user who needs elevated access to Discussions.
The role of administrator cannot be removed from the instructor.
System Role Options
Example roles as named in the db: Administrator, Moderator, etc.
Example roles as named in Instructor Dashboard: Discussion Admin, Discussion Moderator, etc.
Example Use Cases
Discussion Service
System Details
Instructor role can access and assign discussion roles
Roles can be assigned in the membership tab on the instructor dashboard page
Roles assigned in the LMS only apply to the LMS Discussions
Administrator role is given to the instructor by default and cannot be removed. Additional administrators can be added
Data Model
django_comment_client_role table with course_id, id, name fields
django_comment_client_role_users table with id, role_id, user_id, _sdc_deleted_at fields
django_comment_client_permission_roles table with id, role_id, permission_id fields
django_comment_client_permission table with name field