version 1.332, 2006/05/31 14:47:56
|
version 1.336, 2006/07/11 02:28:17
|
Line 1847 sub update_resource_handler {
|
Line 1847 sub update_resource_handler {
|
my $reply=&reply("unsub:$fname","$clientname"); |
my $reply=&reply("unsub:$fname","$clientname"); |
&devalidate_meta_cache($fname); |
&devalidate_meta_cache($fname); |
unlink("$fname"); |
unlink("$fname"); |
|
unlink("$fname.meta"); |
} else { |
} else { |
my $transname="$fname.in.transfer"; |
my $transname="$fname.in.transfer"; |
my $remoteurl=&reply("sub:$fname","$clientname"); |
my $remoteurl=&reply("sub:$fname","$clientname"); |
Line 3288 sub put_course_id_handler {
|
Line 3289 sub put_course_id_handler {
|
my @new_items = split(/:/,$courseinfo); |
my @new_items = split(/:/,$courseinfo); |
my $numnew = scalar(@new_items); |
my $numnew = scalar(@new_items); |
if ($numcurrent > 0) { |
if ($numcurrent > 0) { |
if ($numnew == 1) { # flushcourselogs() from 1.1 or earlier |
if ($numnew <= $numcurrent) { # flushcourselogs() from pre 2.2 |
$courseinfo .= ':'.join(':',@current_items); |
for (my $j=$numcurrent-$numnew; $j>=0; $j--) { |
} elsif ($numnew == 2) { # flushcourselogs() from 1.2.X |
$courseinfo .= ':'.$current_items[$numcurrent-$j-1]; |
$courseinfo .= ':'.$current_items[$numcurrent-1]; |
} |
} |
} |
} |
} |
$hashref->{$key}=$courseinfo.':'.$now; |
$hashref->{$key}=$courseinfo.':'.$now; |
Line 3335 sub put_course_id_handler {
|
Line 3336 sub put_course_id_handler {
|
# institutional code - optional supplied code to filter |
# institutional code - optional supplied code to filter |
# the dump. Only courses with an institutional code |
# the dump. Only courses with an institutional code |
# that match the supplied code will be returned. |
# that match the supplied code will be returned. |
# owner - optional supplied username of owner to filter |
# owner - optional supplied username and domain of owner to |
# the dump. Only courses for which the course |
# filter the dump. Only courses for which the course |
# owner matches the supplied username will be |
# owner matches the supplied username and/or domain |
# returned. Implicit assumption that owner |
# will be returned. Pre-2.2.0 legacy entries from |
# is a user in the domain in which the |
# nohist_courseiddump will only contain usernames. |
# course database is defined. |
|
# $client - The socket open on the client. |
# $client - The socket open on the client. |
# Returns: |
# Returns: |
# 1 - Continue processing. |
# 1 - Continue processing. |
Line 3351 sub dump_course_id_handler {
|
Line 3351 sub dump_course_id_handler {
|
|
|
my $userinput = "$cmd:$tail"; |
my $userinput = "$cmd:$tail"; |
|
|
my ($udom,$since,$description,$instcodefilter,$ownerfilter,$coursefilter) =split(/:/,$tail); |
my ($udom,$since,$description,$instcodefilter,$ownerfilter,$coursefilter, |
|
$typefilter) =split(/:/,$tail); |
if (defined($description)) { |
if (defined($description)) { |
$description=&unescape($description); |
$description=&unescape($description); |
} else { |
} else { |
Line 3362 sub dump_course_id_handler {
|
Line 3363 sub dump_course_id_handler {
|
} else { |
} else { |
$instcodefilter='.'; |
$instcodefilter='.'; |
} |
} |
|
my ($ownerunamefilter,$ownerdomfilter); |
if (defined($ownerfilter)) { |
if (defined($ownerfilter)) { |
$ownerfilter=&unescape($ownerfilter); |
$ownerfilter=&unescape($ownerfilter); |
|
if ($ownerfilter ne '.' && defined($ownerfilter)) { |
|
if ($ownerfilter =~ /^([^:]*):([^:]*)$/) { |
|
$ownerunamefilter = $1; |
|
$ownerdomfilter = $2; |
|
} else { |
|
$ownerunamefilter = $ownerfilter; |
|
$ownerdomfilter = ''; |
|
} |
|
} |
} else { |
} else { |
$ownerfilter='.'; |
$ownerfilter='.'; |
} |
} |
|
|
if (defined($coursefilter)) { |
if (defined($coursefilter)) { |
$coursefilter=&unescape($coursefilter); |
$coursefilter=&unescape($coursefilter); |
} else { |
} else { |
$coursefilter='.'; |
$coursefilter='.'; |
} |
} |
|
if (defined($typefilter)) { |
|
$typefilter=&unescape($typefilter); |
|
} else { |
|
$typefilter='.'; |
|
} |
|
|
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,$owner); |
my ($descr,$lasttime,$inst_code,$owner,$type); |
my @courseitems = split(/:/,$value); |
my @courseitems = split(/:/,$value); |
$lasttime = pop(@courseitems); |
$lasttime = pop(@courseitems); |
($descr,$inst_code,$owner)=@courseitems; |
($descr,$inst_code,$owner,$type)=@courseitems; |
if ($lasttime<$since) { next; } |
if ($lasttime<$since) { next; } |
my $match = 1; |
my $match = 1; |
unless ($description eq '.') { |
unless ($description eq '.') { |
Line 3398 sub dump_course_id_handler {
|
Line 3415 sub dump_course_id_handler {
|
} |
} |
unless ($ownerfilter eq '.' || !defined($ownerfilter)) { |
unless ($ownerfilter eq '.' || !defined($ownerfilter)) { |
my $unescapeOwner = &unescape($owner); |
my $unescapeOwner = &unescape($owner); |
unless (eval('$unescapeOwner=~/\Q$ownerfilter\E/i')) { |
if (($ownerunamefilter ne '') && ($ownerdomfilter ne '')) { |
$match = 0; |
if ($unescapeOwner =~ /:/) { |
|
if (eval('$unescapeOwner !~ |
|
/\Q$ownerunamefilter\E:\Q$ownerdomfilter\E$/i')) { |
|
$match = 0; |
|
} |
|
} else { |
|
if (eval('$unescapeOwner!~/\Q$ownerunamefilter\E/i')) { |
|
$match = 0; |
|
} |
|
} |
|
} elsif ($ownerunamefilter ne '') { |
|
if ($unescapeOwner =~ /:/) { |
|
if (eval('$unescapeOwner!~/\Q$ownerunamefilter\E:[^:]+$/i')) { |
|
$match = 0; |
|
} |
|
} else { |
|
if (eval('$unescapeOwner!~/\Q$ownerunamefilter\E/i')) { |
|
$match = 0; |
|
} |
|
} |
|
} elsif ($ownerdomfilter ne '') { |
|
if ($unescapeOwner =~ /:/) { |
|
if (eval('$unescapeOwner!~/^[^:]+:\Q$ownerdomfilter\E/')) { |
|
$match = 0; |
|
} |
|
} else { |
|
if ($ownerdomfilter ne $udom) { |
|
$match = 0; |
|
} |
|
} |
} |
} |
} |
} |
unless ($coursefilter eq '.' || !defined($coursefilter)) { |
unless ($coursefilter eq '.' || !defined($coursefilter)) { |
Line 3408 sub dump_course_id_handler {
|
Line 3454 sub dump_course_id_handler {
|
$match = 0; |
$match = 0; |
} |
} |
} |
} |
|
unless ($typefilter eq '.' || !defined($typefilter)) { |
|
my $unescapeType = &unescape($type); |
|
if (!defined($type)) { |
|
if ($typefilter ne 'Course') { |
|
$match = 0; |
|
} |
|
} else { |
|
unless (eval('$unescapeType=~/^\Q$typefilter\E$/')) { |
|
$match = 0; |
|
} |
|
} |
|
} |
if ($match == 1) { |
if ($match == 1) { |
$qresult.=$key.'='.$descr.':'.$inst_code.':'.$owner.'&'; |
$qresult.=$key.'='.$descr.':'.$inst_code.':'.$owner.'&'; |
} |
} |
Line 4081 sub validate_course_owner_handler {
|
Line 4139 sub validate_course_owner_handler {
|
my $userinput = "$cmd:$tail"; |
my $userinput = "$cmd:$tail"; |
my ($inst_course_id, $owner, $cdom) = split(/:/, $tail); |
my ($inst_course_id, $owner, $cdom) = split(/:/, $tail); |
|
|
|
$owner = &unescape($owner); |
my $outcome = &localenroll::new_course($inst_course_id,$owner,$cdom); |
my $outcome = &localenroll::new_course($inst_course_id,$owner,$cdom); |
&Reply($client, "$outcome\n", $userinput); |
&Reply($client, "$outcome\n", $userinput); |
|
|
Line 5694 sub get_chat {
|
Line 5753 sub get_chat {
|
my @entries=(); |
my @entries=(); |
my $namespace = 'nohist_chatroom'; |
my $namespace = 'nohist_chatroom'; |
my $namespace_inroom = 'nohist_inchatroom'; |
my $namespace_inroom = 'nohist_inchatroom'; |
if (defined($group)) { |
if ($group ne '') { |
$namespace .= '_'.$group; |
$namespace .= '_'.$group; |
$namespace_inroom .= '_'.$group; |
$namespace_inroom .= '_'.$group; |
} |
} |
Line 5726 sub chat_add {
|
Line 5785 sub chat_add {
|
my $time=time; |
my $time=time; |
my $namespace = 'nohist_chatroom'; |
my $namespace = 'nohist_chatroom'; |
my $logfile = 'chatroom.log'; |
my $logfile = 'chatroom.log'; |
if (defined($group)) { |
if ($group ne '') { |
$namespace .= '_'.$group; |
$namespace .= '_'.$group; |
$logfile = 'chatroom_'.$group.'.log'; |
$logfile = 'chatroom_'.$group.'.log'; |
} |
} |