Group Teaching Assistant Role

In campus education often relies on Teaching Assistants to handle some of the load of managing students in a large course.
The RBAC initiative has listed all the current roles and new roles that are being proposed in the following file:
https://docs.google.com/spreadsheets/d/1htsV0eWq5-y96DZ5A245ukfZ4_qeH0KjHVaOyfqD8OA/edit#gid=908503896


At the instructor level we have:

Course Admin

Course Staff

Limited Staff

Can do everything in Studio and LMS. Currently called "Admin" in UI

Can do everything except for managing Admins. Same as current "Staff" role.

Can do everything in the LMS. No access to Studio.


And the current roles also include some forms of Teaching Assistants. In particular Community members with capacity to moderate forums.

Group Community TA

Community TA

Group Community TAs are members of the community who help course teams moderate discussions. Group Community TAs see only posts by learners in their assigned group. They can edit or delete posts, clear flags, close and re-open threads, and endorse responses, but only for posts by learners in their group. Their posts are marked as 'Community TA'. Only enrolled learners can be added as Group Community TAs. Today, this is a permission set assigned to a Learner account.

Community TAs are members of the community who help course teams moderate discussions. They can see posts by learners in their assigned cohort or enrollment track, and can edit or delete posts, clear flags, close or re-open threads, and endorse responses. Their posts are marked as 'Community TA'. Only enrolled learners can be added as Community TAs. Today, this is a permission set assigned to a Learner account.

 

Proposal

The proposed modification is to include a new kind of role that has the capability to manage student grades, but its access is based on a row level permission. This row level permission will check if the row user belongs to a team where the user requesting the permission is the designated teaching assistant.


Technical Approach

Given the flexible nature of this kind of permission, the proposal is to have this implemented as a rule that can be extended using an openedx-filter. When checking for the relation between the Group TA and the learner, the platform can pass the user_id of both the Group TA and learner and the course key to the filter.
In a separate platform plugin, developers can write their own custom logic.
In the case of the Spanish consortium the plugin will check for the Group TA in the Course Team Management and their membership in the Teams. When the Group TA also belongs to the same team as the student they will be granted the permission to manage the grades.

This proposal will be refined by collaborating with the developers of the RBAC initiative. The ongoing conversation is being captured in the github thread:


https://github.com/openedx/platform-roadmap/issues/246#issuecomment-1710674611