--- loncom/lonnet/perl/lonnet.pm 2006/12/28 17:36:51 1.815 +++ loncom/lonnet/perl/lonnet.pm 2007/01/12 21:36:42 1.816.2.3 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.815 2006/12/28 17:36:51 albertel Exp $ +# $Id: lonnet.pm,v 1.816.2.3 2007/01/12 21:36:42 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -3546,7 +3546,7 @@ sub is_portfolio_url { sub is_portfolio_file { my ($file) = @_; - if (($file =~ /^portfolio/) || ($file =~ /^groups\/\w\/portfolio/)) { + if (($file =~ /^portfolio/) || ($file =~ /^groups\/\w+\/portfolio/)) { return 1; } return; @@ -3558,7 +3558,7 @@ sub is_portfolio_file { sub customaccess { my ($priv,$uri)=@_; my ($urole,$urealm)=split(/\./,$env{'request.role'},2); - my ($udom,$ucrs,$usec)=split(/\//,$urealm); + my (undef,$udom,$ucrs,$usec)=split(/\//,$urealm); $udom = &LONCAPA::clean_domain($udom); $ucrs = &LONCAPA::clean_username($ucrs); my $access=0; @@ -4098,6 +4098,18 @@ sub log_query { return get_query_reply($queryid); } +# -------------------------- Update MySQL table for portfolio file + +sub update_portfolio_table { + my ($uname,$udom,$file_name,$query,$group) = @_; + my $homeserver = &homeserver($uname,$udom); + my $queryid= + &reply("querysend:".$query.':'.&escape($uname.':'.$udom).':'. + &escape($file_name).':'.&escape($group),$homeserver); + my $reply = &get_query_reply($queryid); + return $reply; +} + # ------- Request retrieval of institutional classlists for course(s) sub fetch_enrollment_query { @@ -4513,7 +4525,8 @@ sub get_users_groups { @usersgroups = split(/:/,$grouplist); } else { $grouplist = ''; - my %roleshash = &dump('roles',$udom,$uname,$courseid); + my $courseurl = &courseid_to_courseurl($courseid); + my %roleshash = &dump('roles',$udom,$uname,$courseurl); my ($tmp) = keys(%roleshash); if ($tmp=~/^error:/) { &logthis('Error retrieving roles: '.$tmp.' for '.$uname.':'.$udom); @@ -4522,7 +4535,7 @@ sub get_users_groups { '.default_enrollment_end_date'}; my $now = time; foreach my $key (keys(%roleshash)) { - if ($key =~ /^\Q$courseid\E\/(\w+)\_gr$/) { + if ($key =~ /^\Q$courseurl\E\/(\w+)\_gr$/) { my $group = $1; if ($roleshash{$key} =~ /_(\d+)_(\d+)$/) { my $start = $2; @@ -5265,6 +5278,15 @@ sub modify_access_controls { # remove lock my @del_lock = ($file_name."\0".'locked_access_records'); my $dellockoutcome = &del('file_permissions',\@del_lock,$domain,$user); + my ($file,$group); + if (&is_course($domain,$user)) { + ($group,$file) = split(/\//,$file_name,2); + } else { + $file = $file_name; + } + my $sqlresult = + &update_portfolio_table($user,$domain,$file,'portfolio_access', + $group); } else { $outcome = "error: could not obtain lockfile\n"; }