To assign a role in the system context, go to Site administration > Users > Permissions > 'Assign system roles'.
Any roles assigned here apply across the whole site. It makes sense therefore that only roles that need this functionality can be assigned here. The Manager role and Course creator role are examples of two such roles. Assigning a teacher or student here would result in their being able to teach/study in every single course on the site, which is not usually desirable.
Where certain custom roles are applied in the system context, it is possible to upload users to that role in bulk by adding the field sysrole1 (etc) to a CSV file.
sysrole columnWhen previewed, there is a column indicating their system role:
Preview screenOnce uploaded, the users are present on the 'Assign system roles' screen:
Assign system roles screenSee Upload users for information on adding users to roles via CSV.
The dropdown menu at the top shows roles for which you are allowed to enrol; typically those users with lower roles than you. See Participants for more details.
The user context is used for roles such as mentor, team leader or the Parent role. The role to be assigned must have 'User' ticked as the context type where it is to be assigned.
To assign a user the role of mentor in the context of their mentee, click the mentee's profile, then Preferences then 'Assign roles relative to this user'.
If a mentor has lots of mentees, the role of mentor can be assigned to them all in one go as follows:
By assigning a role to a user in a certain context, you grant them the permissions contained in that role for the current context and all lower contexts.
The list of contexts in hierarchical order is as follows:
Roles can be inherited. For example if a user is assigned a Teacher role in a specific course category then the user will have this role in ALL courses within the category. Tip: use the override feature in a specific context for exceptions.
Roles will only work if the role assignment is made in the correct context. Some examples: a Teacher role should be assigned to a user in the course or course category context, a Forum moderator for a particular forum should be assigned in that specific forum.
To check a user's role assignments go to their profile page, then under the Administration heading, click on 'Preferences'. On the Preferences page, under the 'Roles' heading click on 'This user's role assignments'.
If you want to provide users with access to the course, but don't want them to be visible in the participants list, use the Other users link in the course administration menu (Administration > Course Administration > Users > Other Users). Assigning roles here provides course access, and editing rights according to the permissions set for the role assigned without actually enrolling the user in the course. This is similar to the functionality of the "hidden user" check box in previous versions of Moodle.
Note: By default, the only role which can be assigned to other users is the manager role. To enable other roles, such as teacher to be assigned, the capability moodle/course:view should be allowed for the role (see below).
By default, teachers are only allowed to assign the roles of non-editing teacher, student and guest. To enable teachers to assign the role of teacher:
There are many role assignments that do not make sense as the underlying functionality does not exist. Just because you give someone the "right" to do something does not guarantee that the interface or facility actually exists within the context that you have assigned that right. For example, you can assign a user the right to create new categories in the category context. However there is no interface within Moodle to do that (category creation is only available at the system level).
A significant part of the roles infrastructure is the ability to assign a user into multiple roles (at the same time). The capabilities of each role are merged to produce the effective set of capabilities. For example, a user could be both a Teacher and Student in the same course. You should be careful to ensure that if you change a user's role that you remove them from any other roles as required as this will no longer be done automatically.
Using Moodle forum discussions: