Now that we have covered the basics of setting up a course and adding content, we need to take a look at some of Moodle’s underlying capabilities. At first glance, this may seem like administrivia, but understanding roles and groups is one of the keys to unlocking Moodle’s full potential as a learning environment. A person’s role in a course determines what he can do—in other words, what capabilities he has. It’s a very powerful system, but it does have a bit of underlying complexity. You can use groups to create student workgroups, recitation sections, or any other arbitrary grouping you need to realize your learning design.
We will start by discussing roles, since anyone who wants to do something in your course needs to be assigned a role.
This section covers the following MTC skills: 7.1 Enrolling participants; 7.5 Roles
The new roles and permissions system in Moodle provides you with a huge amount of flexibility for managing how students and other people interact with your course. In older versions of Moodle (prior to 1.7), there were only six roles possible: guest, student, non-editing teacher, editing teacher, course creator, and administrator. Whilst the new system supports these roles out of the box, it also allows you to create and customize roles, and to change what a given role can do in each activity. For example, you can now create permissions in individual forums, which allows you to let students act as moderators in one forum while you retain the moderator role in all of the other forums in your course.
If it seems a bit daunting, don’t worry. Using roles and permissions is something you can take slowly. You can start the usual way, assigning people as students, teachers, and other roles specified by your institution. Later, when your course design grows more elaborate, you can begin to experiment with overrides and assigning specific roles in specific contexts.
We’ll start simply, by assigning users to predefined roles in your course. Then we’ll take a look at the roles and capabilities system and later discuss how to use the advanced features.
Most of the time, students will enroll themselves or be added automatically by your university’s enrollment system, so there shouldn’t be much need for you to manually enroll students. However, if you need to add a teaching assistant, an outside guest, or a student who is having a problem with financial aid, you must manually enroll them, i.e., assign them a role in your Moodle course.
By default, teachers are only allowed to assign the roles of non-editing teacher, student, and guest. If you want to assign the role of teacher, you will need to ask your system administrator for this to be allowed.
To assign a user the role of student:
Choose the type of role you wish to assign, e.g., student
On the “Assign roles” page, there are two columns, as shown in Figure 4-1. The left column lists users who currently have that role, and the right column lists users who don’t.
Users must have an account on your Moodle site before you can assign them a role in your course. If they don’t appear in either the existing or potential users list, they will need to create an account before they can be assigned a role.
Between the two columns is a hidden assignment checkbox next to an eye icon, for hiding which role a user is assigned to so that the user doesn’t appear in the list of course participants. Click the checkbox before assigning a role if required.
Role assignments are not hidden from admins or teachers. They can always see who is assigned a role in a course.
Hidden assignments are also useful if you don’t want everyone with teacher rights to be listed in the course description on the front page of your Moodle site.
Find the student you want to add to your course in the righthand column. You can limit the list by searching for the student’s name or email in the Search box below the righthand column.
Select the student’s name from the list and use the left-facing arrow button to add the student to the list in the lefthand column.
You can add multiple students by holding down the Shift key to select a number of students in a row. If you want to select multiple students who aren’t listed next to each other, hold down the Ctrl key (or Apple key on a Mac) and click each name you want to add.
Students will have access to your course as soon as you assign them a role. They won’t need to have an enrollment key or to confirm the enrollment.
If a student drops your class, you’ll want to remove the student from your Moodle course as well. Leaving a student enrolled in your Moodle course when she is not on the official roster makes grading and class management much more difficult. When you record grades or look for student assignments, extra students on the roll gets confusing. The nonparticipating student will also have access to your discussion boards and other potentially sensitive information.
Fortunately, removing students is easy. Simply reverse the above procedure.
If your university doesn’t have an automatic enrollment system, then ensuring that only students who are officially enrolled in your course have access to your Moodle course can be tricky.
Jason: At my university, students used to be able to drop and add courses at will for the first three weeks of the semester. Many instructors found it difficult to track the constant movement in the roster.
To minimize the amount of work you need to invest in this administrative detail, we recommend a three-pronged strategy.
First, use the course enrollment settings to limit who can enroll in the course and when. Set an enrollment period for the length of your drop/add time. Be sure to set an enrollment key as well. Only students who know the key will be able to enroll in your course, so you won’t need to worry about students enrolling without permission. For more information on these settings, see Chapter 2.
Second, closely monitor your official course roster during the drop/add period. Be consistent about dropping and adding students on a regular basis so you don’t have a big mess at the end of registration.
Third, encourage students who are enrolled to create an account and join your Moodle course as quickly as possible. Many instructors make logging in and joining their Moodle course a small, mandatory assignment. This helps students by forcing them to access your online resources early in the semester, and it makes enrollment management easier for you, since you won’t have to add as many students manually.
The new roles system introduces some new terminology that is important to understand before you dive in.
This may be confusing at first, but it’s worth taking some time to understand the power of the new system.
Jason: I was part of the design team for this system and even I had to look up a few details!
There are four primary concepts to understand:
A role is an identifier of the user’s status in some context (e.g., teacher, student, forum moderator).
A capability is a description of a particular Moodle feature (e.g., moodle/blog:create). Capabilities are associated with roles. There are over 150 capabilities within Moodle.
A permission is a value that is assigned to a capability for a particular role.
A context is the scope within which a role assignment is valid. Contexts are organized in a hierarchy, where lower (more specific) contexts inherit capabilities from higher (less specific) contexts. The contexts in Moodle in order of inheritance are:
All contexts in the site, including site settings and user administration
A single Moodle course
A module instance within a course (a specific forum, quiz, wiki, etc.)
A specific block instance within a course (at the time of this writing this feature is not fully implemented)
Roles are made up of a matrix of capabilities and permissions that determine what a user can do within a given context. For example, a user may have course creator privileges at the site level but be unable to post to a particular forum in a certain course.
The permissions determine whether someone can use a capability. Permissions may be set to one of four values:
The default setting. If a capability is set to inherit, the user’s permissions remain the same as they are in a less specific context, or another role where the capability is defined. For example, if a student is allowed to attempt quiz questions at the course level, his role in a specific quiz will inherit this setting.
This enables a user to use a capability in a given context. This permission applies for the context that the role gets assigned plus all lower contexts. For example, if a user is assigned the role of student in a course, she will be able to start new discussions in all forums in that course (unless a forum contains an override with a prevent or prohibit value for the capability).
Prevent disables a capability for a user in a given context but does not disallow it in a more specific context. You can prevent students from adding attachments to forum posts in your course, but allow them to do so in one particular forum.
Prohibit is rarely needed, but occasionally you might want to completely deny permissions to a role in a way that cannot be overridden in any lower context.
Keep in mind that permissions are set within a role, and then people are assigned to roles in a given context. A person can be assigned to more than one role, depending on the context, or even multiple roles within the same context.
The capabilities within a given role can also be overridden within a specific context. Let’s say you want to create a forum in which students can rate each other’s forum posts. (By default, only teachers can rate forum posts.)
The way to achieve this is through a role override. As long as the capabilities you want to allow your students to have in your course (or within a module in your course) aren’t prohibited at a higher level, you can override the permissions. Within your course, for example, you can override roles at the course level or in a particular activity. If you want to change what students can do anywhere in your course, override the role at the course level. If you want to create a different set of permissions for a given activity, override the role in the activity itself.
Overriding roles is itself a permission. By default, teachers are unable to override roles so this ability must first be granted by your system administrator for the course or site as appropriate. They must also set which roles can be overridden by the teacher role. If you don’t see the “Override roles” link in the Roles tab, ask your system administrator.
The override interface will only show you the capabilities for the context you are overriding. So if you want to allow students to rate forum posts, you can override the student role in a particular forum. You will only see the forum capabilities in the interface, as shown in Figure 4-2.
To set a role override for an activity:
Click the Update button for the activity for which you want to create the override.
Click the Roles tab and then click the “Override roles” link just below the tabs.
Choose the role you want to override, e.g., student.
Modify the permissions for the override on this activity. (The permissions the role currently has are highlighted in white.)
Be sure to read the security risks (indicated by the yellow triangle on the right side of the permissions list) for each capability. Some capabilities can present severe risks to student data if you are not careful.
Click the “Save changes” button. Anyone with the role you have just overridden will now have those capabilities in this activity when they next log in to Moodle.
To set a role override at course level:
Click “Assign roles” in the Administration block.
Click the “Override roles” link.
The remaining steps are the same as for setting a role override for an activity.
Overrides allow you to create a lot of variation in the way students interact with an activity. However, before digging into the overrides system itself, be sure you have a clear understanding of what you are trying to achieve educationally with the override.
In addition to assigning roles in your course, you can also assign roles in activities. Let’s say you want to create a forum and allow particular students to moderate the discussions. To moderate, they will need to be able to delete posts, edit posts, and move threads. But the normal student role doesn’t allow them to do these things, nor do you want them to be able to moderate other forums in your course, or all students to be able to moderate.
The way to achieve this is by assigning a role in the activity module context. If you assign the role of non-editing teacher to the students you want to moderate forum discussions, then the students will have non-editing teacher capabilities in that forum only.
The method of assigning a role in the activity module context is very similar to assigning a role in your course.
To assign a user a role in an activity module context:
Click the Update button for the activity in which you want to assign a role.
Click the Roles tab.
Choose the role you want to assign, e.g., non-editing teacher.
On the “Assign roles” page, find the user you want to assign the role to in the righthand column.
Select the user’s name from the list and use the left-facing arrow button to add the user to the list in the lefthand column. The user will now have the role you have just assigned in the activity when he next logs in to Moodle.
Depending on the capabilities you want to allow, there may not be a suitable role you can assign. You may need to contact your system administrator and ask for a new role to be created.