version 1.1230, 2013/07/09 00:17:27
|
version 1.1239, 2013/09/29 14:15:08
|
Line 1323 sub check_loadbalancing {
|
Line 1323 sub check_loadbalancing {
|
} |
} |
} |
} |
} elsif (($homeintdom) && ($udom ne $serverhomedom)) { |
} elsif (($homeintdom) && ($udom ne $serverhomedom)) { |
my ($result,$cached)=&is_cached_new('loadbalancing',$serverhomedom); |
($result,$cached)=&is_cached_new('loadbalancing',$serverhomedom); |
unless (defined($cached)) { |
unless (defined($cached)) { |
my %domconfig = |
my %domconfig = |
&Apache::lonnet::get_dom('configuration',['loadbalancing'],$serverhomedom); |
&Apache::lonnet::get_dom('configuration',['loadbalancing'],$serverhomedom); |
Line 1578 sub idput {
|
Line 1578 sub idput {
|
} |
} |
} |
} |
|
|
|
# ---------------------------------------- Delete unwanted IDs from ids.db file |
|
|
|
sub iddel { |
|
my ($udom,$idshashref,$uhome)=@_; |
|
my %result=(); |
|
unless (ref($idshashref) eq 'HASH') { |
|
return %result; |
|
} |
|
my %servers=(); |
|
while (my ($id,$uname) = each(%{$idshashref})) { |
|
my $uhom; |
|
if ($uhome) { |
|
$uhom = $uhome; |
|
} else { |
|
$uhom=&homeserver($uname,$udom); |
|
} |
|
if ($uhom ne 'no_host') { |
|
if ($servers{$uhom}) { |
|
$servers{$uhom}.='&'.&escape($id); |
|
} else { |
|
$servers{$uhom}=&escape($id); |
|
} |
|
} |
|
} |
|
foreach my $server (keys(%servers)) { |
|
$result{$server} = &critical('iddel:'.$udom.':'.$servers{$server},$uhome); |
|
} |
|
return %result; |
|
} |
|
|
# ------------------------------dump from db file owned by domainconfig user |
# ------------------------------dump from db file owned by domainconfig user |
sub dump_dom { |
sub dump_dom { |
my ($namespace, $udom, $regexp) = @_; |
my ($namespace, $udom, $regexp) = @_; |
Line 2822 sub can_edit_resource {
|
Line 2852 sub can_edit_resource {
|
$cfile =~ s{^http://}{}; |
$cfile =~ s{^http://}{}; |
$cfile = '/adm/wrapper/ext/'.$cfile; |
$cfile = '/adm/wrapper/ext/'.$cfile; |
} |
} |
|
} elsif ($resurl =~ m{^/?adm/viewclasslist$}) { |
|
if ($env{'form.forceedit'}) { |
|
$forceview = 1; |
|
} else { |
|
$forceedit = 1; |
|
} |
|
$cfile = ($resurl =~ m{^/} ? $resurl : "/$resurl"); |
} |
} |
} |
} |
if ($uploaded || $incourse) { |
if ($uploaded || $incourse) { |
Line 7253 sub definerole {
|
Line 7290 sub definerole {
|
# ---------------- Make a metadata query against the network of library servers |
# ---------------- Make a metadata query against the network of library servers |
|
|
sub metadata_query { |
sub metadata_query { |
my ($query,$custom,$customshow,$server_array)=@_; |
my ($query,$custom,$customshow,$server_array,$domains_hash)=@_; |
my %rhash; |
my %rhash; |
my %libserv = &all_library(); |
my %libserv = &all_library(); |
my @server_list = (defined($server_array) ? @$server_array |
my @server_list = (defined($server_array) ? @$server_array |
: keys(%libserv) ); |
: keys(%libserv) ); |
for my $server (@server_list) { |
for my $server (@server_list) { |
|
my $domains = ''; |
|
if (ref($domains_hash) eq 'HASH') { |
|
$domains = $domains_hash->{$server}; |
|
} |
unless ($custom or $customshow) { |
unless ($custom or $customshow) { |
my $reply=&reply("querysend:".&escape($query),$server); |
my $reply=&reply("querysend:".&escape($query).':::'.&escape($domains),$server); |
$rhash{$server}=$reply; |
$rhash{$server}=$reply; |
} |
} |
else { |
else { |
my $reply=&reply("querysend:".&escape($query).':'. |
my $reply=&reply("querysend:".&escape($query).':'. |
&escape($custom).':'.&escape($customshow), |
&escape($custom).':'.&escape($customshow).':'.&escape($domains), |
$server); |
$server); |
$rhash{$server}=$reply; |
$rhash{$server}=$reply; |
} |
} |
Line 8464 sub modifystudent {
|
Line 8505 sub modifystudent {
|
$desiredhome,$email,$inststatus); |
$desiredhome,$email,$inststatus); |
unless ($reply eq 'ok') { return $reply; } |
unless ($reply eq 'ok') { return $reply; } |
# This will cause &modify_student_enrollment to get the uid from the |
# This will cause &modify_student_enrollment to get the uid from the |
# students environment |
# student's environment |
$uid = undef if (!$forceid); |
$uid = undef if (!$forceid); |
$reply = &modify_student_enrollment($udom,$uname,$uid,$first,$middle,$last, |
$reply = &modify_student_enrollment($udom,$uname,$uid,$first,$middle,$last, |
$gene,$usec,$end,$start,$type,$locktype, |
$gene,$usec,$end,$start,$type,$locktype, |
Line 9600 sub resdata {
|
Line 9641 sub resdata {
|
return undef; |
return undef; |
} |
} |
|
|
|
sub get_numsuppfiles { |
|
my ($cnum,$cdom,$ignorecache)=@_; |
|
my $hashid=$cnum.':'.$cdom; |
|
my ($suppcount,$cached); |
|
unless ($ignorecache) { |
|
($suppcount,$cached) = &is_cached_new('suppcount',$hashid); |
|
} |
|
unless (defined($cached)) { |
|
my $chome=&homeserver($cnum,$cdom); |
|
unless ($chome eq 'no_host') { |
|
($suppcount,my $errors) = (0,0); |
|
my $suppmap = 'supplemental.sequence'; |
|
($suppcount,$errors) = |
|
&Apache::loncommon::recurse_supplemental($cnum,$cdom,$suppmap,$suppcount,$errors); |
|
} |
|
&do_cache_new('suppcount',$hashid,$suppcount,600); |
|
} |
|
return $suppcount; |
|
} |
|
|
# |
# |
# EXT resource caching routines |
# EXT resource caching routines |
# |
# |
Line 9743 sub EXT {
|
Line 9804 sub EXT {
|
if (!$symbparm) { $symbparm=&symbread(); } |
if (!$symbparm) { $symbparm=&symbread(); } |
} |
} |
|
|
if ($space eq 'title') { |
if ($qualifier eq '') { |
if (!$symbparm) { $symbparm = $env{'request.filename'}; } |
if ($space eq 'title') { |
return &gettitle($symbparm); |
if (!$symbparm) { $symbparm = $env{'request.filename'}; } |
} |
return &gettitle($symbparm); |
|
} |
|
|
if ($space eq 'map') { |
if ($space eq 'map') { |
my ($map) = &decode_symb($symbparm); |
my ($map) = &decode_symb($symbparm); |
return &symbread($map); |
return &symbread($map); |
} |
} |
if ($space eq 'filename') { |
if ($space eq 'maptitle') { |
if ($symbparm) { |
my ($map) = &decode_symb($symbparm); |
return &clutter((&decode_symb($symbparm))[2]); |
return &gettitle($map); |
|
} |
|
if ($space eq 'filename') { |
|
if ($symbparm) { |
|
return &clutter((&decode_symb($symbparm))[2]); |
|
} |
|
return &hreflocation('',$env{'request.filename'}); |
} |
} |
return &hreflocation('',$env{'request.filename'}); |
|
} |
if ((defined($courseid)) && ($courseid eq $env{'request.course.id'}) && $symbparm) { |
|
if ($space eq 'visibleparts') { |
|
my $navmap = Apache::lonnavmaps::navmap->new(); |
|
my $item; |
|
if (ref($navmap)) { |
|
my $res = $navmap->getBySymb($symbparm); |
|
my $parts = $res->parts(); |
|
if (ref($parts) eq 'ARRAY') { |
|
$item = join(',',@{$parts}); |
|
} |
|
undef($navmap); |
|
} |
|
return $item; |
|
} |
|
} |
|
} |
|
|
my ($section, $group, @groups); |
my ($section, $group, @groups); |
my ($courselevelm,$courselevel); |
my ($courselevelm,$courselevel); |
Line 11625 sub parse_dns_checksums_tab {
|
Line 11708 sub parse_dns_checksums_tab {
|
my (%chksum,%revnum); |
my (%chksum,%revnum); |
if (ref($lines) eq 'ARRAY') { |
if (ref($lines) eq 'ARRAY') { |
chomp(@{$lines}); |
chomp(@{$lines}); |
my $versions = shift(@{$lines}); |
my $version = shift(@{$lines}); |
my %supported; |
if ($version eq $release) { |
if ($versions =~ /^VERSIONS\:([\w\.\,]+)$/) { |
|
my $releaseslist = $1; |
|
if ($releaseslist =~ /,/) { |
|
map { $supported{$_} = 1; } split(/,/,$releaseslist); |
|
} elsif ($releaseslist) { |
|
$supported{$releaseslist} = 1; |
|
} |
|
} |
|
if ($supported{$release}) { |
|
my $matchthis = 0; |
|
foreach my $line (@{$lines}) { |
foreach my $line (@{$lines}) { |
if ($line =~ /^(\d[\w\.]+)$/) { |
my ($file,$version,$shasum) = split(/,/,$line); |
if ($matchthis) { |
$chksum{$file} = $shasum; |
last; |
$revnum{$file} = $version; |
} elsif ($1 eq $release) { |
|
$matchthis = 1; |
|
} |
|
} elsif ($matchthis) { |
|
my ($file,$version,$shasum) = split(/,/,$line); |
|
$chksum{$file} = $shasum; |
|
$revnum{$file} = $version; |
|
} |
|
} |
} |
if (ref($hashref) eq 'HASH') { |
if (ref($hashref) eq 'HASH') { |
%{$hashref} = ( |
%{$hashref} = ( |
Line 11662 sub parse_dns_checksums_tab {
|
Line 11727 sub parse_dns_checksums_tab {
|
} |
} |
|
|
sub fetch_dns_checksums { |
sub fetch_dns_checksums { |
my %checksums; |
my %checksums; |
&get_dns('/adm/dns/checksums',\&parse_dns_checksums_tab,1,1, |
my $machine_dom = &Apache::lonnet::host_domain($perlvar{'lonHostID'}); |
|
my $loncaparev = &get_server_loncaparev($machine_dom); |
|
my ($release,$timestamp) = split(/\-/,$loncaparev); |
|
&get_dns("/adm/dns/checksums/$release",\&parse_dns_checksums_tab,1,1, |
\%checksums); |
\%checksums); |
return \%checksums; |
return \%checksums; |
} |
} |
Line 12638 or when Autoupdate.pl is run by cron in
|
Line 12706 or when Autoupdate.pl is run by cron in
|
modifystudent |
modifystudent |
|
|
modify a student's enrollment and identification information. |
modify a student's enrollment and identification information. |
The course id is resolved based on the current users environment. |
The course id is resolved based on the current user's environment. |
This means the envoking user must be a course coordinator or otherwise |
This means the invoking user must be a course coordinator or otherwise |
associated with a course. |
associated with a course. |
|
|
This call is essentially a wrapper for lonnet::modifyuser and |
This call is essentially a wrapper for lonnet::modifyuser and |
Line 12699 Inputs:
|
Line 12767 Inputs:
|
|
|
modify_student_enrollment |
modify_student_enrollment |
|
|
Change a students enrollment status in a class. The environment variable |
Change a student's enrollment status in a class. The environment variable |
'role.request.course' must be defined for this function to proceed. |
'role.request.course' must be defined for this function to proceed. |
|
|
Inputs: |
Inputs: |
|
|
=over 4 |
=over 4 |
|
|
=item $udom, students domain |
=item $udom, student's domain |
|
|
=item $uname, students name |
=item $uname, student's name |
|
|
=item $uid, students user id |
=item $uid, student's user id |
|
|
=item $first, students first name |
=item $first, student's first name |
|
|
=item $middle |
=item $middle |
|
|
Line 12794 If defined, the supplied username is use
|
Line 12862 If defined, the supplied username is use
|
resdata($name,$domain,$type,@which) : request for current parameter |
resdata($name,$domain,$type,@which) : request for current parameter |
setting for a specific $type, where $type is either 'course' or 'user', |
setting for a specific $type, where $type is either 'course' or 'user', |
@what should be a list of parameters to ask about. This routine caches |
@what should be a list of parameters to ask about. This routine caches |
answers for 5 minutes. |
answers for 10 minutes. |
|
|
=item * |
=item * |
|
|
Line 12803 data base, returning a hash that is keye
|
Line 12871 data base, returning a hash that is keye
|
values that are the resource value. I believe that the timestamps and |
values that are the resource value. I believe that the timestamps and |
versions are also returned. |
versions are also returned. |
|
|
|
get_numsuppfiles($cnum,$cdom) : retrieve number of files in a course's |
|
supplemental content area. This routine caches the number of files for |
|
10 minutes. |
|
|
=back |
=back |
|
|
=head2 Course Modification |
=head2 Course Modification |