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.

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.
- The System context has 2 contexts under it, with other context under them
- The Front page context has
- An activity module context and
- A block context within it
- The Course Category context has
- A Course context within it. The course context has
- An activity module context and
- A block context within it
- A Course context within it. The course context has
- The Front page context has
(Source: Development:Roles#Context)
Another graphic of hierarchy | ]

Context Level constants | ]
The constants for the context levels are described in moodle/lib/accesslib.php:
- CONTEXT_SYSTEM = 10;
- _USER = 30;
- _COURSECAT = 40;
- _COURSE = 50;
- _MODULE = 70;
- _BLOCK = 80;
See also | ]
- Roles FAQ
- Course categories context
- Explanation of the constants for the context levels forum discussion
Source: docs.moodle.org/503/en/Context — MoodleDocs (GPL) · Imported 2026-11-10.
