[API] Update "Enroll a user" API endpoint to support enrolling in concluded/closed courses for users with permission

Problem statement:

Currently if a course is concluded, users can no longer be added to the course. We often receive requests for new instructors to be added to a past course to help them prepare for teaching a course that isn't actively running. Our current workaround has been to temporarily extend the course end date, add the user, make sure their enrollment is accepted, and revert the end date back. This is not ideal to need to adjust course dates to make it so a user can be added. I saw a suggestion to use SIS Imports to handle this, but this requires generating a properly formatted import file, and the user performing the process to have root admin access with SIS data import permission. However, we don't want to give this level of access to SIS Imports to all users that we provide permission to enroll users after a course end date. We also don't want them to need root admin access when they should only have permission in select sub-accounts. We are also aware some schools may not want users that have permission to add users to add them after a course end date.

Proposed solution:

Update the "Enroll a User" API endpoint to allow a user to enroll a user in a concluded/closed course. To help make it clear with the API call that they are allowing enrollment in a concluded/closed course, include a query parameter for something like force enroll if course is concluded that defaults to false. The API endpoint would still require the user to have the permission to enroll users in the course. Ideally a new permission would also be added for adding users after course is concluded. This would allow institutions to use permissions to still provide some users access to add users before/during a course, but not necessarily allow them to add users after a course is concluded.

User role(s):

admin

5 Comments
jpoulos
Instructure Alumni
Instructure Alumni
Status changed to: Seeking Clarity

Thanks for the submission!

It seems the new use case here is the ability for a teacher to gain access to the content of a concluded course so that they can build out materials for their own course. Is that correct?

If so, it seems like exporting the content or hosting the content on commons would be a prudent solution that requires much less trickery. There is already and API endpoint to export content, as well. Of course, the teacher would need a sandbox course that they could import the content into, or they would need to use the resource previews that are available in commons. 

We'd definitely want to consider whether there are consequences to opening up concluded courses to net new enrollments; it's a pretty fundamental shift in what it means for a course to be concluded so I am not sure this would appeal to a wider audience.

Do you think managing this in a way like how I outlined would make more sense?

JamesSekcienski
Community Coach
Community Coach
Author

@jpoulos 

No that is not a sufficient workaround.  It isn't just viewing the content; it is seeing examples of past student work and seeing examples of student/teacher interaction in the course.

Considering new users can be enrolled in a new course by changing the course dates, and presumably by adding them to an SIS Import, the ability to enroll users in concluded courses already exists.  This idea is about simplifying the workflow, no longer needing course dates to be temporarily changed, and ensuring that it doesn't depend on SIS related permissions and admin access at the root account.  I also suggested in the solution a new permission related to this in case there are schools that don't want to provide this access and so access to this ability can be controlled.

Also, why didn't I receive a notification that this was changed to "Seeking Clarity"?  I checked my notifications and don't see a notification from yesterday about you commenting on this nor the status changing.  Could this be why others may not be responding to requests for "Seeking Clarity"?

jpoulos
Instructure Alumni
Instructure Alumni

Thanks @JamesSekcienski. Our community team is looking into the issue about notifications.

Since I don't think allowing for new enrollments in concluded courses is something that will be best accomplished via permissions, I've added this to the Make account configuration more flexible through new account settings theme. Settings make more sense to me because I suspect that some accounts will not want to allow for this at all, and I presume that if someone has the ability to modify enrollments, they should also have the ability to add teachers to concluded courses if the setting is enabled.

Note, too, that this seems very much similar to this idea. You are not alone!

jpoulos
Instructure Alumni
Instructure Alumni
Status changed to: Added to Theme
 
JamesSekcienski
Community Coach
Community Coach
Author

@jpoulos Thank you!  The suggestion of an account setting does sound like a simpler approach to implement this ability while still allowing some flexibility for schools to choose whether or not to allow it.