From: Mike G. v. a. <we...@ma...> - 2010-05-19 02:07:53
|
Log Message: ----------- added definition of sub check_user_id Modified Files: -------------- webwork2/lib/WeBWorK: DB.pm webwork2/lib/WeBWorK/ContentGenerator/Instructor: UserList.pm Revision Data ------------- Index: DB.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/DB.pm,v retrieving revision 1.110 retrieving revision 1.111 diff -Llib/WeBWorK/DB.pm -Llib/WeBWorK/DB.pm -u -r1.110 -r1.111 --- lib/WeBWorK/DB.pm +++ lib/WeBWorK/DB.pm @@ -1915,6 +1915,15 @@ # utilities ################################################################################ +sub check_user_id { # (valid characters are [-a-zA-Z0-9_.,]) + my $value = shift; + if ($value =~ m/^[-a-zA-Z0-9_.]*,?(set_id:)?[-a-zA-Z0-9_.]*(,g)?$/ ) { + return 1; + } else { + croak "invalid characters in user_id field: '$value' (valid characters are [-a-zA-Z0-9_.,])"; + return 0; + } +} # the (optional) second argument to checkKeyfields is to support versioned # (gateway) sets, which may include commas in certain fields (in particular, # set names (e.g., setDerivativeGateway,v1) and user names (e.g., @@ -1937,13 +1946,10 @@ croak "invalid characters in '$keyfield' field: '$value' (valid characters are [-a-zA-Z0-9_.,])" unless $value =~ m/^[-a-zA-Z0-9_.,]*$/; } elsif ($versioned and $keyfield eq "user_id") { - croak "invalid characters in '$keyfield' field: '$value' (valid characters are [-a-zA-Z0-9_.,])" - unless ( $value =~ m/^[-a-zA-Z0-9_.]*,?(set_id:)?[-a-zA-Z0-9_.]*(,g)?$/ ); + check_user_id($value); # (valid characters are [-a-zA-Z0-9_.,]) see above. } elsif ($keyfield eq "ip_mask") { croak "invalid characters in '$keyfield' field: '$value' (valid characters are [-a-fA-F0-9_.:/])" unless $value =~ m/^[-a-fA-F0-9_.:\/]*$/; - } elsif ($keyfield eq "user_id") { - } else { croak "invalid characters in '$keyfield' field: '$value' (valid characters are [-a-zA-Z0-9_.])" @@ -1952,6 +1958,7 @@ } } + # checkArgs spec syntax: # # spec = list_item | item* Index: UserList.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/ContentGenerator/Instructor/UserList.pm,v retrieving revision 1.96 retrieving revision 1.97 diff -Llib/WeBWorK/ContentGenerator/Instructor/UserList.pm -Llib/WeBWorK/ContentGenerator/Instructor/UserList.pm -u -r1.96 -r1.97 --- lib/WeBWorK/ContentGenerator/Instructor/UserList.pm +++ lib/WeBWorK/ContentGenerator/Instructor/UserList.pm @@ -69,7 +69,7 @@ #use CGI qw(-nosticky ); use WeBWorK::CGI; use WeBWorK::File::Classlist; -use WeBWorK::DB; +use WeBWorK::DB qw(check_user_id); use WeBWorK::Utils qw(readFile readDirectory cryptPassword); use constant HIDE_USERS_THRESHHOLD => 200; use constant EDIT_FORMS => [qw(cancelEdit saveEdit)]; |