--- loncom/auth/lonroles.pm 2006/05/30 21:16:40 1.152 +++ loncom/auth/lonroles.pm 2006/06/29 17:51:37 1.162.2.1 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.152 2006/05/30 21:16:40 raeburn Exp $ +# $Id: lonroles.pm,v 1.162.2.1 2006/06/29 17:51:37 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -88,7 +88,7 @@ sub error_page { &Apache::lonmenu::rawconfig().''. '

'.&mt('The following problems occurred:'). $error. - '


'.&mt('Continue').''. &Apache::loncommon::end_page()); } @@ -149,8 +149,10 @@ sub handler { # store role if recent_role list being kept if ($env{'environment.recentroles'}) { + my %frozen_roles = + &Apache::lonhtmlcommon::get_recent_frozen('roles',$env{'environment.recentrolesn'}); &Apache::lonhtmlcommon::store_recent('roles', - $trolecode,' '); + $trolecode,' ',$frozen_roles{$trolecode}); } @@ -264,20 +266,15 @@ ENDENTERKEY } return OK; } else { - my $type = 'Course/Group'; - if ($env{'request.course.id'}) { - if (defined($env{'course.'. - $env{'request.course.id'}.'.type'})) { - $type = $env{'course.'. - $env{'request.course.id'}.'.type'}; - } + if (!$env{'request.course.id'}) { &Apache::lonnet::appenv( "request.course.id" => $cdom.'_'.$cnum); $furl='/adm/roles?tryagain=1'; $msg= - '

'. - &mt('Could not initialize [_1] at this time.',lc($type)). - '

'.&mt('Please try again.').'

'.$ferr; + '

'. + &mt('Could not initialize [_1] at this time.', + $env{'course.'.$cdom.'_'.$cnum.'.description'}). + '

'.&mt('Please try again.').'

'.$ferr; } if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } &Apache::lonnet::appenv('request.role.adv'=>$tadv); @@ -305,7 +302,8 @@ ENDENTERKEY ) { my $startpage = &courseloadpage($courseid); unless ($startpage eq 'firstres') { - $msg = &mt('Entering [_1] ....',lc($type)); + $msg = &mt('Entering [_1] ....', + $env{'course.'.$courseid.'.description'}); &redirect_user($r,&mt('New in course'), '/adm/whatsnew?refpage=start',$msg, $env{'environment.remotenavmap'}); @@ -318,8 +316,10 @@ ENDENTERKEY # Guess not ... $furl=&Apache::lonpageflip::first_accessible_resource(); } - $msg = &mt('Entering [_1] ...',lc($type)); - &redirect_user($r,&mt('Entering [_1]',$type), + $msg = &mt('Entering [_1] ...', + $env{'course.'.$courseid.'.description'}); + &redirect_user($r,&mt('Entering [_1]', + $env{'course.'.$courseid.'.description'}), $furl,$msg, $env{'environment.remotenavmap'}); } @@ -364,7 +364,7 @@ ENDENTERKEY my $start_page=&Apache::loncommon::start_page('User Roles'); my $standby=&mt('Role selected. Please stand by.'); $standby=~s/\n/\\n/g; - my $helptag='
'.&Apache::loncommon::help_open_menu('','General Intro','General_Intro','User Roles',1,undef,undef,undef,undef,,&mt("Click here for help")).'
'; + my $helptag='
'.&Apache::loncommon::help_open_menu('General Intro','General_Intro',1,undef,undef,undef,undef,&mt("Click here for help")).'
'; $r->print(< @@ -424,8 +424,8 @@ ENDHEADER } else { if ($env{'user.error.msg'}) { $r->print( - '

'. - &mt('You need to choose another user role or enter a specific course for this function').'

'); + '

'. + &mt('You need to choose another user role or enter a specific course for this function').'

