Skip to content

🔵 User roles and permissions #39

Description

@ebouchut

Note

The superadmin role is planned for a later release and is not part of the
initial roles seed (YAGNI). Tracked in #65.

Roles

Roles are hierarchical:

  • superadmin
    • admin
      • instructor
        • student

Permissions

Each role grants a set of permissions.

  • superadmin: The name says it all (should ideally be able to manage everyone and everything in the system), that is, all users, whatever their role, all courses and lessons.
  • admin:
    • Can manage instructors:
      • Can add an instructor,
      • Can disable an instructor,
    • Can manage students:
      • Can add a student,
      • Can disable a student,
    • Can manage courses:
      • Can delete a course (previously archived),
    • Can manage lessons:
      • Can delete a lesson (previously archived),
  • instructor:
    • Can manage courses:
      • Create a new course,
      • Update one of their courses,
      • Add a student to a course they have created,
      • Manage their course enrollments,
      • Archive one of their courses,
    • Can manage lessons of courses they have created:
      • Create a new lesson,
      • Update a lesson,
      • Archive one of their lessons.
  • student:
    • Can browse available courses,
    • Can view course overview (syllabus),
    • Can enroll in a course,
    • Once course enrollment is confirmed (course access is granted)
      Can access the course content and view all lessons in the course (in no particular order),
      • Can complete a lesson,
      • Can drop a course (leave a course without finishing),
      • Can complete a course (once they have completed all its lessons).

Where:

  • Deactivate an account (such as an instructor or a student) means preventing it from being used, without deleting it.
  • Archive: means unpublishing (a course/lesson) so that it is no longer available to students but not deleted.
  • Drop a course: means withdrawing from a course (when a student leaves before finishing).

Metadata

Metadata

Assignees

Projects

Status
Attic

Relationships

None yet

Development

No branches or pull requests

Issue actions