Diff for /loncom/auth/lonroles.pm between versions 1.271 and 1.272

version 1.271, 2012/08/14 17:35:04 version 1.272, 2012/08/15 14:37:23
Line 225  sub handler { Line 225  sub handler {
         $updateresult .= &update_session_roles();          $updateresult .= &update_session_roles();
         &Apache::lonnet::appenv({'user.update.time'  => $now});          &Apache::lonnet::appenv({'user.update.time'  => $now});
         $update = $now;          $update = $now;
         &reqauthor_check();          &Apache::loncoursequeueadmin::reqauthor_check();
     }      }
   
 # -------------------------------------------------- Check for author requests  # -------------------------------------------------- Check for author requests
   
     my $reqauthor;      my $reqauthor;
     if ($env{'form.requestauthor'}) {      if ($env{'form.requestauthor'}) {
         if ($env{'environment.canrequest.author'}) {         $reqauthor = &Apache::loncoursequeueadmin::process_reqauthor(\$update);
             unless (&is_active_author()) {  
                 my $queued = &reqauthor_check();  
                 my $skipreq;  
                 if ($queued =~ /^approval:\d+$/) {  
                     my ($status,$timestamp) = split(/:/,$env{'environment.requestauthorqueued'});  
                     if ($status eq 'approval') {  
                         $reqauthor = '<span class="LC_info">'.  
                                      &mt('A request for authoring space submitted on [_1] is awaiting approval',  
                                          &Apache::lonlocal::locallocaltime($timestamp)).  
                                      '</span>';  
                     }  
                     $skipreq = 1;  
                 } elsif ($queued =~ /^approved:\d+$/) {  
                     my %roleshash = &Apache::lonnet::get_my_roles($env{'user.name'},$env{'user.domain'},'userroles',  
                                                                   ['active'],['au'],[$env{'user.domain'}]);  
                     if (keys(%roleshash) > 0) {  
                         $skipreq = 1;   
                     }  
                 }  
                 unless ($skipreq) {  
                     my (@inststatuses,%domconfig);  
                     %domconfig =  
                         &Apache::lonnet::get_dom('configuration',  
                                                  ['requestauthor'],$env{'user.domain'});  
                     my $val = &Apache::loncoursequeueadmin::get_processtype('requestauthor',$env{'user.name'},  
                                                                             $env{'user.domain'},$env{'user.adv'},  
                                                                             $env{'user.domain'},undef,  
                                                                             \@inststatuses,\%domconfig);  
                     if ($val eq 'automatic') {  
                         my $start = $now-1;  
                         if (&Apache::lonnet::assignrole($env{'user.domain'},$env{'user.name'},'/'.$env{'user.domain'}.'/',  
                                                         'au',undef,$start,undef,undef,'requestauthor') eq 'ok') {  
                             $reqauthor = '<span class="LC_info">'.  
                                          &mt('Access to authoring space has been activated').'</span><br />';  
                                          &update_session_roles();  
                             &Apache::lonnet::appenv({'user.update.time'  => $now});  
                             $update = $now;  
                         } else {  
                             $reqauthor = '<span class="LC_info">'.  
                                          &mt('An error occurred while activating your access to authoring space');     
                         }  
                     } elsif ($val eq 'approval') {  
                         my $domconfiguser = &Apache::lonnet::get_domainconfiguser($env{'user.domain'});  
                         if (&Apache::lonnet::put('requestauthorqueue',{ $env{'user.name'}.'_'.$val => $now },  
                                                  $env{'user.domain'},$domconfiguser) eq 'ok') {  
                             my %userrequest = (  
                                 author => {  
                                           timestamp   => $now,  
                                           status      => $val,  
                                         },  
                                 author_status => $val,  
                             );  
                             my $req_notifylist;  
                             if (ref($domconfig{'requestauthor'}) eq 'HASH') {  
                                 if (ref($domconfig{'requestauthor'}{'notify'}) eq 'HASH') {  
                                     my $req_notifylist = $domconfig{'requestauthor'}{'notify'}{'approval'};  
                                     if ($req_notifylist) {  
                                         my $fullname = &Apache::loncommon::plainname($env{'user.name'},  
                                                                                      $env{'user.domain'});  
                                         my $sender = $env{'user.name'}.':'.$env{'user.domain'};  
                                         my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description');  
                                         &Apache::loncoursequeueadmin::send_selfserve_notification($req_notifylist,  
                                             "$fullname ($env{'user.name'}:$env{'user.domain'})",undef,$domdesc,  
                                             $now,'authorreq',$sender);  
                                     }  
                                 }  
                             }  
                             my $userresult =  
                                 &Apache::lonnet::put('requestauthor',\%userrequest,$env{'user.domain'},$env{'user.name'});  
                             $reqauthor = '<span class="LC_info">'.  
                                          &mt('Your request for authoring space has been submitted for approval.').  
                                          '</span>';  
                             &Apache::lonnet::appenv({'environment.requestauthorqueued' => $val.':'.$now});  
                         } else {  
                             $reqauthor = '<span class="LC_info">'.  
                                          &mt('An error occurred saving your request for authoring space.').  
                                          '</span>';  
                         }  
                     }  
                 }  
             }  
         }  
     }      }
   
     my $envkey;      my $envkey;

Removed from v.1.271  
changed lines
  Added in v.1.272


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