seanbeirnes
Community Participant

Hello @patfm,

I second that JavaScript is not a great solution for this. Users can easily and quickly disable your custom JavaScript from loading if they know where to look, and in such case, the user would be able to see all the options to add a Grader or TA whether or not they completed the FERPA training. Removing or disabling a button in the UI with JavaScript also does not prevent someone from still accessing the API to complete that action, it just puts it out of the reach of some users and makes it only slightly more annoying for those who know how to get around it. 

The solution @chriscas provided with implementing a new user role is a much safer (and reliable) option. However, you may want to consider what the implications of this may be for your enrollment process if your institution has an automated enrollment script or tool that syncs your SIS system with Canvas. Adding another role may cause other headaches down the road when trying to get things to sync up.

I will propose another option: Handling this external to Canvas. You may consider disabling the "add user" permission for the teacher role and having the "add user" requests sent to a central source like a department support email, web page, or form. For example, when the email account receives a request, you could add the user SIS ID, Course ID, and Role to a spreadsheet and, maybe every day or so, convert it into a enrollments.csv SIS Import. You could also compare that spreadsheet with the data the Registrar has using Excel or with something like a Python script to help automate the process. You could also set up a Google Form or Microsoft form where instructors submit the request and then have a Python script do the FERPA training status lookup for you and perform the enrollment via the Canvas API (or SIS Import). If you are a Microsoft Institution, you may also want to look into Power Apps as a low code solution (instead of using Python) to automate this process with a Microsoft Form.

I hope this helped!

View solution in original post

0 Likes
Who Me Too'd this solution