openwebwork / webwork2

Course management front end for WeBWorK
http://webwork.maa.org/wiki/Main_Page
Other
144 stars 165 forks source link

Feature proposal: Providing bypass mechanism for access to assignments when using LTI "homework" grade-passback in special cases #1139

Open taniwallach opened 4 years ago

taniwallach commented 4 years ago

https://webwork.maa.org/moodle/mod/forum/discuss.php?d=4899 raises again the issue of cases when LTI authentication fails for some specific students. See also:

My experience is that valid UTF-8 data seems to be handled properly by LTI on WW 2.15 (at least Hebrew works properly).

Debugging these issues may be somewhat difficult, as we need to see enough of the "raw" data arriving in the LTI connection request to find out what is going wrong. We might also need access to the LTI secret to confirm that fixes are working (or do testing on peoples production servers where problems are occurring).

In any case, the workaround for special cases when LTI authentication fails for some specific students is to give the relevant students password based access. When "homework" grade-passback is enabled this does not work - as the system will block access to assignments for students who have not accessed the assignment via the LTI link once (which is needed to set the lis_source_did used for grade-passback in the database).

This raises the question how to allow access to assignments in such special cases, even if the "homework" grade-passback will not work.

Note: To manually "fix" grade pass-back we would need to make it possible for an instructor to manually enter/edit the value of lis_source_did in the set data for a student. This would be very dangerous as messing up the LTI data in the database could result in scores ending up in the wrong places. Even if we permitted it - determining the value to set is not simple - as it would require accessing the debug data for the relevant student's failed connection. Thus, I think this is just not a practical and safe option to consider.

The best idea I came up with would be to create a mechanism to allow certain students access to their assignments even with a missing lis_source_did (in which case the grade-passback would fail). To do so we would want to modify lib/WeBWorK/ContentGenerator/ProblemSets.pm so that when $LTIRestricted is set, it would be bypassed (set to false) for selected accounts.

@dlglin @mgage @glennricster - What do you think about these ideas?

taniwallach commented 4 years ago

On additional thought: Anyone who can arrange to install any patch with the proposed code should be able to arrange for a database scheme update for a specific course, so maybe that is not such a bad idea. It is still somewhat more complicated and maybe dangerous for a live course than utilizing the comments field, and would require modifying more files than just lib/WeBWorK/ContentGenerator/ProblemSets.pm.

wesleyburr commented 4 years ago

Just a quick chime-in about one specific aspect: I've definitely had the LTI fail from Blackboard when the comments portion of the Web Link (Tool Provider) had characters in it that the parser didn't like. If I remember correctly, colons are a particular bad member - any inclusion of them caused the link to fail because the Perl parser couldn't handle it. Which surprised me when it happened, because the comments field isn't even used for anything as far as I was aware ... (at this time).

I appreciate the thought on a feature add - I've gotten my one case worked around this semester, as the student has changed her account name via IT to drop the umlaut, because it was also causing issues with something else. And we're a North American uni, so we don't have a huge proportion of accented folks. I suspect that if WW were to be used more in Germany or France, their student population is significantly more likely to have accents in their names, and this would come up a lot.

drgrice1 commented 4 years ago

Clearly the best thing to do is to fix WeBWorK so that these issues don't occur. Of course, as you point out, debugging and fixing these issues can be challenging. So, just for clarification, you are proposing that we implement a work around for issues that have not been fixed, correct?

taniwallach commented 4 years ago

Clearly the best thing to do is to fix WeBWorK so that these issues don't occur. Of course, as you point out, debugging and fixing these issues can be challenging. So, just for clarification, you are proposing that we implement a work around for issues that have not been fixed, correct?

@drgrice1 - Yes, I'm proposing a work-around, so that until we can determine exactly what is wrong and what needs to be fixed, and actually fix ut - there will be a convenient working approach, even if it is not ideal.

Just a quick chime-in about one specific aspect: I've definitely had the LTI fail from Blackboard when the comments portion of the Web Link (Tool Provider) had characters in it that the parser didn't like. If I remember correctly, colons are a particular bad member - any inclusion of them caused the link to fail because the Perl parser couldn't handle it. Which surprised me when it happened, because the comments field isn't even used for anything as far as I was aware ... (at this time).

As I understand it, the LTI standard requires that the digital signature be calculated so it provides verification of all the relevant data being sent to the LTI provider. Any fields / texts which are triggering problems are things to look into - and having detailed examples of the debug output from the WW side of LTI might help.

I appreciate the thought on a feature add - I've gotten my one case worked around this semester, as the student has changed her account name via IT to drop the umlaut, because it was also causing issues with something else. And we're a North American uni, so we don't have a huge proportion of accented folks. I suspect that if WW were to be used more in Germany or France, their student population is significantly more likely to have accents in their names, and this would come up a lot.

As I wrote in the forums, I suspect that the problem may be that something is wrong with the data being sent by the LMS, possible due to some incorrect assumption about the encoding of the data the LMS is using and putting into the LTI data. As you commented, with relatively few students with accented characters in their names - problems are not frequent, and it may not be at all obvious what is wrong in the few problem cases.