updated copyright dates
put most of wwdb_upgrade in a library so it can be accessed from elsewhere.
second pass -- now working. this script doesn't support upgrading courses that were archived before per-course version tracking was implemented, so you'll have to upgrade to the current version (24) before archiving/unarchiving courses.
steps to adding per-course database upgrades -- doesn't work yet, don't use. i just wanted to get it in the cvs repo before the weekend.
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.
Some bugfixes, preliminary commit of relax_restrict_ip function. this commit - adds relax_restrict_ip and hide_score_by_problem columns to the set and set_user tables - adds the corresponding fields to the Set and UserSet DB Records - patches 'no location' handling in the location management routine in CourseAdmin.pm - improves Authz->checkSet's handling of the case of location restriction when no addresses exist for a location, makes it use any cached set that may be available, and makes it honor relax_restrict_ip - corrects a typo and some comments in DB.pm - allows ip restriction fields in ProblemSetList when importing from or exporting to set definition files - updates ProblemSetDetail.pm to handle the relax_restrict_ip field The relax_restrict_ip function has not been well tested. hide_score_by_problem isn't yet used.
Preliminary commit of code to restrict access to assignments by client IP address. This commit adds the database tables for IP address restriction, updates check_modules.pl to require Net::IP for address matching, adds database calls in DB.pm for manipulating locations and addresses, and adds location restriction to the set editing in ProblemSetDetail. This commit does not add actual restriction to sets, nor the ability to create locations to which to restrict access.
Update stanzas for modifying hide_score and hide_work columns in set and set_user to have more intelligible names, and add a default value.
add stanzas to update definitions of hide_score and hide_work in set and userset, and to add time_limit_cap column to those tables.
Add hide_score and hide_work columns to the set and set_user tables. These are currently only used by gateway/quiz assignments.
fixes to index structure. * the prefix lengths on keyfield indexes is now 255, the length of the field. * the index that contains all three keyfields is now a UNIQUE KEY * psvn is no longer the PRIMARY KEY, now a UNIQUE KEY (and it's the second UNIQUE KEY, after the user_id/set_id one) also, made wwdb_upgrade a little easier to maintain by not hardcoding version numbers into the @DB_VERSIONS structure.
alphanumeric keyfields TINYBLOB NOT NULL instead of BLOB for UNIQUE indexing. check for table existence before doing something with that table.
incorrectly set type of set_user.status column to INT; should be FLOAT. if you ran wwdb_upgrade after the last commit, you lost the decimal portions of any status values. thanks to gavin for noticing.
change key.timestamp type to BIGINT and problem_user.status type to INT.
don't attempt to output db_version if it's undefined, don't double-space output quite so much.
don't need separate code for initilization -- we can just set db_version to 0 and run through all the upgrade steps normally. since there are no courses, only the global updates will run, which is fine.
this script uses a db_version value to run upgrade code to incrementally bring the database up-to-date with the current version of webwork. it can also detect and empty database and initialize it with any system (non-course) tables (like the depths table) and initilize an up-to-date db_version value.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
|aubreyja at gmail dot com||ViewVC Help|
|Powered by ViewVC 1.0.9|