mitodl/micromasters

Exams: Don't use any of `Honor` or `Audit` enrollment modes for enrollments

Closed this issue · 6 comments

Steps to Reproduce

  • Setup the latest edx Devstack or visit https://courses-qa.mitxonline.mit.edu/
  • Enroll in this test course
  • Start the course and visit any of the units in this course
  • You will see You do not have access to proctored exams with your current enrollment. error message (Ref Screenshot below)

Expected Behavior

  • The user is able to visit protored exams without any issues or permission error messages

Actual Behavior

  • Upon visiting a proctored exam the user sees You do not have access to proctored exams with your current enrollment. error message

Related Issues

There have been some updates in the proctoring access with respect to the enrollment mode of the user in the course. With those updates a user enrolled with Audit/Honor mode is now unable to access the proctored exam.

For more details take a look at below:

Possible Resolution:

Screenshot or Screencast

Screenshot 2022-04-11 at 8 30 02 PM

To be clear, this is only an issue for enrollments in exam courses, which only applies to FA / DEDP courses.

@arslanashraf7 here is where we enroll the user in an exam run : https://github.com/mitodl/micromasters/blob/master/dashboard/views.py#L200

What happens here is we create an exam enrollment for the user in a given exam run, when the user gets that option on the dashboard to enroll in the exam run(that means they were eligible, paid, have passing grade for the course, and scheduling perion is present). Here we use staff credentials to create the user enrollment in the course and not the users credentials.

But this function is used in a variety of places: in the course enrollment view, ecommerce api( the place you pointed out), and exam enrollment view.

Let me know if there is anything I can clarify.

@annagav Thanks for adding these details.

@pdpinch In addition to the above, we also need to decide which enrollment track we are going to use instead of Audit. These modes are currently available in edX.

Also just to note, In my opinion changing the enrollment track might have a significant impact on the user experience within the edX. The impact would mostly be related to the courseware access, certificate, and probably payment. So, we need to consider these before selecting an enrollment track to enroll the users.

@annagav

Here we use staff credentials to create the user enrollment in the course and not the users credentials.

Can you confirm why we use we are using staff credentials at some points and the user's own credentials on other?

As you mentioned, Here we use Staff credentials
Here in the dashboard we are using self credentials
Here in eCommerce we are using self credentials

In addition, I'm asking this because creating enrollment with a mode such as Verified will require a staff API key/Access Token, unlike Audit enrollments. Reference

@pdpinch FYI.

@arslanashraf7 We were using staff credentials because the exam course was going to be by invitation only, but I am not entirely sure on all the reasons, all we had some trouble with getting it to work. Maybe @rhysyngsun would have more insight into the reasons, and whether it is still important to enroll using staff credentials.