--- loncom/auth/lonroles.pm 2012/08/14 17:35:04 1.271 +++ loncom/auth/lonroles.pm 2012/08/15 14:37:23 1.272 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.271 2012/08/14 17:35:04 raeburn Exp $ +# $Id: lonroles.pm,v 1.272 2012/08/15 14:37:23 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -225,96 +225,13 @@ sub handler { $updateresult .= &update_session_roles(); &Apache::lonnet::appenv({'user.update.time' => $now}); $update = $now; - &reqauthor_check(); + &Apache::loncoursequeueadmin::reqauthor_check(); } # -------------------------------------------------- Check for author requests - my $reqauthor; if ($env{'form.requestauthor'}) { - if ($env{'environment.canrequest.author'}) { - 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 = ''. - &mt('A request for authoring space submitted on [_1] is awaiting approval', - &Apache::lonlocal::locallocaltime($timestamp)). - ''; - } - $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 = ''. - &mt('Access to authoring space has been activated').'
'; - &update_session_roles(); - &Apache::lonnet::appenv({'user.update.time' => $now}); - $update = $now; - } else { - $reqauthor = ''. - &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 = ''. - &mt('Your request for authoring space has been submitted for approval.'). - ''; - &Apache::lonnet::appenv({'environment.requestauthorqueued' => $val.':'.$now}); - } else { - $reqauthor = ''. - &mt('An error occurred saving your request for authoring space.'). - ''; - } - } - } - } - } + $reqauthor = &Apache::loncoursequeueadmin::process_reqauthor(\$update); } my $envkey;