When you want to increase a student's permissions in a specific way how do you do that without compromising privacy or security? For example you might want a student to manage posts within a single forum e.g. edit posts of others or split discussions that have gone off-topic. Everywhere else in the course, these students must have exactly the same permissions as other students.
This could be achieved by giving these trusted students the role of non-editing teacher. While this would enable them to manage posts in a particular forum, it would also allow them to do other things such as rate posts if ratings were enabled, which may not be desirable.
The only way to add specific capabilities to a user is to create a bespoke role and give that role to the individuals concerned. For the rest of this post, I will go through how you do it. Note, you do need to be an administrator to do this so teachers in courses will have to resort to giving individual students a higher role if the administrator has not created a new role.
So, what is a role? Well, a role is a set of permissions and capabilities that are grouped together so you can give those permissions to specific users. As a rule of thumb, if more than one role is given to a particular user, then the higher role will take precedence.
How to create a role in Moodle 2.7
While the process is relevant to all Moodle 2 versions, I am doing this example using 2.7.
Navigate to Users > Permissions > Define roles. The Define roles page shows all the roles available in the site; their position in the table relates to the hierarchy within the roles. To create your bespoke role, click the [ Add a new role ] button.
Once the Adding a new role page appears, you can opt to populate the role with settings from one of the standard Moodle roles, or to load a role preset file that you may have got from another Moodle site. Now, as we only want our new role to have specific permissions, we click Continue to move on so that we can define our role.
Give the role a shortname (lowercase, no spaces, unique), a full name (in this case Edit forum) and a description (for your information). In a series of checkboxes, you can choose where the role can be assigned.
Now we can filter for the forum capabilities that we want to add to the role. To do this, in the Filter box, type in the keyword which in our case is Forum, which will filter out all but the forum capabilities.
As we want our role to edit posts and split threads, we need to locate the capabilities associated with these actions, namely Edit any post and Split discussions, and set them to Allow.
Click the [Save changes ] button.
How to give a user the role in Moodle 2.7
Now that the role has been created, teachers can give that role to individual users either at a course level or in individual activities. Applying a role at course level is done through Course administration > Users > Enrol users in the same way you would enrol a user into a course (see below).
To give a role to a user at activity level role, go into the activity (in our case that would be the forum) and from the Administration block navigate to Forum administration > Locally assigned roles.
Here, click the course level role (in our case this is Edit forum) you want to add the user to - just select the user in the right hand pane and click [ Add ] to give them the role.
When the student now enters this forum and views posts, they see the following which allows them to manage posts within the forum;
Below is an example of a post they would see if they had been given the role of non-editing teacher in the same forum showing that using bespoke roles is a great way for you to add specific actions to individuals in a particular context;
Where else can I use this?
Other examples of where you may want to use this as follows;
- Temporary teachers in a school or course developers working on your Moodle site who require access as an editing teacher but who you do not want to backup courses
- Certain students or non-teaching staff to be able to approve glossary or database entries
- Trusted pupils who you want to be able to enrol other pupils into courses for school clubs
…the list goes on!