[LON-CAPA-cvs] cvs: loncom /lonnet/perl lonnet.pm
raeburn
lon-capa-cvs@mail.lon-capa.org
Fri, 03 Mar 2006 23:22:20 -0000
raeburn Fri Mar 3 18:22:20 2006 EDT
Modified files:
/loncom/lonnet/perl lonnet.pm
Log:
Support upload of files to a group-based "portfolio" for use in file sharing by small instructor-assigned teams in a course.
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.713 loncom/lonnet/perl/lonnet.pm:1.714
--- loncom/lonnet/perl/lonnet.pm:1.713 Thu Feb 23 13:15:16 2006
+++ loncom/lonnet/perl/lonnet.pm Fri Mar 3 18:22:18 2006
@@ -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 @@
} 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 @@
}
# 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') {