1.
Role-Based Access in Open edX
Open edX defines different user roles with varying levels of access:
A. Platform-Level Roles (Across the System)
1. Super Admin – Full system access (via Django Admin).
2. Staff User – Can manage all courses and users.
3. Instructor – Can manage and grade courses.
4. Student – Default user role for learners.
B. Course-Level Roles (Per Course)
1. Course Staff – Full control over the course content and settings.
2. Instructor – Can create, update, and manage content.
3. Beta Tester – Can preview the course before it's published.
4. Learner (Student) – Can only enroll and participate in the course.
2. Restricting Course Access Based on Roles
Open edX allows role-based course access through various settings:
A. Private Courses (Restrict Course Enrollment)
You can restrict course access to specific users or groups.
In Studio, under "Advanced Settings", enable:
"course_visibility": "private"
o This ensures only invited users can access the course.
B. Enrollment Control
Instructor-Only Enrollment:
o Disable open enrollment and manually enroll users via the LMS admin
panel.
Whitelist Specific Users:
o Use the "Allow List" feature to restrict access to specific learners.
C. Role-Based Content Access
You can show different course content based on cohorts or groups:
Cohorts: Divide students into groups and show different course versions.
Content Groups: Restrict content visibility based on user roles.
3. Advanced Role-Based Access Features
A. Custom Permissions with OAuth & JWT
Open edX supports OAuth-based authentication.
External systems can assign custom roles for access control.
B. Enterprise Features (LDAP & SAML)
Enterprise Mode allows role-based access using SSO (LDAP/SAML).
Organizations can assign roles via Active Directory or Identity Providers.
C. Micro-Frontends (MFEs) & Custom Permissions
You can modify Open edX MFEs (React-based UI) to show/hide features
based on roles.
4. How to Assign Roles in Open edX
A. Assign Roles via Instructor Dashboard
1. Log in to LMS.
2. Go to Instructor Dashboard → Membership.
3. Assign staff, instructor, or beta tester roles.
B. Assign Roles via Django Admin
1. Log in to Django Admin (/admin).
2. Navigate to Auth → Users.
3. Assign staff or superuser permissions.