I'm looking for recommendations on an approach to limit what information a non-editing teacher can view in a course in Moodle 4.4.1.
Background
We are selling access to a course built in our Moodle LMS. We are using a single course for all customers/schools.
In the course we have applied the following settings:
- Group mode: Separate groups
- Force group mode: Yes
- Default grouping: None
At this time, we are only supporting self-enrollment using an enrollment key. We create a new Self-enrolment enrollment method for each school that purchases access. Here are some of the key properties we are utilizing:
- Custom instance name: School name
- Allow new self enrolments: Yes
- Enrolment key: we generate a unique key and enter it here
- Use group enrolment keys: Yes
- Default assigned role: Student
- Max enrolled users: we set to the number of users purchased
Next we create a new group in the course for the school. Here are the key properties we are utilizing:
- Group name: School name
- Enrolment key: same key that was generated for the Enrolment key
- Group membership visibility: Only see own membership or Hidden
So far this is working well for us. We are able to provide each school with their unique enrollment key and when users enroll, they are automatically added to the group. From my testing so far, this has been sufficient to ensure students can't find students from other course groups.
For additional context, we have comments, discussions, and messaging disabled so there's really no need for students to find each other.
What we desire
Next we want to figure out how to get the teacher into the course. The primary purpose for this is so that the teacher can track student progress and to view students' grades. The teacher does not need much else and does not need to be able to edit grades. The assumption is that if the teacher wants to utilize the grade results from this course, they will have to manually copy them over to their own system (until next year when we get LTI with grade sync working).
Requirements:
- A teacher can be added to the course as a non-editing teacher or similar custom role
- The teacher can view their students in the course participants section, but filtered to just the students in their group regardless of the selected filter
- The teacher can view the gradebook, but is limited to only the grades of the users in their school's group
- The teacher can not find any data from users of a different group
- A single course is used for all schools
As you can infer, we are trying to answer data privacy concerns before we allow teacher roles in the course. I'm looking for validation that this is achievable and that I'm not missing anything obvious from my initial testing mentioned below.
Questions
- Is it possible to restrict the data a user can view by a group?
- Is this actually the default behavior in moodle when using Separate group mode?
- I tested this by creating a group and enrolling 1 teacher and 1 student in the same group. There are other participants in the course too.
- When I signed in as the teacher and viewed participants, my view was automatically filtered by my group. I then removed my group filter and applied changes. Interestingly, I still only see users in my group.
- I then went to the gradebook and I again only see users in my group and I don't see a way to remove the filter here.
- If this seems like asking too much out of Moodle, what would you recommend to achieve similar functionality? We are trying hard to avoid duplicating courses for this school year.
- Is it possible to create one self-enrollment key used for students and another used for teachers that both enroll into the same course and group but with different roles?
- How does a user manually enroll in a group using a group key?
- I assume this must be possible somehow, but I haven't seen a place a user can go to join a group manually.
- What gotchas and downsides will we run into with this methodology?