version 1.72, 2007/12/24 18:36:44
|
version 1.77, 2008/05/08 23:25:29
|
Line 254 END
|
Line 254 END
|
my $members_result = &group_members($cdom,$cnum,$group, |
my $members_result = &group_members($cdom,$cnum,$group, |
\%grp_info); |
\%grp_info); |
my $port_path = '/userfiles/groups/'.$group.'/portfolio'; |
my $port_path = '/userfiles/groups/'.$group.'/portfolio'; |
my $port_dir = &Apache::loncommon::propath($cdom,$cnum).$port_path; |
|
my $totaldirs = 0; |
my $totaldirs = 0; |
my $totalfiles = 0; |
my $totalfiles = 0; |
&group_files($group,$port_dir,\$totalfiles,\$totaldirs); |
&group_files($group,$port_path,\$totalfiles,\$totaldirs); |
$grp_info{$group}{'totalfiles'} = $totalfiles; |
$grp_info{$group}{'totalfiles'} = $totalfiles; |
$grp_info{$group}{'totaldirs'} = $totaldirs; |
$grp_info{$group}{'totaldirs'} = $totaldirs; |
my $diskuse = &Apache::lonnet::diskusage($cdom,$cnum,$port_dir); |
my $getpropath = 1; |
|
my $diskuse = &Apache::lonnet::diskusage($cdom,$cnum,$port_path, $getpropath); |
if ($grp_info{$group}{'quota'} > 0) { |
if ($grp_info{$group}{'quota'} > 0) { |
my $pct_use = 0.1 * $diskuse/$grp_info{$group}{'quota'}; |
my $pct_use = 0.1 * $diskuse/$grp_info{$group}{'quota'}; |
$grp_info{$group}{'diskuse'} = sprintf("%.0f",$pct_use); |
$grp_info{$group}{'diskuse'} = sprintf("%.0f",$pct_use); |
Line 1169 sub delete_group {
|
Line 1169 sub delete_group {
|
my @deleted; |
my @deleted; |
my @undeleted; |
my @undeleted; |
my %usersettings; |
my %usersettings; |
|
my $context = 'deletegroup'; |
foreach my $key (sort(keys(%membership))) { |
foreach my $key (sort(keys(%membership))) { |
if ($key =~ /^\Q$groupname\E:([^:]+:[^:]+)$/) { |
if ($key =~ /^\Q$groupname\E:([^:]+:[^:]+)$/) { |
my $user = $1; |
my $user = $1; |
Line 1178 sub delete_group {
|
Line 1179 sub delete_group {
|
$usersettings{$groupname.':'.$user} = $now.':-1:'.$userprivs; |
$usersettings{$groupname.':'.$user} = $now.':-1:'.$userprivs; |
if (&Apache::lonnet::modify_group_roles($cdom,$cnum, |
if (&Apache::lonnet::modify_group_roles($cdom,$cnum, |
$groupname,$user, |
$groupname,$user, |
$now,'-1',$userprivs) |
$now,'-1',$userprivs, |
|
'',$context) |
eq 'ok') { |
eq 'ok') { |
$num_ok ++; |
$num_ok ++; |
push(@deleted,$user); |
push(@deleted,$user); |
Line 1338 sub reenable_group {
|
Line 1340 sub reenable_group {
|
my $num_users = 0; |
my $num_users = 0; |
my $num_ok = 0; |
my $num_ok = 0; |
my $num_fail = 0; |
my $num_fail = 0; |
|
my $context = 'reenablegroup'; |
my (%usersettings,@enabled,@unenabled); |
my (%usersettings,@enabled,@unenabled); |
my ($result,$message) = |
my ($result,$message) = |
&Apache::lonnet::toggle_coursegroup_status($cdom,$cnum,$groupname, |
&Apache::lonnet::toggle_coursegroup_status($cdom,$cnum,$groupname, |
Line 1357 sub reenable_group {
|
Line 1360 sub reenable_group {
|
if (&Apache::lonnet::modify_group_roles($cdom,$cnum, |
if (&Apache::lonnet::modify_group_roles($cdom,$cnum, |
$groupname,$user, |
$groupname,$user, |
$defend,$defstart, |
$defend,$defstart, |
$userprivs) eq 'ok') { |
$userprivs,'', |
|
$context) eq 'ok') { |
$num_ok ++; |
$num_ok ++; |
push(@enabled,$user); |
push(@enabled,$user); |
} else { |
} else { |
Line 1460 sub build_members_list {
|
Line 1464 sub build_members_list {
|
} |
} |
|
|
sub group_files { |
sub group_files { |
my ($group,$currdir,$numfiles,$numdirs) = @_; |
my ($group,$portpath,$numfiles,$numdirs) = @_; |
my $dirptr=16384; |
my $dirptr=16384; |
my @dir_list=&Apache::portfolio::get_dir_list($currdir,$group); |
my @dir_list=&Apache::portfolio::get_dir_list($portpath,undef,$group); |
foreach my $line (@dir_list) { |
foreach my $line (@dir_list) { |
my ($filename,$dom,undef,$testdir,undef,undef,undef,undef,$size,undef,$mtime,undef,undef,undef,$obs,undef)=split(/\&/,$line,16); |
my ($filename,$dom,undef,$testdir,undef,undef,undef,undef,$size,undef,$mtime,undef,undef,undef,$obs,undef)=split(/\&/,$line,16); |
if (($filename !~ /^\.\.?$/) && ($filename !~ /\.meta$/ ) && ($filename !~ /(.*)\.(\d+)\.([^\.]*)$/) && ($filename ne 'no_such_dir')) { |
if (($filename !~ /^\.\.?$/) && ($filename !~ /\.meta$/ ) && ($filename !~ /(.*)\.(\d+)\.([^\.]*)$/) && ($filename ne 'no_such_dir')) { |
if ($dirptr&$testdir) { |
if ($dirptr&$testdir) { |
$currdir .= '/'.$filename; |
$portpath .= '/'.$filename; |
$$numdirs ++; |
$$numdirs ++; |
&group_files($numfiles,$numdirs) |
&group_files($group,$portpath,$numfiles,$numdirs) |
} else { |
} else { |
$$numfiles ++; |
$$numfiles ++; |
} |
} |
Line 3231 sub process_membership {
|
Line 3235 sub process_membership {
|
my %curr_start = (); |
my %curr_start = (); |
my %curr_end = (); |
my %curr_end = (); |
my %tooltype = (); |
my %tooltype = (); |
|
my $context = 'processgroupmembership'; |
|
|
foreach my $tool (@{$tools}) { |
foreach my $tool (@{$tools}) { |
foreach my $priv (sort(keys(%{$$toolprivs{$tool}}))) { |
foreach my $priv (sort(keys(%{$$toolprivs{$tool}}))) { |
Line 3300 sub process_membership {
|
Line 3305 sub process_membership {
|
$curr_privs{$user}; |
$curr_privs{$user}; |
if (&Apache::lonnet::modify_group_roles($cdom,$cnum,$groupname, |
if (&Apache::lonnet::modify_group_roles($cdom,$cnum,$groupname, |
$user,$now,$savestart, |
$user,$now,$savestart, |
$curr_privs{$user}) eq 'ok') { |
$curr_privs{$user},'',$context) eq 'ok') { |
push(@{$added{'expired'}},$user); |
push(@{$added{'expired'}},$user); |
$num_ok ++; |
$num_ok ++; |
} else { |
} else { |
Line 3311 sub process_membership {
|
Line 3316 sub process_membership {
|
foreach my $user (@deletion) { |
foreach my $user (@deletion) { |
$usersettings{$groupname.':'.$user} = $now.':-1:'; |
$usersettings{$groupname.':'.$user} = $now.':-1:'; |
if (&Apache::lonnet::modify_group_roles($cdom,$cnum,$groupname, |
if (&Apache::lonnet::modify_group_roles($cdom,$cnum,$groupname, |
$user,$now,'-1','') |
$user,$now,'-1','','',$context) |
eq 'ok') { |
eq 'ok') { |
push(@{$added{'deleted'}},$user); |
push(@{$added{'deleted'}},$user); |
$num_ok ++; |
$num_ok ++; |
Line 3365 sub process_membership {
|
Line 3370 sub process_membership {
|
$group_privs{$user}; |
$group_privs{$user}; |
if (&Apache::lonnet::modify_group_roles($cdom,$cnum,$groupname, |
if (&Apache::lonnet::modify_group_roles($cdom,$cnum,$groupname, |
$user,$end,$start, |
$user,$end,$start, |
$group_privs{$user}) eq 'ok') { |
$group_privs{$user},'',$context) eq 'ok') { |
push(@{$added{$type}},$user); |
push(@{$added{$type}},$user); |
$num_ok ++; |
$num_ok ++; |
} else { |
} else { |
Line 3724 sub add_group_folder {
|
Line 3729 sub add_group_folder {
|
$outcome = &mt('Could not obtain exclusive lock to check status of the folder for all groups. No group folder added.'); |
$outcome = &mt('Could not obtain exclusive lock to check status of the folder for all groups. No group folder added.'); |
return $outcome; |
return $outcome; |
} |
} |
my $grpfolder = &mt('[_1] Folder -',$ucgpterm,).$description; |
my $grpfolder = &mt($ucgpterm.' Folder - [_1]',$description); |
$grppage='/adm/'.$cdom.'/'.$cnum.'/'.$groupname.'/smppg'; |
$grppage='/adm/'.$cdom.'/'.$cnum.'/'.$groupname.'/smppg'; |
my $grptitle = &mt('Group homepage').' - '.$description; |
my $grptitle = &mt('Group homepage - [_1]',$description); |
my ($discussions,$disctitle); |
my ($discussions,$disctitle); |
my $outcome = &map_updater($cdom,$cnum,'group_folder_'.$groupname.'.sequence', |
my $outcome = &map_updater($cdom,$cnum,'group_folder_'.$groupname.'.sequence', |
'grpseq',$grpfolder,$allgrpsmap,$grppage, |
'grpseq',$grpfolder,$allgrpsmap,$grppage, |