--- loncom/lonnet/perl/lonnet.pm 2006/11/27 20:35:10 1.808 +++ loncom/lonnet/perl/lonnet.pm 2006/11/28 19:46:00 1.809 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.808 2006/11/27 20:35:10 albertel Exp $ +# $Id: lonnet.pm,v 1.809 2006/11/28 19:46:00 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -3559,7 +3559,7 @@ sub allowed { $uri=&deversion($uri); my $orguri=$uri; $uri=&declutter($uri); - + if (defined($env{'allowed.'.$priv})) { return $env{'allowed.'.$priv}; } # Free bre access to adm and meta resources if (((($uri=~/^adm\//) && ($uri !~ m{/(?:smppg|bulletinboard)$})) @@ -4365,13 +4365,8 @@ sub auto_validate_class_sec { # ------------------------------------------------------- Course Group routines sub get_coursegroups { - my ($cdom,$cnum,$group) = @_; - return(&dump('coursegroups',$cdom,$cnum,$group)); -} - -sub get_deleted_groups { - my ($cdom,$cnum,$group) = @_; - return(&dump('deleted_groups',$cdom,$cnum,$group)); + my ($cdom,$cnum,$group,$namespace) = @_; + return(&dump($namespace,$cdom,$cnum,$group)); } sub modify_coursegroup { @@ -4379,18 +4374,26 @@ sub modify_coursegroup { return(&put('coursegroups',$groupsettings,$cdom,$cnum)); } -sub delete_coursegroup { - my ($cdom,$cnum,$group) = @_; - my %curr_group = &get_coursegroups($cdom,$cnum,$group); +sub toggle_coursegroup_status { + my ($cdom,$cnum,$group,$action) = @_; + my ($from_namespace,$to_namespace); + if ($action eq 'delete') { + $from_namespace = 'coursegroups'; + $to_namespace = 'deleted_groups'; + } else { + $from_namespace = 'deleted_groups'; + $to_namespace = 'coursegroups'; + } + my %curr_group = &get_coursegroups($cdom,$cnum,$group,$from_namespace); if (my $tmp = &error(%curr_group)) { &Apache::lonnet::logthis('Error retrieving group: '.$tmp.' in '.$cnum.':'.$cdom); return ('read error',$tmp); } else { my %savedsettings = %curr_group; - my $result = &put('deleted_groups',\%savedsettings,$cdom,$cnum); + my $result = &put($to_namespace,\%savedsettings,$cdom,$cnum); my $deloutcome; if ($result eq 'ok') { - $deloutcome = &del('coursegroups',[$group],$cdom,$cnum); + $deloutcome = &del($from_namespace,[$group],$cdom,$cnum); } else { return ('write error',$result); } @@ -7712,8 +7715,7 @@ passed in @what from the requested user' =item * -allowed($priv,$uri) : check for a user privilege; returns codes for allowed -actions +allowed($priv,$uri,$symb) : check for a user privilege; returns codes for allowed actions F: full access U,I,K: authentication modes (cxx only) '': forbidden