Diff for /loncom/auth/lonroles.pm between versions 1.269.2.6 and 1.282

version 1.269.2.6, 2013/01/01 03:45:50 version 1.282, 2013/04/03 20:46:55
Line 142  use Apache::longroup; Line 142  use Apache::longroup;
 use GDBM_File;  use GDBM_File;
 use LONCAPA qw(:DEFAULT :match);  use LONCAPA qw(:DEFAULT :match);
 use HTML::Entities;  use HTML::Entities;
    
   
 sub redirect_user {  sub redirect_user {
     my ($r,$title,$url,$msg) = @_;      my ($r,$title,$url,$msg) = @_;
Line 150  sub redirect_user { Line 150  sub redirect_user {
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
     &Apache::loncommon::no_cache($r);      &Apache::loncommon::no_cache($r);
     $r->send_http_header;      $r->send_http_header;
     my $swinfo=&Apache::lonmenu::rawconfig();  
   
     # Breadcrumbs      # Breadcrumbs
     my $brcrum = [{'href' => $url,      my $brcrum = [{'href' => $url,
Line 165  sub redirect_user { Line 164  sub redirect_user {
     $url=~s/ /\%20/g;      $url=~s/ /\%20/g;
     $r->print(<<ENDREDIR);      $r->print(<<ENDREDIR);
 $start_page  $start_page
 <script type="text/javascript">  
 // <![CDATA[  
 $swinfo  
 // ]]>  
 </script>  
 <p>$msg</p>  <p>$msg</p>
 $end_page  $end_page
 ENDREDIR  ENDREDIR
Line 220  sub handler { Line 214  sub handler {
   
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'});      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'});
   
 # -------------------------------------------------- Check if setting hot list  # -------------------------------------------------- Check if setting hot list 
     my $hotlist;      my $hotlist;
     if ($env{'form.action'} eq 'verify_and_change_rolespref') {      if ($env{'form.action'} eq 'verify_and_change_rolespref') {
         $hotlist = &Apache::lonpreferences::verify_and_change_rolespref($r);          $hotlist = &Apache::lonpreferences::verify_and_change_rolespref($r);
Line 602  ENDENTERKEY Line 596  ENDENTERKEY
                                                 if ($env{'request.role.adv'}) {                                                  if ($env{'request.role.adv'}) {
                                                     $dest = &Apache::lonenc::unencrypted($dest);                                                      $dest = &Apache::lonenc::unencrypted($dest);
                                                     if ($destsymb eq '') {                                                      if ($destsymb eq '') {
                                                         ($destsymb) = ($dest =~ /(?:\?|\&)symb=([^\&]*)/);                                                           ($destsymb) = ($dest =~ /(?:\?|\&)symb=([^\&]*)/);
                                                         $destsymb = &unescape($destsymb);                                                          $destsymb = &unescape($destsymb);
                                                     }                                                      }
                                                 }                                                  }
Line 617  ENDENTERKEY Line 611  ENDENTERKEY
                                             }                                              }
                                             if (($checkenc) && ($destsymb ne '')) {                                              if (($checkenc) && ($destsymb ne '')) {
                                                 my ($encstate,$unencsymb,$res);                                                  my ($encstate,$unencsymb,$res);
                                                 my $unencsymb = &Apache::lonnet::symbclean($destsymb);                                                  $unencsymb = &Apache::lonnet::symbclean($destsymb);
                                                 (undef,undef,$res) = &Apache::lonnet::decode_symb($unencsymb);                                                  (undef,undef,$res) = &Apache::lonnet::decode_symb($unencsymb);
                                                 &Apache::lonnet::symbverify($unencsymb,$res,\$encstate);                                                  &Apache::lonnet::symbverify($unencsymb,$res,\$encstate);
                                                 if ($encstate) {                                                  if ($encstate) {
Line 627  ENDENTERKEY Line 621  ENDENTERKEY
                                                 }                                                  }
                                             }                                              }
                                         }                                          }
                                         unless (($dest =~ m{^/enc/}) || ($dest =~ /(\?|\&)symb=.+___\d+___.+/)) {                                           unless (($dest =~ m{^/enc/}) || ($dest =~ /(\?|\&)symb=.+___\d+___.+/)) {
                                             if (($destsymb ne '') && ($destsymb !~ m{^/enc/})) {                                              if (($destsymb ne '') && ($destsymb !~ m{^/enc/})) {
                                                 my $esc_symb = &escape($destsymb);                                                  my $esc_symb = &escape($destsymb);
                                                 $dest .= '?symb='.$esc_symb;                                                  $dest .= '?symb='.$esc_symb;
Line 758  function rolesView (caller) { Line 752  function rolesView (caller) {
         document.rolechoice.display.value = caller;          document.rolechoice.display.value = caller;
     } else {      } else {
         if ((caller == 'doupdate') || (caller == 'requestauthor') ||          if ((caller == 'doupdate') || (caller == 'requestauthor') ||
             (caller == 'queued')) {              (caller == 'queued')) { 
             document.rolechoice.state.value = caller;              document.rolechoice.state.value = caller;
         }          }
     }      }
Line 842  ENDHEADER Line 836  ENDHEADER
             }              }
             if ($hotlist) {              if ($hotlist) {
                 $showresult .= $hotlist;                  $showresult .= $hotlist;
             }              } 
             $showresult .= '</div>';              $showresult .= '</div>';
             $r->print($showresult);              $r->print($showresult);
         } elsif ($env{'form.state'} eq 'queued') {          } elsif ($env{'form.state'} eq 'queued') {
Line 867  ENDHEADER Line 861  ENDHEADER
                       \%sortrole,\%roleclass,\%futureroles,\%timezones,$loncaparev);                        \%sortrole,\%roleclass,\%futureroles,\%timezones,$loncaparev);
     $refresh = $now;      $refresh = $now;
     &Apache::lonnet::appenv({'user.refresh.time'  => $refresh});      &Apache::lonnet::appenv({'user.refresh.time'  => $refresh});
     unless ($env{'user.adv'}) {      unless ($env{'user.adv'}) { 
         if ($countactive > 0) {          if ($countactive > 0) {
             my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description');              my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description');
             my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&');               my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&'); 
Line 2158  sub update_session_roles { Line 2152  sub update_session_roles {
                     my $status_in_db =                      my $status_in_db =
                         &curr_role_status($tstart,$tend,$refresh,$now);                          &curr_role_status($tstart,$tend,$refresh,$now);
                     my ($rdummy,$rest) = split(/\//,$role,2);                      my ($rdummy,$rest) = split(/\//,$role,2);
                     my ($rdummy,$rdomain,$rauthor,$rrole)=split(/\//,$role);  
                     my %currpriv;                      my %currpriv;
                     unless (exists($crprivs{$rest})) {                      unless (exists($crprivs{$rest})) {
                         my ($rdomain,$rauthor,$rrole)=split(/\//,$rest);                          my ($rdomain,$rauthor,$rrole)=split(/\//,$rest);
Line 2412  sub update_session_roles { Line 2405  sub update_session_roles {
                             }                              }
                             $groupmsg .= '<li><b>'.                              $groupmsg .= '<li><b>'.
                                          $env{'course.'.$cdom.'_'.$cnum.'.description'}.'</b><ul>';                                           $env{'course.'.$cdom.'_'.$cnum.'.description'}.'</b><ul>';
                               $currcrs = $cdom.'_'.$cnum;
                         }                          }
                         my ($cdom,$cnum) = split(/\//,$1);  
                         my $group = $2;  
                         my $groupdesc;                          my $groupdesc;
                         unless (ref($curr_groups{$cdom.'_'.$cnum}) eq 'HASH') {                          unless (ref($curr_groups{$cdom.'_'.$cnum}) eq 'HASH') {
                             %{$curr_groups{$cdom.'_'.$cnum}} =                              %{$curr_groups{$cdom.'_'.$cnum}} = 
                                 &Apache::longroup::coursegroups($cdom,$cnum);                                  &Apache::longroup::coursegroups($cdom,$cnum);
                         }                          }
                         unless ((ref($groupdescs{$cdom.'_'.$cnum}) eq 'HASH') &&                          unless ((ref($groupdescs{$cdom.'_'.$cnum}) eq 'HASH') &&
                             ($groupdescs{$cdom.'_'.$cnum}{$group})) {                              ($groupdescs{$cdom.'_'.$cnum}{$group})) {
   
                             my %groupinfo =                              my %groupinfo = 
                                 &Apache::longroup::get_group_settings($curr_groups{$cdom.'_'.$cnum}{$group});                                  &Apache::longroup::get_group_settings($curr_groups{$cdom.'_'.$cnum}{$group});
                             $groupdescs{$cdom.'_'.$cnum}{$group} =                              $groupdescs{$cdom.'_'.$cnum}{$group} = 
                                 &unescape($groupinfo{'description'});                                  &unescape($groupinfo{'description'});
                         }                          }
                         $groupdesc = $groupdescs{$cdom.'_'.$cnum}{$group};                          $groupdesc = $groupdescs{$cdom.'_'.$cnum}{$group};
Line 2470  sub update_session_roles { Line 2462  sub update_session_roles {
                           &mt('Existing roles with status changes').'</li>'.                            &mt('Existing roles with status changes').'</li>'.
                           '<ul>';                            '<ul>';
             foreach my $item (sort(keys(%rolechange))) {              foreach my $item (sort(keys(%rolechange))) {
                 my $desc = &role_desc($item,$update,$refresh,$now);                  my $desc = &role_desc($item,$update,$refresh,$now);  
                 $changemsg .= '<li>'.                  $changemsg .= '<li>'.
                               &mt('[_1] status now: [_2].',$desc,                                &mt('[_1] status now: [_2].',$desc,
                               $rolechange{$item}).'</li>';                                $rolechange{$item}).'</li>';
Line 2522  sub update_session_roles { Line 2514  sub update_session_roles {
                 my $cdom = $env{'course.'.$cid.'.domain'};                  my $cdom = $env{'course.'.$cid.'.domain'};
                 my $cnum = $env{'course.'.$cid.'.num'};                  my $cnum = $env{'course.'.$cid.'.num'};
                 my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum);                  my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum);
                 my %groupdesc;                  my %groupdesc; 
                 if (ref($groupchange{$crs}) eq 'HASH') {                  if (ref($groupchange{$crs}) eq 'HASH') {
                     $groupchgmsg .= '<li>'.&mt('Course/Community: [_1]','<b>'.$crsdesc.'</b><ul>');                      $groupchgmsg .= '<li>'.&mt('Course/Community: [_1]','<b>'.$crsdesc.'</b><ul>');
                     foreach my $group (sort(keys(%{$groupchange{$crs}}))) {                      foreach my $group (sort(keys(%{$groupchange{$crs}}))) {
Line 2553  sub role_desc { Line 2545  sub role_desc {
     my ($item,$update,$refresh,$now) = @_;      my ($item,$update,$refresh,$now) = @_;
     my ($where,$trolecode,$role,$tstatus,$tend,$tstart,$twhere,      my ($where,$trolecode,$role,$tstatus,$tend,$tstart,$twhere,
         $trole,$tremark);          $trole,$tremark);
     &Apache::lonnet::role_status('user.role.'.$item,$update,$refresh,                                      $now,\$role,\$where, \$trolecode,      &Apache::lonnet::role_status('user.role.'.$item,$update,$refresh,
                                    $now,\$role,\$where,\$trolecode,
                                  \$tstatus,\$tstart,\$tend);                                   \$tstatus,\$tstart,\$tend);
     if ($role =~ /^cr\//) {      if ($role =~ /^cr\//) {
         my ($rdummy,$rdomain,$rauthor,$rrole)=split(/\//,$role);          my ($rdummy,$rdomain,$rauthor,$rrole)=split(/\//,$role);
Line 2723  sub get_queued { Line 2716  sub get_queued {
             if (ref($history{'details'}) eq 'HASH') {              if (ref($history{'details'}) eq 'HASH') {
                 $description = $history{details}{'cdescr'};                  $description = $history{details}{'cdescr'};
             }              }
             @{$reqcrs{$reqtime}} = ($description,$showtype);              @{$reqcrs{$reqtime}} = ($description,$showtype); 
         }          }
     }      }
     my @sortedtimes = sort {$a <=> $b} (keys(%reqcrs));      my @sortedtimes = sort {$a <=> $b} (keys(%reqcrs));

Removed from v.1.269.2.6  
changed lines
  Added in v.1.282


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>