--- loncom/lonnet/perl/lonnet.pm 2005/09/13 19:45:11 1.651.2.3 +++ loncom/lonnet/perl/lonnet.pm 2005/10/04 16:26:15 1.658 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.651.2.3 2005/09/13 19:45:11 albertel Exp $ +# $Id: lonnet.pm,v 1.658 2005/10/04 16:26:15 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -767,6 +767,13 @@ sub validate_access_key { } # ------------------------------------- Find the section of student in a course +sub devalidate_getsection_cache { + my ($udom,$unam,$courseid)=@_; + $courseid=~s/\_/\//g; + $courseid=~s/^(\w)/\/$1/; + my $hashid="$udom:$unam:$courseid"; + &devalidate_cache_new('getsection',$hashid); +} sub getsection { my ($udom,$unam,$courseid)=@_; @@ -1636,7 +1643,7 @@ sub courseacclog { my $fnsymb=shift; unless ($env{'request.course.id'}) { return ''; } my $what=$fnsymb.':'.$env{'user.name'}.':'.$env{'user.domain'}; - if ($fnsymb=~/(problem|exam|quiz|assess|survey|form|page)$/) { + if ($fnsymb=~/(problem|exam|quiz|assess|survey|form|task|page)$/) { $what.=':POST'; # FIXME: Probably ought to escape things.... foreach (keys %env) { @@ -1804,7 +1811,27 @@ sub courseiddump { return %returnhash; } -# +# ---------------------------------------------------------- DC e-mail +sub dcmaildump { + my ($dom,$startdate,$enddate,$senders) = @_; + my %returnhash=(); + foreach my $tryserver (keys %libserv) { + if ($hostdom{$tryserver} eq $dom) { + %{$returnhash{$tryserver}}=(); + foreach ( + split(/\&/,&reply('dcmaildump:'.$dom.':'. + &escape($startdate).':'.&escape($enddate).':'. + &escape($senders), ,$tryserver))) { + my($key,$value) = split(/\=/,$_); + if (($key) && ($value)) { + $returnhash{$tryserver}{$key} = $value; + } + } + } + } + return %returnhash; +} + # ----------------------------------------------------------- Check out an item sub get_first_access { @@ -3775,6 +3802,8 @@ sub modify_student_enrollment { $cdom,$cnum); unless (($reply eq 'ok') || ($reply eq 'delayed')) { return 'error: '.$reply; + } else { + &devalidate_getsection_cache($udom,$uname,$cid); } # Add student role to user my $uurl='/'.$cid; @@ -5890,7 +5919,7 @@ BEGIN { } close($config); # FIXME: dev server don't want this, production servers _do_ want this - &get_iphost(); + #&get_iphost(); } sub get_iphost {