Course requester role
The role of Course requester may be used to restrict users who can make course requests, perhaps to teachers only.
Removing the capability to make course requests
By default, all authenticated users can make course requests. To change this:
- Access Administration > Users > Permissions > Define roles.
- Edit the authenticated user role and change the capability moodle/course:request from allow to not set.
- Scroll to the bottom (or top) of the page and click the 'Save changes' button.
Role set-up
- Access Administration > Users > Permissions > Define roles.
- Click the button "Add a new role"
- Give the role a name e.g. Course requester, short name and description.
- Under "Context types where this role may be assigned", click on the "System" tick box turning it on.
- Change the capability moodle/course:request to allow.
- Click the button "Create this role".
Note: It is necessary to create a new role, rather than simply changing the capability for the teacher role, because it needs to be assigned as a system role. (The role of teacher is generally assigned in the course or course category context.)
Role assignment
- Access Administration > Users > Permissions > Assign system roles.
- Choose the course requester role to assign.
- Select one or more users in the Potential users list, and use the left-facing arrow button to add it to the Existing users list. If you want all your institution's teachers to be able to make course requests, you need to select and add all their names to the Existing users list.
Add a Course Request block
Now, this will work fine for those users who already have a Teacher role in at least ONE course on your Moodle site. When they log in, they will see the list of course(s) that they are enrolled in as Teacher(s) plus an All courses button. Clicking on that All courses button will show the complete list of courses on the site, plus a Request a course button, which they will be able to click to request a course.
However, those Moodle site users whom we have assigned to the Course requester role in System and who do not yet have a Teacher role in at least ONE course on your Moodle site will not see that All courses button, since by default all the available courses will be displayed. And consequently, the Request a course button will not appear to them. To solve this, a further step is required, viz. creating an HTML block on the front page with a direct link to /course/request.php! And of course that block will have to be made invisible to students etc.
- On the front page add a block: HTML: title: Course request contents: Click here to request a course with a link to <yourmoodlesite>/course/request.php
- Click the 'Assign roles' link and then in the administration block click the permissions link and edit the permissions so that only users with a Course requester or Teacher role will be able to view that block; students etc. won't see it.
Now Course requesters who are not yet enrolled as Teachers in Courses will be able to see that HTML block, click on the link and request a course. Of course, this block is redundant for those Course requesters who are also Teachers, but it is needed for Teachers requesting the creation of their very first course on the Moodle site.
See also
- Only teachers can request courses - how to do that? forum discussion