Note: You are currently viewing documentation for Moodle 2.2. Up-to-date documentation for the latest stable version is available here: Managing roles.

Managing roles

From MoodleDocs


Location: Administration > Users > Permissions > Define roles


The define roles page has three tabs, for managing roles, allowing role assignments and allowing role overrides.

The manage roles tab contains a list of roles on your site. The edit column contains icons for editing and deleting roles, and for moving them up or down in the list (affecting the way that roles are listed around Moodle).


Predefined roles

Moodle comes with 7 predefined roles:

Editing a role

Managing roles

To edit a role:

  1. Click on Permissions in the Site Administration block, then Define roles.
  2. Click the edit icon opposite the role you want to edit e.g. student.
  3. On the edit role page, change permissions as required.
  4. Scroll to the bottom of the page and click the "Save changes" button.

Adding a new role

To add a new role:

  1. Click on Permissions in the Site Administration block, then Define roles.
  2. Click the "Add a new role" button.
  3. On the add a new role page, give the role a name. If you need to name the role for multiple languages you can use multi-lang syntax if you wish, such as <span lang="en" class="multilang">Teacher</span> <span lang="es_es" class="multilang">Profesor</span>. If multi-lang syntax is used then Filter all strings should be set in Filter settings.
  4. Give the role a meaningful short name. The short name is necessary for other plugins in Moodle that may need to refer to the role (e.g. when uploading users from a file or setting enrolments via an enrolment plugin).
  5. Give the role a description (optional).
  6. Set permissions as required.
  7. Scroll to the bottom of the page and click the "Add a new role" button.

Creating a duplicate role

Template:Moodle 1.8In Moodle 1.8 onwards, a new role may be quickly created by making a copy of an existing role.

To create a duplicate role:

  1. Click on Permissions in the Site Administration block, then Define roles.
  2. Click on the role to be duplicated, for example "Guest".
  3. Click the "Duplicate role" button near the top of the "View role details" page.
  4. Answer Yes to the question "Are you sure you want to duplicate the role ...?"
  5. The list of roles will now show the "... copy 1" at the bottom, for example "Guest copy 1".
  6. Edit the duplicated role to meet your needs.

Legacy role types

  • Legacy role types were implemented for backward compatibility.
  • Selecting a legacy role type in 1.8 (or allowing a legacy capability in 1.7) does NOT provide a new role with all capabilities of a pre-Moodle 1.7 role.
  • It is recommended that a legacy role type is selected only for roles that are similar to pre-Moodle 1.7 student/teacher/admin/creator roles.
  • It is not necessary to select a legacy role type unless using old 3rd party code that was not designed for Moodle 1.7 and doesn't yet support roles.

New role considerations

A newly created or copied role does not have the ability to override or assign any other roles. You should consider if you need to allow the role such rights.

New roles will not by default be listed in course descriptions (even if copied from a role that already is, such as the Teacher role). This is set via Administration > Appearance > Course managers.

Testing a new role

To test a new role:

  1. Create test user and assign new role to them.
  2. Either logout as admin and then login as test user or use a different browser to login as test user.

Alternatively, use Switch roles to test the new role. This will only work with Moodle 1.9 and newer, and is only useful with course-scoped capabilities (ie: it will not be usable to test 'moodle/user:edit').

Note: In Moodle 1.7.x and 1.8.x role changes only take effect after the next login from that user, so new roles may not be tested using the "Switch role to..." feature.

Example roles

  • Inspector - for providing external inspectors with permission to view all courses (without being required to enrol)
  • Parent - for providing parents/mentors/tutors with permission to view certain information about their children/mentees/tutees
  • Demo teacher - for providing a demonstration teacher account with a password which can't be changed
  • Forum moderator role - for providing a user with permission in a particular forum to edit or delete forum posts, split discussions and move discussions to other forums
  • Keyholder role - for setting the person named as holding a course enrolment key
  • Calendar editor role - for enabling a user to add site events to the calendar.

See also