Install a new site before this patch Add an override of the moodle/site:accessallgroups at a course context (e.g. PROHIBIT) for non-editing teachers Run the upgrade Confirm that the capability is still present at the site context for non-editing teachers Confirm that the capability is still present at your course context for non-editing teachers Install a brand new site Confirm that there the capability is not granted to the non-editing teacher on a new install
- Install a new site before this patch
- Add an override of the moodle/site:accessallgroups at a course context (e.g. PROHIBIT) for non-editing teachers
- Run the upgrade
- Confirm that the capability is still present at the site context for non-editing teachers
- Confirm that the capability is still present at your course context for non-editing teachers
- Install a brand new site
- Confirm that there the capability is not granted to the non-editing teacher on a new install
See https://moodle.org/mod/forum/discuss.php?d=337451#p1369658 for some explanation.
IMO we massively over-use the accessallgroups capability which negates much of its value for a large subset of users.
As a result, I would like to propose that we remove it from the non-editing teacher role.
Consider the following scenario:
You have a course with 1,000 students in it. There are many activities in the course, and you make use of Moodle's Group functionality to break users into manageable groups for some activities. You create 50 groups, each with 20 students in it. (You may even have multiple sets of groups for different purposes, but we'll ignore that for now).
You have a number of tutors at your disposal. These may be a mixture of other teachers, PhD students who are tutoring, and other remote staff paid to tutor a selection of these groups.
Each student is placed into one groups within the course, and these groups are used for the various activities - forum, assignment, wiki, chat, etc.
The tutors are only responsible for a couple of the groups and they are also placed into those groups.
At the moment this will work well for the students. They will only ever see posts from the one group that they're in. Everything is awesome.
However, things are a mess for the tutors with our default install.
These tutors are not responsible for writing the course content. They're only responsible for marking work for, and assisting those students in the groups that they are in. They don't care about the 47 groups that they are not in.
The role in Moodle which suits them best is the Non-editing teacher role (teacher).
But in our default install, the non-editing teacher role is given the moodle/site:accessallgroups capability. This means that they can see every group.
In order for the groups to work well in this (very common) scenario, we need to remove this capability.
Doing so has many benefits:
- non-editing teachers can only see the groups that they are in;
- this means that the Dashboard only shows updates for their groups;
- it means that they only receive forum notifications for their groups; and
- it means that they can only mark the groups that they're responsible for.
So I'd like to propose that we remove the moodle/site:accessallgroups capability for new installs. Of course, we should not remove it for existing installs.
We should also improve our groups (and grouping) documentation to explain how these different roles and capabilities work together with groups.