| Log Message: |
Add set-level proctor login password for proctored gateway/quiz
assignments, improve handling of proctor keys and permissions for
proctored assignments, bug fixes for recently added features.
This commit
- adds the ability to specify a set-level proctor for proctored
gateway/quiz assignments. this is done by adding a proctor with
a username "set_id:setName", where "setName" is the name of the
set, adding a "restricted_login_proctor" field to the set tables
in the database, and allowing Authen::Proctor and
ContentGenerator::LoginProctor to appropriately deal with this
possibility.
- updates proctor permissions and status in global.conf.dist,
changing the old "proctor_quiz" permission level (3) into two
levels, "proctor_quiz_login" and "proctor_quiz_grade".
wwdb_upgrade includes a stanza to make this change to proctors
that already exist in courses.
- adds a "Proctor" status in %statuses in global.conf, with no
valid behaviors. this allows the creation of proctor users
in a course who have the permissionLevel to login (and thus
proctor), but not to access the course.
- improves GatewayQuiz explanatory messages when scores or work
are hidden.
- improves GatewayQuiz proctor key management, especially for
tests with more than one allowed attempt. this includes
adding a deleteAllProctorKeys() method to DB.pm.
- updates Instructor Tools, UserList.pm and ProblemSetDetail
to deal with set-level proctoring. c.f. the note below about
the ramifications of these changes.
- updates ProblemSetList to deal with new problem set fields
set_locations and set-level proctors that are located in a
different database table than the set data.
- fixes bugs in UserList and ProblemSetDetail dealing with the
setting of hide_score, hide_score_by_problem, and
time_limit_cap.
This update hides set-level proctor users from the classlist
editor (UserList.pm) and instructor tools (Index.pm) interfaces.
They can be created, modified, and deleted at the homework sets
editor page (ProblemSetDetail.pm) only, and there only implicitly:
we never indicate that a user is being created or modified behind
the screen.
|