--- loncom/lonnet/perl/lonnet.pm 2005/11/15 21:35:02 1.678 +++ loncom/lonnet/perl/lonnet.pm 2005/11/15 22:02:58 1.679 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.678 2005/11/15 21:35:02 raeburn Exp $ +# $Id: lonnet.pm,v 1.679 2005/11/15 22:02:58 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -3702,6 +3702,49 @@ sub auto_instcode_format { return $response; } +# ------------------------------------------------------- Course Group routines + +sub get_coursegroups { + my ($cdom,$cnum,$curr_groups,$group) = @_; + my $numgroups = 0; + %{$curr_groups} = &dump('coursegroups',$cdom,$cnum,$group); + my ($tmp)=keys(%{$curr_groups}); + if ($tmp eq 'error: 2 tie(GDBM) Failed while attempting dump') { + my %emptyhash = (); + if (&put('coursegroups',\%emptyhash,$cdom,$cnum) eq 'ok') { + %{$curr_groups} = &dump('coursegroups',$cdom,$cnum,$group); + $tmp=keys(%{$curr_groups}); + } + } + if ($tmp=~/^error:/) { + &logthis('Error retrieving groups: '.$tmp.' in '.$cnum.':'.$cdom); + } else { + my @groups = keys(%{$curr_groups}); + $numgroups = @groups; + } + return $numgroups; +} + +sub modify_coursegroup { + my ($cdom,$cnum,$groupsettings) = @_; + return(&put('coursegroups',$groupsettings,$cdom,$cnum)); +} + +sub modify_group_roles { + my ($cdom,$cnum,$group_id,$user,$end,$start,$userprivs) = @_; + my $url = '/'.$cdom.'/'.$cnum.'/'.$group_id; + my $role = 'gr/'.&escape($userprivs); + my ($uname,$udom) = split(/:/,$user); + my $result = &assignrole($udom,$uname,$url,$role,$end,$start); + return $result; +} + +sub modify_coursegroup_membership { + my ($cdom,$cnum,$membership) = @_; + my $result = &put('groupmembership',$membership,$cdom,$cnum); + return $result; +} + # ------------------------------------------------------------------ Plain Text sub plaintext {