--- loncom/lonnet/perl/lonnet.pm 2007/06/25 18:12:24 1.894 +++ loncom/lonnet/perl/lonnet.pm 2007/07/20 23:16:19 1.898 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.894 2007/06/25 18:12:24 albertel Exp $ +# $Id: lonnet.pm,v 1.898 2007/07/20 23:16:19 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1396,7 +1396,7 @@ sub ssi { my $request; $form{'no_update_last_known'}=1; - + &Apache::lonenc::check_encrypt(\$fn); if (%form) { $request=new HTTP::Request('POST',&absolute_url().$fn); $request->content(join('&',map { &escape($_).'='.&escape($form{$_}) } keys %form)); @@ -2113,6 +2113,14 @@ sub userrolelog { {$trole.':'.$username.':'.$domain.':'.$runame.':'.$rudom.':'.$rsec} =$tend.':'.$tstart; } + if (($env{'request.role'} =~ /dc\./) && + (($trole=~/^au/) || ($trole=~/^in/) || + ($trole=~/^cc/) || ($trole=~/^ep/) || + ($trole=~/^cr/) || ($trole=~/^ta/))) { + $userrolehash + {$trole.':'.$username.':'.$domain.':'.$env{'user.name'}.':'.$env{'user.domain'}.':'} + =$tend.':'.$tstart; + } if (($trole=~/^dc/) || ($trole=~/^ad/) || ($trole=~/^li/) || ($trole=~/^li/) || ($trole=~/^au/) || ($trole=~/^dg/) || @@ -2122,6 +2130,7 @@ sub userrolelog { {$trole.':'.$username.':'.$domain.':'.$runame.':'.$rudom.':'.$rsec} = $tend.':'.$tstart; } + &flushcourselogs(); } sub get_course_adv_roles { @@ -3807,12 +3816,12 @@ sub customaccess { my ($effect,$realm,$role,$type)=split(/\:/,$right); if ($type eq 'user') { foreach my $scope (split(/\s*\,\s*/,$realm)) { - my ($tdom,$tcrs)=split(/\_/,$scope); + my ($tdom,$tuname)=split(m{/},$scope); if ($tdom) { if ($tdom ne $env{'user.domain'}) { next; } } - if ($tcrs) { - if ($tcrs ne $env{'user.name'}) { next; } + if ($tuname) { + if ($tuname ne $env{'user.name'}) { next; } } $access=($effect eq 'allow'); last; @@ -7098,7 +7107,7 @@ sub getCODE { sub rndseed { my ($symb,$courseid,$domain,$username)=@_; my ($wsymb,$wcourseid,$wdomain,$wusername)=&whichuser(); - if (!$symb) { + if (!defined($symb)) { unless ($symb=$wsymb) { return time; } } if (!$courseid) { $courseid=$wcourseid; } @@ -7884,6 +7893,7 @@ sub get_dns { } sub reset_hosts_info { + &purge_remembered(); &reset_domain_info(); &reset_hosts_ip_info(); undef(%name_to_host);