'); } } # -------------------------------------------------------- Choice or no choice? @@ -518,10 +518,8 @@ ENDHEADER if ($tremark) { $tremark.='
'; } $tremark.=&mt('Defined by ').$rauthor. &mt(' at ').$rdomain.'.'; - $trole=$rrole; - } else { - $trole=Apache::lonnet::plaintext($role); - } + } + $trole=Apache::lonnet::plaintext($role); my $ttype; my $twhere; my ($tdom,$trest,$tsection)= @@ -565,15 +563,9 @@ ENDHEADER $tremark.=&Apache::lonhtmlcommon::authorbombs('/res/'.$tdom.'/'.$env{'user.name'}.'/'); $sortkey=$role; } elsif ($trest) { - $ttype='Course'; my $tcourseid=$tdom.'_'.$trest; - if (defined($env{'course.'.$tcourseid.'.type'})) { - $ttype = $env{'course.'.$tcourseid.'.type'}; - if ($ttype eq 'Group') { - $trole = &Apache::loncommon::convert_role($trole, - $ttype); - } - } + $ttype = &Apache::loncommon::course_type($tcourseid); + $trole = &Apache::lonnet::plaintext($role,$ttype); if ($env{'course.'.$tcourseid.'.description'}) { $twhere=$env{'course.'.$tcourseid.'.description'}; $sortkey=$role."\0".$tdom."\0".$twhere."\0".$envkey; @@ -592,10 +584,7 @@ ENDHEADER &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom,$tfont). ''; $ttype = $newhash{'type'}; - if ($ttype eq 'Group') { - $trole = &Apache::loncommon::convert_role( - $trole,$ttype); - } + $trole = &Apache::lonnet::plaintext($role,$ttype); } else { $twhere=&mt('Currently not available'); $env{'course.'.$tcourseid.'.description'}=$twhere; @@ -646,7 +635,7 @@ ENDHEADER # More than one possible role # ----------------------------------------------------------------------- Table unless (($advanced) || ($nochoose)) { - $r->print("

".&mt('Select a Course/Group to Enter')."

\n"); + $r->print("

".&mt('Select a Course to Enter')."

\n"); } $r->print('
'); unless ($nochoose) { $r->print(''); } @@ -754,10 +743,8 @@ ENDHEADER $ttype='Construction Space'; $twhere='User: '.$trest.', Domain: '.$tdom; } else { - $ttype='Course'; - if (defined($env{'course.'.$tdom.'_'.$trest.'.type'})) { - $ttype = $env{'course.'.$tdom.'_'.$trest.'.type'}; - } + $ttype= + &Apache::loncommon::course_type($tdom.'_'.$trest); $twhere=$env{'course.'.$tdom.'_'.$trest.'.description'}; if ($tsec) { $twhere.=' (Section: '.$tsec.')'; @@ -998,7 +985,6 @@ sub display_cc_role { if ($rolekey =~ m-^user\.role.cc\./(\w+)/(\w+)$-) { my $tcourseid = $1.'_'.$2; my $trolecode = 'cc./'.$1.'/'.$2; - my $trole = Apache::lonnet::plaintext('cc'); my $twhere; my $ttype; my $tbg='#77FF77'; @@ -1009,15 +995,12 @@ sub display_cc_role { ' '. &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$2,$1,$tfont). ''; - $ttype=$newhash{'type'}; - if ($ttype eq 'Group') { - $trole = &Apache::loncommon::convert_role($trole,$ttype); - } + $ttype = $newhash{'type'}; } else { $twhere=&mt('Currently not available'); $env{'course.'.$tcourseid.'.description'}=$twhere; - $ttype = 'Unavailable'; } + my $trole = &Apache::lonnet::plaintext('cc',$ttype); $twhere.="
".&mt('Domain').":".$1; $roletext = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$tfont,$trole,$twhere,'','','',1,''); } @@ -1027,14 +1010,11 @@ sub display_cc_role { sub allcourses_row { my ($dcdom,$rowtype) = @_; - my $ccrole = Apache::lonnet::plaintext('cc'); my $output = ''. '
 
'; - foreach my $type ('Course','Group') { + foreach my $type ('Course') { my $selectlink = &courselink($dcdom,$rowtype,$type); - if ($type eq 'Group') { - $ccrole = &Apache::loncommon::convert_role($ccrole,$type); - } + my $ccrole = &Apache::lonnet::plaintext('cc',$type); $output.= ''.$ccrole.''. ' '.$selectlink.''. ' from '.&mt('Domain').' '.$dcdom.'
'; @@ -1053,17 +1033,11 @@ sub set_privileges { my $area = '/'.$dcdom.'/'.$pickedcourse; my $role = 'cc'; my $spec = $role.'.'.$area; - my $userroles = &Apache::lonnet::set_arearole($role,$area,'','',$dcdom,$env{'user.name'}); + my %userroles = &Apache::lonnet::set_arearole($role,$area,'','',$dcdom,$env{'user.name'}); my %ccrole = (); &Apache::lonnet::standard_roleprivs(\%ccrole,$role,$dcdom,$spec,$pickedcourse,$area); - my ($author,$adv)= &Apache::lonnet::set_userprivs(\$userroles,\%ccrole); - my @newprivs = split/\n/,$userroles; - my %newccroles = (); - foreach (@newprivs) { - my ($key,$val) = split/=/,$_; - $newccroles{$key} = $val; - } - &Apache::lonnet::appenv(%newccroles); + my ($author,$adv)= &Apache::lonnet::set_userprivs(\%userroles,\%ccrole); + &Apache::lonnet::appenv(%userroles); &Apache::lonnet::log($env{'user.domain'}, $env{'user.name'}, $env{'user.home'},