--- loncom/lonnet/perl/lonnet.pm 2013/10/06 20:33:51 1.1241 +++ loncom/lonnet/perl/lonnet.pm 2013/12/05 05:19:18 1.1244 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.1241 2013/10/06 20:33:51 raeburn Exp $ +# $Id: lonnet.pm,v 1.1244 2013/12/05 05:19:18 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -606,7 +606,7 @@ sub transfer_profile_to_env { # ---------------------------------------------------- Check for valid session sub check_for_valid_session { - my ($r,$name) = @_; + my ($r,$name,$userref) = @_; my %cookies=CGI::Cookie->parse($r->header_in('Cookie')); if ($name eq '') { $name = 'lonID'; @@ -637,11 +637,16 @@ sub check_for_valid_session { || !defined($disk_env{'user.domain'})) { return undef; } - if (($r->user() eq '') && ($apache >= 2.4)) { - if ($disk_env{'user.domain'} eq $r->dir_config('lonDefDomain')) { - $r->user($disk_env{'user.name'}); - } else { - $r->user($disk_env{'user.name'}.':'.$disk_env{'user.domain'}); + if ($apache >= 2.4) { + if ($r->user() eq '') { + if ($disk_env{'user.domain'} eq $r->dir_config('lonDefDomain')) { + $r->user($disk_env{'user.name'}); + } else { + $r->user($disk_env{'user.name'}.':'.$disk_env{'user.domain'}); + } + } + if (($r->user() ne '') && (ref($userref))) { + $$userref = $r->user(); } } return $handle; @@ -1988,6 +1993,7 @@ sub inst_userrules { sub get_domain_defaults { my ($domain,$ignore_cache) = @_; + return if (($domain eq '') || ($domain eq 'public')); my $cachetime = 60*60*24; unless ($ignore_cache) { my ($result,$cached)=&is_cached_new('domdefaults',$domain); @@ -3501,8 +3507,26 @@ sub extract_embedded_items { } } } + if (lc($tagname) eq 'iframe') { + my $src = $attr->{'src'} ; + if (($src ne '') && ($src !~ m{^(/|https?://)})) { + &add_filetype($allfiles,$src,'src'); + } elsif ($src =~ m{^/}) { + if ($env{'request.course.id'}) { + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + my $url = &hreflocation('',$fullpath); + if ($url =~ m{^/uploaded/$cdom/$cnum/docs/(\w+/\d+)/}) { + my $relpath = $1; + if ($src =~ m{^/uploaded/$cdom/$cnum/docs/\Q$relpath\E/(.+)$}) { + &add_filetype($allfiles,$1,'src'); + } + } + } + } + } if ($t->[4] =~ m{/>$}) { - pop(@state); + pop(@state); } } elsif ($t->[0] eq 'E') { my ($tagname) = ($t->[1]); @@ -6204,7 +6228,7 @@ sub usertools_access { } return if (!defined($tools{$tool})); - if ((!defined($udom)) || (!defined($uname))) { + if (($udom eq '') || ($uname eq '')) { $udom = $env{'user.domain'}; $uname = $env{'user.name'}; }