--- loncom/lonnet/perl/lonnet.pm 2012/11/27 23:45:22 1.1199 +++ loncom/lonnet/perl/lonnet.pm 2012/11/30 20:48:34 1.1204 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.1199 2012/11/27 23:45:22 raeburn Exp $ +# $Id: lonnet.pm,v 1.1204 2012/11/30 20:48:34 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2732,7 +2732,11 @@ sub can_edit_resource { $incourse = 1; if ($file =~/\.(htm|html|css|js|txt)$/) { $cfile = &hreflocation('',$file); - $forceedit = 1; + if ($env{'form.forceedit'}) { + $forceview = 1; + } else { + $forceedit = 1; + } } } elsif ($resurl =~ m{^/public/$cdom/$cnum/syllabus}) { $incourse = 1; @@ -2820,8 +2824,8 @@ sub is_course_upload { my ($file,$cnum,$cdom) = @_; my $uploadpath = &LONCAPA::propath($cdom,$cnum); $uploadpath =~ s{^\/}{}; - if (($file =~ m{^\Q$uploadpath\E/userfiles/docs/}) || - ($file =~ m{^userfiles/\Q$cdom\E/\Q$cnum\E/docs/})) { + if (($file =~ m{^\Q$uploadpath\E/userfiles/(docs|supplemental)/}) || + ($file =~ m{^userfiles/\Q$cdom\E/\Q$cnum\E/(docs|supplemental)/})) { return 1; } return; @@ -8039,16 +8043,16 @@ sub assignrole { # log new user role if status is ok if ($answer eq 'ok') { &userrolelog($role,$uname,$udom,$url,$start,$end); -# for course roles, perform group memberships changes triggered by role change. - unless ($role =~ /^gr/) { - &Apache::longroup::group_changes($udom,$uname,$url,$role,$origend, - $origstart,$selfenroll,$context); - } if (($role eq 'cc') || ($role eq 'in') || ($role eq 'ep') || ($role eq 'ad') || ($role eq 'ta') || ($role eq 'st') || ($role=~/^cr/) || ($role eq 'gr') || ($role eq 'co')) { +# for course roles, perform group memberships changes triggered by role change. + unless ($role =~ /^gr/) { + &Apache::longroup::group_changes($udom,$uname,$url,$role,$origend, + $origstart,$selfenroll,$context); + } &courserolelog($role,$uname,$udom,$url,$origstart,$origend,$delflag, $selfenroll,$context); } elsif (($role eq 'li') || ($role eq 'dg') || ($role eq 'sc') || @@ -10500,21 +10504,32 @@ sub symbverify { if (tie(%bighash,'GDBM_File',$env{'request.course.fn'}.'.db', &GDBM_READER(),0640)) { + my $noclutter; if (($thisurl =~ m{^/adm/wrapper/ext/}) || ($thisurl =~ m{^ext/})) { $thisurl =~ s/\?.+$//; + if ($map =~ m{^uploaded/.+\.page$}) { + $thisurl =~ s{^(/adm/wrapper|)/ext/}{http://}; + $thisurl =~ s{^\Qhttp://https://\E}{https://}; + $noclutter = 1; + } + } + my $ids; + if ($noclutter) { + $ids=$bighash{'ids_'.$thisurl}; + } else { + $ids=$bighash{'ids_'.&clutter($thisurl)}; } - my $ids=$bighash{'ids_'.&clutter($thisurl)}; unless ($ids) { my $idkey = 'ids_'.($thisurl =~ m{^/}? '' : '/').$thisurl; $ids=$bighash{$idkey}; } if ($ids) { # ------------------------------------------------------------------- Has ID(s) + if ($thisfn =~ m{^/adm/wrapper/ext/}) { + $symb =~ s/\?.+$//; + } foreach my $id (split(/\,/,$ids)) { my ($mapid,$resid)=split(/\./,$id); - if ($thisfn =~ m{^/adm/wrapper/ext/}) { - $symb =~ s/\?.+$//; - } if ( &symbclean(&declutter($bighash{'map_id_'.$mapid}).'___'.$resid.'___'.$thisfn) eq $symb) { @@ -10525,6 +10540,7 @@ sub symbverify { ($bighash{'encrypted_'.$id} eq $env{'request.enc'}) || ($thisurl eq '/adm/navmaps')) { $okay=1; + last; } } }