Context

Context

A context is a space in Moodle where roles can be assigned. For example, a Moodle site is one context and that contains a number of other contexts within it. A category is a context, within a site context, that contains courses and sub-categories that have a context of their own.

A course may hold, within its own context, an activity, or a Question bank's question category, which are also contexts. A context might contain other contexts and Roles can be assigned to each context.

There is a hierarchy of contexts which helps locate and define a specific space. A course can have many contexts in its space. These might include lesson, assignment, forum and quiz modules and blocks.

Generally speaking, this hierarchy allows a lower context to receive information from a higher context. Thus a student in the context of Course A, will initially be considered a student in a Quiz context that is located in Course A. Or when a theme has been set for the Biology course categories, that is passed on to Biology 101.

Roles and contexts | ]

A context is combined with role permissions to define a User's capabilities on any page in Moodle. Typically contexts have their own organization structure which allow a User's role to be passed along to the context "below" but not to the one above it.

150px-context.png
Each context can have a different role assigned to a User

It is possible to assign a user different permissions based upon a specific context. For example, a user might be given the role of "student" for a course but be given a teacher's role in the context of one specific forum. Or a user can be a teacher of one course and a student in another course.

Many Moodle contexts have a place to grant exceptions to specific roles within that context. Those exceptions are non-transferable from that context. That is, an exception can be applied to the next context downward, but cannot applied sideways nor upward from that context.


Graphic showing contexts within contexts | ]

The image below shows a few contexts and their relationships. The "System" or Moodle site is the overall context. The user is defined initially in this context.

Moodle-contexts-1.8.png

(Source: Development:Roles#Context)

Another graphic of hierarchy | ]

300px-Hierarchycategories.png
Showing the Site > Category > Course contexts but not activities

Context Level constants | ]

The constants for the context levels are described in moodle/lib/accesslib.php:

See also | ]


Source: docs.moodle.org/503/en/Context — MoodleDocs (GPL) · Imported 2026-11-10.