--- loncom/lonnet/perl/lonnet.pm 2006/02/23 18:15:16 1.713 +++ loncom/lonnet/perl/lonnet.pm 2006/03/03 23:22:18 1.714 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.713 2006/02/23 18:15:16 albertel Exp $ +# $Id: lonnet.pm,v 1.714 2006/03/03 23:22:18 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1372,6 +1372,10 @@ sub userfileupload { } else { my $docuname=$env{'user.name'}; my $docudom=$env{'user.domain'}; + if (exists($env{'form.group'})) { + $docuname=$env{'course.'.$env{'request.course.id'}.'.num'}; + $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'}; + } return &finishuserfileupload($docuname,$docudom,$formname, $fname,$parser,$allfiles,$codebase); } @@ -3133,12 +3137,29 @@ sub allowed { } # Free bre access to user's own portfolio contents - my ($space,$domain,$name,$dir)=split('/',$uri); + my ($space,$domain,$name,@dir)=split('/',$uri); if (($space=~/^(uploaded|editupload)$/) && ($env{'user.name'} eq $name) && - ($env{'user.domain'} eq $domain) && ('portfolio' eq $dir)) { + ($env{'user.domain'} eq $domain) && ('portfolio' eq $dir[0])) { return 'F'; } +# bre access to group if user has rgf priv for this group and course. + if (($space=~/^(uploaded|editupload)$/) && ($dir[0] eq 'groups') + && ($dir[2] eq 'portfolio') && ($priv eq 'bre')) { + if (exists($env{'request.course.id'})) { + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + if (($domain eq $cdom) && ($name eq $cnum)) { + my $courseprivid=$env{'request.course.id'}; + $courseprivid=~s/\_/\//; + if ($env{'user.priv.'.$env{'request.role'}.'./'.$courseprivid + .'/'.$dir[1]} =~/rgf\&([^\:]*)/) { + return $1; + } + } + } + } + # Free bre to public access if ($priv eq 'bre') {