version 1.265, 2004/11/02 23:13:18
|
version 1.269, 2004/12/24 19:26:33
|
Line 1312 sub user_authorization_type {
|
Line 1312 sub user_authorization_type {
|
my ($type,$otherinfo) = split(/:/,$result); |
my ($type,$otherinfo) = split(/:/,$result); |
if($type =~ /^krb/) { |
if($type =~ /^krb/) { |
$type = $result; |
$type = $result; |
} |
} else { |
&Reply( $replyfd, "$type:\n", $userinput); |
$type .= ':'; |
|
} |
|
&Reply( $replyfd, "$type\n", $userinput); |
} |
} |
|
|
return 1; |
return 1; |
Line 1960 sub fetch_user_file_handler {
|
Line 1962 sub fetch_user_file_handler {
|
# Note that any regular files in the way of this path are |
# Note that any regular files in the way of this path are |
# wiped out to deal with some earlier folly of mine. |
# wiped out to deal with some earlier folly of mine. |
|
|
if (!&mkpath($udir.'/')) { |
if (!&mkpath($udir.'/'.$ufile)) { |
&Failure($client, "unable_to_create\n", $userinput); |
&Failure($client, "unable_to_create\n", $userinput); |
} |
} |
|
|
Line 2835 sub store_handler {
|
Line 2837 sub store_handler {
|
chomp($what); |
chomp($what); |
my @pairs=split(/\&/,$what); |
my @pairs=split(/\&/,$what); |
my $hashref = &tie_user_hash($udom, $uname, $namespace, |
my $hashref = &tie_user_hash($udom, $uname, $namespace, |
&GDBM_WRCREAT(), "P", |
&GDBM_WRCREAT(), "S", |
"$rid:$what"); |
"$rid:$what"); |
if ($hashref) { |
if ($hashref) { |
my $now = time; |
my $now = time; |
Line 3119 sub put_course_id_handler {
|
Line 3121 sub put_course_id_handler {
|
|
|
my $userinput = "$cmd:$tail"; |
my $userinput = "$cmd:$tail"; |
|
|
my ($udom, $what) = split(/:/, $tail); |
my ($udom, $what) = split(/:/, $tail,2); |
chomp($what); |
chomp($what); |
my $now=time; |
my $now=time; |
my @pairs=split(/\&/,$what); |
my @pairs=split(/\&/,$what); |
Line 3127 sub put_course_id_handler {
|
Line 3129 sub put_course_id_handler {
|
my $hashref = &tie_domain_hash($udom, "nohist_courseids", &GDBM_WRCREAT()); |
my $hashref = &tie_domain_hash($udom, "nohist_courseids", &GDBM_WRCREAT()); |
if ($hashref) { |
if ($hashref) { |
foreach my $pair (@pairs) { |
foreach my $pair (@pairs) { |
my ($key,$descr,$inst_code)=split(/=/,$pair); |
my ($key,$courseinfo) = split(/=/,$pair); |
$hashref->{$key}=$descr.':'.$inst_code.':'.$now; |
$hashref->{$key}=$courseinfo.':'.$now; |
} |
} |
if (untie(%$hashref)) { |
if (untie(%$hashref)) { |
&Reply( $client, "ok\n", $userinput); |
&Reply( $client, "ok\n", $userinput); |
Line 3176 sub dump_course_id_handler {
|
Line 3178 sub dump_course_id_handler {
|
|
|
my $userinput = "$cmd:$tail"; |
my $userinput = "$cmd:$tail"; |
|
|
my ($udom,$since,$description) =split(/:/,$tail); |
my ($udom,$since,$description,$instcodefilter,$ownerfilter) =split(/:/,$tail); |
if (defined($description)) { |
if (defined($description)) { |
$description=&unescape($description); |
$description=&unescape($description); |
} else { |
} else { |
$description='.'; |
$description='.'; |
} |
} |
|
if (defined($instcodefilter)) { |
|
$instcodefilter=&unescape($instcodefilter); |
|
} else { |
|
$instcodefilter='.'; |
|
} |
|
if (defined($ownerfilter)) { |
|
$ownerfilter=&unescape($ownerfilter); |
|
} else { |
|
$ownerfilter='.'; |
|
} |
|
|
unless (defined($since)) { $since=0; } |
unless (defined($since)) { $since=0; } |
my $qresult=''; |
my $qresult=''; |
my $hashref = &tie_domain_hash($udom, "nohist_courseids", &GDBM_WRCREAT()); |
my $hashref = &tie_domain_hash($udom, "nohist_courseids", &GDBM_WRCREAT()); |
if ($hashref) { |
if ($hashref) { |
while (my ($key,$value) = each(%$hashref)) { |
while (my ($key,$value) = each(%$hashref)) { |
my ($descr,$lasttime,$inst_code); |
my ($descr,$lasttime,$inst_code,$owner); |
if ($value =~ m/^([^\:]*):([^\:]*):(\d+)$/) { |
if ($value =~ m/^([^\:]*):([^\:]*):([^\:]*):(\d+)$/) { |
|
($descr,$inst_code,$owner,$lasttime)=($1,$2,$3,$4); |
|
} elsif ($value =~ m/^([^\:]*):([^\:]*):(\d+)$/) { |
($descr,$inst_code,$lasttime)=($1,$2,$3); |
($descr,$inst_code,$lasttime)=($1,$2,$3); |
} else { |
} else { |
($descr,$lasttime) = split(/\:/,$value); |
($descr,$lasttime) = split(/\:/,$value); |
} |
} |
if ($lasttime<$since) { next; } |
if ($lasttime<$since) { next; } |
if ($description eq '.') { |
my $match = 1; |
$qresult.=$key.'='.$descr.':'.$inst_code.'&'; |
unless ($description eq '.') { |
} else { |
my $unescapeDescr = &unescape($descr); |
my $unescapeVal = &unescape($descr); |
unless (eval('$unescapeDescr=~/\Q$description\E/i')) { |
if (eval('$unescapeVal=~/\Q$description\E/i')) { |
$match = 0; |
$qresult.=$key.'='.$descr.':'.$inst_code.'&'; |
|
} |
} |
} |
} |
|
unless ($instcodefilter eq '.' || !defined($instcodefilter)) { |
|
my $unescapeInstcode = &unescape($inst_code); |
|
unless (eval('$unescapeInstcode=~/\Q$instcodefilter\E/i')) { |
|
$match = 0; |
|
} |
|
} |
|
unless ($ownerfilter eq '.' || !defined($ownerfilter)) { |
|
my $unescapeOwner = &unescape($owner); |
|
unless (eval('$unescapeOwner=~/\Q$ownerfilter\E/i')) { |
|
$match = 0; |
|
} |
|
} |
|
if ($match == 1) { |
|
$qresult.=$key.'='.$descr.':'.$inst_code.':'.$owner.'&'; |
|
} |
} |
} |
if (untie(%$hashref)) { |
if (untie(%$hashref)) { |
chop($qresult); |
chop($qresult); |