--- loncom/lonnet/perl/lonnet.pm 2005/11/15 21:35:02 1.678 +++ loncom/lonnet/perl/lonnet.pm 2005/11/17 16:58:23 1.680 @@ -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.680 2005/11/17 16:58:23 www 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 { @@ -3894,6 +3937,7 @@ sub modifyuser { } my $reply = &put('environment', \%names, $udom,$uname); if ($reply ne 'ok') { return 'error: '.$reply; } + &devalidate_cache_new('namescache',$uname.':'.$udom); &logthis('Success modifying user '.$udom.', '.$uname.', '.$uid.', '. $umode.', '.$first.', '.$middle.', '. $last.', '.$gene.' by '.