--- loncom/interface/longroup.pm 2009/01/27 15:59:30 1.18 +++ loncom/interface/longroup.pm 2010/09/26 01:57:21 1.26 @@ -1,6 +1,8 @@ # The LearningOnline Network with CAPA # accessor routines used to provide information about course groups # +# $Id: longroup.pm,v 1.26 2010/09/26 01:57:21 raeburn Exp $ +# # Copyright Michigan State University Board of Trustees # # This file is part of the LearningOnline Network with CAPA (LON-CAPA). @@ -28,6 +30,8 @@ package Apache::longroup; use strict; use Apache::lonnet; +use Apache::lonlocal; +use LONCAPA; ############################################### =pod @@ -287,7 +291,8 @@ sub group_changes { } if (@changegroups > 0) { my %currpriv; - my %roleshash = &Apache::lonnet::dump('roles',$udom,$uname,$cid); + my $extra = &Apache::lonnet::freeze_escape({'skipcheck' => 1}); + my %roleshash = &Apache::lonnet::dump('roles',$udom,$uname,$cid,'.',undef,$extra); if (my $tmp = &Apache::lonnet::error(%roleshash)) { &Apache::lonnet::logthis('Error retrieving roles: '.$tmp. ' for '.$uname.':'.$udom); @@ -437,12 +442,12 @@ sub group_changes { sub get_fixed_privs { my $fixedprivs = { - email => {sgm => 1}, - discussion => {vgb => 1}, - chat => {pgc => 1}, - files => {rgf => 1}, - roster => {vgm => 1}, - homepage => {vgh => 1}, + email => {sgm => 1}, + discussion => {vgb => 1}, + chat => {pgc => 1}, + files => {rgf => 1}, + roster => {vgm => 1}, + homepage => {vgh => 1}, }; return $fixedprivs; } @@ -452,7 +457,7 @@ sub get_fixed_privs { sub get_tool_privs { my ($gpterm) = @_; my $toolprivs = { - email => { + email => { sgm => 'Send '.$gpterm.' message', sgb => 'Broadcast message', }, @@ -464,7 +469,7 @@ sub get_tool_privs { vgb => 'View boards', }, chat => { - pgc => 'Chat', + pgc => 'Chat Room', }, files => { rgf => 'Retrieve', @@ -683,6 +688,25 @@ sub get_group_bbinfo { } ############################################### + +sub get_group_link { + my ($cdom,$cnum,$group,$navmap) = @_; + if (ref($navmap)) { + my $symb = 'uploaded/'.$cdom.'/'.$cnum.'/group_folder_'.$group.'.sequence___1___adm/'.$cdom.'/'.$cnum.'/'.$group.'/smppg'; + my $res = $navmap->getBySymb($symb); + my $link; + if (ref($res)) { + $link = $res->link(); + $link .= (($link=~/\?/)?'&':'?').'symb='.$res->shown_symb(); + } else { + $link = '/adm/'.$cdom.'/'.$cnum.'/'.$group.'/smppg'; + } + return $link; + } + return; +} + +############################################### 1;