--- loncom/interface/lonparmset.pm 2024/07/03 04:06:27 1.522.2.31
+++ loncom/interface/lonparmset.pm 2014/01/15 18:48:35 1.543
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.522.2.31 2024/07/03 04:06:27 raeburn Exp $
+# $Id: lonparmset.pm,v 1.543 2014/01/15 18:48:35 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -36,8 +36,7 @@ lonparmset - Handler to set parameters f
=head1 SYNOPSIS
-lonparmset provides an interface to setting content parameters in a
-course.
+lonparmset provides an interface to setting course parameters.
=head1 DESCRIPTION
@@ -130,7 +129,7 @@ javascript function 'pjump'.
=item print_td()
-=item check_other_groups()
+=item print_usergroups()
=item parm_control_group()
@@ -150,7 +149,7 @@ Input: See list below
=back
-Outputs: See list below
+Outputs: See list below:
=over 4
@@ -321,10 +320,34 @@ use Apache::lonnavmaps;
use Apache::longroup;
use Apache::lonrss;
use HTML::Entities;
-use Text::Wrap();
use LONCAPA qw(:DEFAULT :match);
+sub startSettingsScreen {
+ my ($r,$mode,$crstype)=@_;
+
+ my $tabtext = &mt('Course Settings');
+ if ($crstype eq 'Community') {
+ $tabtext = &mt('Community Settings');
+ }
+ $r->print("\n".'
@@ -956,8 +982,7 @@ ENDHEAD
sub print_row {
my ($r,$which,$part,$name,$symbp,$rid,$default,$defaulttype,$display,$defbgone,
- $defbgtwo,$defbgthree,$parmlev,$uname,$udom,$csec,$cgroup,$usersgroups,$noeditgrp,
- $readonly)=@_;
+ $defbgtwo,$defbgthree,$parmlev,$uname,$udom,$csec,$cgroup,$usersgroups)=@_;
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
my $courseopt=&Apache::lonnet::get_courseresdata($cnum,$cdom);
@@ -1002,31 +1027,31 @@ sub print_row {
if ($parmlev eq 'general') {
if ($uname) {
- &print_td($r,3,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
+ &print_td($r,3,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
} elsif ($cgroup) {
- &print_td($r,6,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,$noeditgrp,$readonly);
+ &print_td($r,6,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
} elsif ($csec) {
- &print_td($r,9,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
+ &print_td($r,9,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
} else {
- &print_td($r,14,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
+ &print_td($r,14,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
}
} elsif ($parmlev eq 'map') {
if ($uname) {
- &print_td($r,2,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
+ &print_td($r,2,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
} elsif ($cgroup) {
- &print_td($r,5,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,$noeditgrp,$readonly);
+ &print_td($r,5,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
} elsif ($csec) {
- &print_td($r,8,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
+ &print_td($r,8,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
} else {
- &print_td($r,13,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
+ &print_td($r,13,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
}
} else {
if ($uname) {
if (@{$usersgroups} > 1) {
my ($coursereply,$grp_parm,$controlgrp);
($coursereply,$othergrp,$grp_parm,$controlgrp) =
- &check_other_groups($$part{$which}.'.'.$$name{$which},
+ &print_usergroups($r,$$part{$which}.'.'.$$name{$which},
$rid,$cgroup,$defbgone,$usersgroups,$result,$courseopt);
if ($coursereply && $result > 3) {
if (defined($controlgrp)) {
@@ -1039,32 +1064,32 @@ sub print_row {
}
}
- &print_td($r,14,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
+ &print_td($r,14,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
- &print_td($r,13,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
- &print_td($r,12,'#FFDDDD',$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
- &print_td($r,11,'#FFDDDD',$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
- &print_td($r,10,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
+ &print_td($r,13,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
+ &print_td($r,12,'#FFDDDD',$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
+ &print_td($r,11,'#FFDDDD',$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
+ &print_td($r,10,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
if ($csec) {
- &print_td($r,9,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
- &print_td($r,8,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
- &print_td($r,7,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
+ &print_td($r,9,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
+ &print_td($r,8,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
+ &print_td($r,7,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
}
if ($cgroup) {
- &print_td($r,6,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,$noeditgrp,$readonly);
- &print_td($r,5,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,$noeditgrp,$readonly);
- &print_td($r,4,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,$noeditgrp,$readonly);
+ &print_td($r,6,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
+ &print_td($r,5,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
+ &print_td($r,4,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
}
if ($uname) {
if ($othergrp) {
$r->print($othergrp);
}
- &print_td($r,3,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
- &print_td($r,2,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
- &print_td($r,1,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display,'',$readonly);
+ &print_td($r,3,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
+ &print_td($r,2,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
+ &print_td($r,1,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
}
} # end of $parmlev if/else
@@ -1084,27 +1109,19 @@ sub print_row {
}
sub print_td {
- my ($r,$which,$defbg,$result,$outpar,$mprefix,$value,$typeoutpar,$display,$noeditgrp,$readonly)=@_;
+ my ($r,$which,$defbg,$result,$outpar,$mprefix,$value,$typeoutpar,$display)=@_;
$r->print('');
my $nolink = 0;
- if ($readonly) {
+ if ($which == 11 || $which == 12) {
$nolink = 1;
- } else {
- if ($which == 11 || $which == 12) {
+ } elsif ($mprefix =~ /availablestudent\&$/) {
+ if ($which > 3) {
$nolink = 1;
- } elsif (($env{'request.course.sec'} ne '') && ($which > 9)) {
- $nolink = 1;
- } elsif ($which == 4 || $which == 5 || $which == 6) {
- if ($noeditgrp) {
- $nolink = 1;
- }
- } elsif ($mprefix =~ /availablestudent\&$/) {
+ }
+ } elsif ($mprefix =~ /examcode\&$/) {
+ unless ($which == 2) {
$nolink = 1;
- } elsif ($mprefix =~ /examcode\&$/) {
- unless ($which == 2) {
- $nolink = 1;
- }
}
}
if ($nolink) {
@@ -1117,8 +1134,8 @@ sub print_td {
$r->print(' '."\n");
}
-sub check_other_groups {
- my ($what,$rid,$cgroup,$defbg,$usersgroups,$result,$courseopt) = @_;
+sub print_usergroups {
+ my ($r,$what,$rid,$cgroup,$defbg,$usersgroups,$result,$courseopt) = @_;
my $courseid = $env{'request.course.id'};
my $output;
my $symb = &symbcache($rid);
@@ -1133,6 +1150,7 @@ sub check_other_groups {
if (($coursereply) && ($cgroup ne $resultgroup)) {
if ($result > 3) {
$bgcolor = '#AAFFAA';
+ $grp_parm = &valout($coursereply,$resulttype);
}
$grp_parm = &valout($coursereply,$resulttype);
$output = '';
@@ -1284,7 +1302,8 @@ sub isdateparm {
# from which you can select all desired parameters.
#
sub parmmenu {
- my ($r)=@_;
+ my ($r,$allparms,$pscat,$keyorder)=@_;
+ my $tempkey;
$r->print(<
// print(' ');
- &shortCuts($r);
+ &shortCuts($r,$allparms,$pscat,$keyorder);
$r->print(' ');
}
# return a hash
@@ -1391,8 +1410,8 @@ sub lookUpTableParameter {
'contentopen' => 'time_settings',
'contentclose' => 'time_settings',
'discussend' => 'time_settings',
- 'printstartdate' => 'time_settings',
- 'printenddate' => 'time_settings',
+ 'printopendate' => 'time_settings',
+ 'printclosedate' => 'time_settings',
'weight' => 'grading',
'handgrade' => 'grading',
'maxtries' => 'tries',
@@ -1427,8 +1446,8 @@ sub lookUpTableParameter {
'lenient' => 'grading',
'retrypartial' => 'tries',
'discussvote' => 'misc',
- 'examcode' => 'high_level_randomization',
- );
+ 'examcode' => 'high_level_randomization',
+ );
}
sub whatIsMyCategory {
@@ -1500,40 +1519,31 @@ sub parmboxes {
&whatIsMyCategory($tempparameter, \%categoryList);
}
#part to print the parm-list
- $Text::Wrap::columns=60;
- $Text::Wrap::separator=' ';
- $r->print(''."\n");
-
- #Print parameters
- for my $key (sort { $category_order{$a} <=> $category_order{$b} } keys %categoryList) {
- next if(@{$categoryList{$key}} == 0);
+ foreach my $key (sort { $category_order{$a} <=> $category_order{$b} } keys(%categoryList)) {
+ next if (@{$categoryList{$key}} == 0);
+ next if ($key eq '');
$r->print('
'
- .'
'
- .&mt($categories{$key})
- .' '."\n");
- foreach $tempkey (&keysindisplayorderCategory($categoryList{$key},$keyorder)) {
- next if ($tempkey eq '');
+ .''.&mt($categories{$key}).' '."\n");
+ foreach my $tempkey (&keysindisplayorderCategory($categoryList{$key},$keyorder)) {
$r->print(''
.' print(' checked="checked"');
+ $r->print( ' checked="checked"');
}
- $r->print(' />'.($$allparms{$tempkey}=~/\S/ ?
- Text::Wrap::wrap('',' 'x4,$$allparms{$tempkey})
- : $tempkey)
+ $r->print(' />'.($$allparms{$tempkey}=~/\S/ ? $$allparms{$tempkey}
+ : $tempkey)
.' '."\n");
}
- $r->print("\n");
+ $r->print('
');
}
-
- $r->print("\n");
+ $r->print("\n");
}
#
# This function offers some links on the parameter section to get with one click a group a parameters
#
sub shortCuts {
- my ($r)=@_;
+ my ($r,$allparms,$pscat,$keyorder)=@_;
# Parameter Selection
$r->print(
@@ -1592,60 +1602,21 @@ sub partmenu {
}
sub usermenu {
- my ($r,$uname,$id,$udom,$csec,$cgroup,$parmlev,$usersgroups,$pssymb)=@_;
+ my ($r,$uname,$id,$udom,$csec,$cgroup,$parmlev,$usersgroups)=@_;
my $chooseopt=&Apache::loncommon::select_dom_form($udom,'udom').' '.
- &Apache::loncommon::selectstudent_link('parmform','uname','udom','condition').
- &Apache::lonhtmlcommon::scripttag(< '.
- $stuonly.' '.
- ' '.
- &mt('any role').' ';
my $sections='';
my %sectionhash = &Apache::loncommon::get_sections();
my $groups;
- my %grouphash;
- if (($pssymb) || &Apache::lonnet::allowed('mdg',$env{'request.course.id'})) {
- %grouphash = &Apache::longroup::coursegroups();
- } elsif ($env{'request.course.groups'} ne '') {
- map { $grouphash{$_} = 1; } split(/:/,$env{'request.course.groups'});
- }
+ my %grouphash = &Apache::longroup::coursegroups();
my $g_s_header='';
my $g_s_footer='';
- my $currsec = $env{'request.course.sec'};
- if ($currsec) {
- $sections=&mt('Section:').' '.$currsec;
- if (%grouphash) {
- $sections .= ';'.(' ' x2);
- }
- } elsif (%sectionhash && $currsec eq '') {
+ if (%sectionhash) {
$sections=&mt('Section:').' ';
}
- if (%sectionhash && %grouphash && $parmlev ne 'full' && $currsec eq '') {
+ if (%sectionhash && %grouphash && $parmlev ne 'full') {
$sections .= ' '.&mt('or').' ';
$sections .= qq|
|;
- } elsif ($currsec eq '') {
+ } else {
$sections .= qq|
'."\n";
$r->print(&Apache::loncommon::start_page('Parameter Change Log',$js));
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Parameter Change Log'));
- my %parmlog=&Apache::lonnet::dump('nohist_parameterlog',
- $env{'course.'.$env{'request.course.id'}.'.domain'},
- $env{'course.'.$env{'request.course.id'}.'.num'});
+ &startSettingsScreen($r,'parmset',$crstype);
+ my %parmlog=&Apache::lonnet::dump('nohist_parameterlog',$cdom,$cnum);
if ((keys(%parmlog))[0]=~/^error\:/) { undef(%parmlog); }
@@ -4866,19 +4443,12 @@ sub parm_change_log {
$r->print(&Apache::loncommon::display_filter('parmslog').' '."\n".
' '.
' ');
- my $readonly = 1;
- if ($parm_permission->{'edit'}) {
- undef($readonly);
- }
- my $courseopt=&Apache::lonnet::get_courseresdata($env{'course.'.$env{'request.course.id'}.'.num'},
- $env{'course.'.$env{'request.course.id'}.'.domain'});
+
+ my $courseopt=&Apache::lonnet::get_courseresdata($cnum,$cdom);
$r->print(&Apache::loncommon::start_data_table().&Apache::loncommon::start_data_table_header_row().
''.&mt('Time').' '.&mt('User').' '.&mt('Extent').' '.&mt('Users').' '.
- &mt('Parameter').' '.&mt('Part').' '.&mt('New Value').' ');
- unless ($readonly) {
- $r->print(''.&mt('Announce').' ');
- }
- $r->print(&Apache::loncommon::end_data_table_header_row());
+ &mt('Parameter').''.&mt('Part').' '.&mt('New Value').' '.&mt('Announce').' '.
+ &Apache::loncommon::end_data_table_header_row());
my $shown=0;
my $folder='';
if ($env{'form.displayfilter'} eq 'currentfolder') {
@@ -4890,12 +4460,6 @@ sub parm_change_log {
}
if ($last) { ($folder) = &Apache::lonnet::decode_symb($last); }
}
- my $numgroups = 0;
- my @groups;
- if ($env{'request.course.groups'} ne '') {
- @groups = split(/:/,$env{'request.course.groups'});
- $numgroups = scalar(@groups);
- }
foreach my $id (sort
{
if ($parmlog{$b}{'exe_time'} ne $parmlog{$a}{'exe_time'}) {
@@ -4917,8 +4481,7 @@ sub parm_change_log {
$parmlog{$id}{'exe_uname'},
$parmlog{$id}{'exe_udom'});
my $send_msg_link='';
- if ((!$readonly) &&
- (($parmlog{$id}{'exe_uname'} ne $env{'user.name'})
+ if ((($parmlog{$id}{'exe_uname'} ne $env{'user.name'})
|| ($parmlog{$id}{'exe_udom'} ne $env{'user.domain'}))) {
$send_msg_link =' '.
&Apache::loncommon::messagewrapper(&mt('Send message'),
@@ -4935,14 +4498,6 @@ sub parm_change_log {
!exists($parmlog{$id}{'logentry'}{$changed.'.type'}));
my ($realm,$section,$parmname,$part,$what,$middle,$uname,$udom,$issection,$realmdescription)=
&components($changed,$parmlog{$id}{'uname'},$parmlog{$id}{'udom'},undef,undef,$typeflag);
- if ($env{'request.course.sec'} ne '') {
- next if (($issection ne '') && (!(($issection eq $env{'request.course.sec'}) ||
- ($numgroups && (grep(/^\Q$issection\E$/,@groups))))));
- if ($uname ne '') {
- my $stusection = &Apache::lonnet::getsection($uname,$udom,$env{'request.course.id'});
- next if (($stusection ne '-1') && ($stusection ne $env{'request.course.sec'}));
- }
- }
if ($env{'form.displayfilter'} eq 'currentfolder') {
if ($folder) {
if ($middle!~/^\Q$folder\E/) { next; }
@@ -4996,31 +4551,27 @@ sub parm_change_log {
}
}
}
- $output .= ' ';
-
- unless ($readonly) {
- $output .= '';
- if ($stillactive) {
- my $parmitem = &standard_parameter_names($parmname);
- $parmitem = &mt($parmitem);
- my $title=&mt('Changed [_1]',$parmitem);
- my $description=&mt('Changed [_1] for [_2] to [_3]',
- $parmitem,$realmdescription,
- (&isdateparm($istype{$parmname})?&Apache::lonlocal::locallocaltime($value):$value));
- if (($uname) && ($udom)) {
- $output .=
- &Apache::loncommon::messagewrapper('Notify User',
- $uname,$udom,$title,
- $description);
- } else {
- $output .=
- &Apache::lonrss::course_blog_link($id,$title,
- $description);
- }
- }
- $output .= ' ';
- }
- $output .= &Apache::loncommon::end_data_table_row();
+ $output .= '';
+
+ if ($stillactive) {
+ my $parmitem = &standard_parameter_names($parmname);
+ $parmitem = &mt($parmitem);
+ my $title=&mt('Changed [_1]',$parmitem);
+ my $description=&mt('Changed [_1] for [_2] to [_3]',
+ $parmitem,$realmdescription,
+ (&isdateparm($istype{$parmname})?&Apache::lonlocal::locallocaltime($value):$value));
+ if (($uname) && ($udom)) {
+ $output .=
+ &Apache::loncommon::messagewrapper('Notify User',
+ $uname,$udom,$title,
+ $description);
+ } else {
+ $output .=
+ &Apache::lonrss::course_blog_link($id,$title,
+ $description);
+ }
+ }
+ $output .= ' '.&Apache::loncommon::end_data_table_row();
}
if ($env{'form.displayfilter'} eq 'containing') {
my $wholeentry=$about_me_link.':'.
@@ -5040,6 +4591,7 @@ sub parm_change_log {
|| $shown<=$env{'form.show'})) { last; }
}
$r->print(&Apache::loncommon::end_data_table());
+ &endSettingsScreen($r);
$r->print(&Apache::loncommon::end_page());
}
@@ -5088,10 +4640,10 @@ sub update_slots {
context => 'parameter',
);
&Apache::lonnet::write_log('course','slotreservationslog',\%storehash,
- '',$uname,$udom,$cnum,$cdom);
+ '',$uname,$udom,$cnum,$cdom);
&Apache::lonnet::write_log('course',$cdom.'_'.$cnum.'_slotlog',\%storehash,
- '',$uname,$udom,$uname,$udom);
+ '',$uname,$udom,$uname,$udom);
}
return $success;
}
@@ -5122,9 +4674,9 @@ sub delete_slots {
context => 'parameter',
);
&Apache::lonnet::write_log('course','slotreservationslog',\%storehash,
- 1,$uname,$udom,$cnum,$cdom);
+ 1,$uname,$udom,$cnum,$cdom);
&Apache::lonnet::write_log('course',$cdom.'_'.$cnum.'_slotlog',\%storehash,
- 1,$uname,$udom,$uname,$udom);
+ 1,$uname,$udom,$uname,$udom);
}
}
}
@@ -5147,7 +4699,7 @@ sub parameter_release_vars {
}
sub parameter_releasecheck {
- my ($name,$value,$needsrelease,$cmajor,$cminor) = @_;
+ my ($name,$value,$needsrelease,$chostname,$cmajor,$cminor) = @_;
my $needsnewer;
my ($needsmajor,$needsminor) = split(/\./,$needsrelease);
if (($cmajor < $needsmajor) ||
@@ -5182,19 +4734,6 @@ sub oldversion_warning {
}
}
}
- } elsif (($name eq 'printstartdate') || ($name eq 'printenddate')) {
- my $now = time;
- if ($value =~ /^\d+$/) {
- if ($name eq 'printstartdate') {
- if ($value > $now) {
- $desc = &Apache::lonlocal::locallocaltime($value);
- }
- } elsif ($name eq 'printenddate') {
- if ($value < $now) {
- $desc = &Apache::lonlocal::locallocaltime($value);
- }
- }
- }
}
my $standard_name = &standard_parameter_names($name);
return ''.
@@ -5206,46 +4745,6 @@ sub oldversion_warning {
'
';
}
-sub get_permission {
- my %permission;
- my $allowed = 0;
- return (\%permission,$allowed) unless ($env{'request.course.id'});
- if ((&Apache::lonnet::allowed('opa',$env{'request.course.id'})) ||
- (&Apache::lonnet::allowed('opa',$env{'request.course.id'}.'/'.
- $env{'request.course.sec'}))) {
- %permission= (
- 'edit' => 1,
- 'set' => 1,
- 'setoverview' => 1,
- 'addmetadata' => 1,
- 'ordermetadata' => 1,
- 'setrestrictmeta' => 1,
- 'newoverview' => 1,
- 'setdefaults' => 1,
- 'settable' => 1,
- 'parameterchangelog' => 1,
- 'cleanparameters' => 1,
- 'dateshift1' => 1,
- 'dateshift2' => 1,
- 'helper' => 1,
- );
- } elsif ((&Apache::lonnet::allowed('vpa',$env{'request.course.id'})) ||
- (&Apache::lonnet::allowed('vpa',$env{'request.course.id'}.'/'.
- $env{'request.course.sec'}))) {
- %permission = (
- 'set' => 1,
- 'settable' => 1,
- 'newoverview' => 1,
- 'setoverview' => 1,
- 'parameterchangelog' => 1,
- );
- }
- foreach my $perm (values(%permission)) {
- if ($perm) { $allowed=1; last; }
- }
- return (\%permission,$allowed);
-}
-
sub handler {
my $r=shift;
@@ -5273,41 +4772,41 @@ sub handler {
'Parameter_Manager,Course_Environment,Parameter_Helper,Parameter_Overview,Table_Mode'});
# ----------------------------------------------------- Needs to be in a course
- my ($parm_permission,$allowed) = &get_permission();
+ my $parm_permission =
+ (&Apache::lonnet::allowed('opa',$env{'request.course.id'}) ||
+ &Apache::lonnet::allowed('opa',$env{'request.course.id'}.'/'.
+ $env{'request.course.sec'}));
my $exists = &check_for_course_info();
- if ($env{'request.course.id'} && $allowed && $exists) {
+ if ($env{'request.course.id'} && $parm_permission && $exists) {
#
# Main switch on form.action and form.state, as appropriate
#
# Check first if coming from someone else headed directly for
# the table mode
- if (($parm_permission->{'set'}) &&
- ((($env{'form.command'} eq 'set') && ($env{'form.url'})
- && (!$env{'form.dis'})) || ($env{'form.symb'}))) {
- &assessparms($r,$parm_permission);
+ if ((($env{'form.command'} eq 'set') && ($env{'form.url'})
+ && (!$env{'form.dis'})) || ($env{'form.symb'})) {
+ &assessparms($r);
} elsif (! exists($env{'form.action'})) {
&print_main_menu($r,$parm_permission);
- } elsif (!$parm_permission->{$env{'form.action'}}) {
- &print_main_menu($r,$parm_permission);
} elsif ($env{'form.action'} eq 'setoverview') {
- &overview($r,$parm_permission);
- } elsif ($env{'form.action'} eq 'addmetadata') {
- &addmetafield($r);
- } elsif ($env{'form.action'} eq 'ordermetadata') {
- &order_meta_fields($r);
+ &overview($r);
+ } elsif ($env{'form.action'} eq 'addmetadata') {
+ &addmetafield($r);
+ } elsif ($env{'form.action'} eq 'ordermetadata') {
+ &order_meta_fields($r);
} elsif ($env{'form.action'} eq 'setrestrictmeta') {
- &setrestrictmeta($r);
+ &setrestrictmeta($r);
} elsif ($env{'form.action'} eq 'newoverview') {
- &newoverview($r,$parm_permission);
+ &newoverview($r);
} elsif ($env{'form.action'} eq 'setdefaults') {
- &defaultsetter($r);
- } elsif ($env{'form.action'} eq 'settable') {
- &assessparms($r,$parm_permission);
+ &defaultsetter($r);
+ } elsif ($env{'form.action'} eq 'settable') {
+ &assessparms($r);
} elsif ($env{'form.action'} eq 'parameterchangelog') {
- &parm_change_log($r,$parm_permission);
+ &parm_change_log($r);
} elsif ($env{'form.action'} eq 'cleanparameters') {
- &clean_parameters($r);
+ &clean_parameters($r);
} elsif ($env{'form.action'} eq 'dateshift1') {
&date_shift_one($r);
} elsif ($env{'form.action'} eq 'dateshift2') {