version 1.614, 2005/03/21 18:53:51
|
version 1.619, 2005/04/05 20:43:27
|
Line 40 qw(%perlvar %hostname %badServerCache %i
|
Line 40 qw(%perlvar %hostname %badServerCache %i
|
%courselogs %accesshash %userrolehash $processmarker $dumpcount |
%courselogs %accesshash %userrolehash $processmarker $dumpcount |
%coursedombuf %coursenumbuf %coursehombuf %coursedescrbuf %courseinstcodebuf %courseownerbuf |
%coursedombuf %coursenumbuf %coursehombuf %coursedescrbuf %courseinstcodebuf %courseownerbuf |
%domaindescription %domain_auth_def %domain_auth_arg_def |
%domaindescription %domain_auth_def %domain_auth_arg_def |
%domain_lang_def %domain_city %domain_longi %domain_lati $tmpdir $_64bit); |
%domain_lang_def %domain_city %domain_longi %domain_lati $tmpdir $_64bit |
|
%env); |
|
|
use IO::Socket; |
use IO::Socket; |
use GDBM_File; |
use GDBM_File; |
Line 54 use Cache::Memcached;
|
Line 55 use Cache::Memcached;
|
my $readit; |
my $readit; |
my $max_connection_retries = 10; # Or some such value. |
my $max_connection_retries = 10; # Or some such value. |
|
|
|
require Exporter; |
|
|
|
our @ISA = qw (Exporter); |
|
our @EXPORT = qw(%env); |
|
|
=pod |
=pod |
|
|
=head1 Package Variables |
=head1 Package Variables |
Line 279 sub transfer_profile_to_env {
|
Line 285 sub transfer_profile_to_env {
|
chomp($profile[$envi]); |
chomp($profile[$envi]); |
my ($envname,$envvalue)=split(/=/,$profile[$envi]); |
my ($envname,$envvalue)=split(/=/,$profile[$envi]); |
$ENV{$envname} = $envvalue; |
$ENV{$envname} = $envvalue; |
|
$env{$envname} = $envvalue; |
if (my ($key,$time) = ($envname =~ /^(cgi\.(\d+)_\d+\.)/)) { |
if (my ($key,$time) = ($envname =~ /^(cgi\.(\d+)_\d+\.)/)) { |
if ($time < time-300) { |
if ($time < time-300) { |
$Remove{$key}++; |
$Remove{$key}++; |
Line 286 sub transfer_profile_to_env {
|
Line 293 sub transfer_profile_to_env {
|
} |
} |
} |
} |
$ENV{'user.environment'} = "$lonidsdir/$handle.id"; |
$ENV{'user.environment'} = "$lonidsdir/$handle.id"; |
|
$env{'user.environment'} = "$lonidsdir/$handle.id"; |
foreach my $expired_key (keys(%Remove)) { |
foreach my $expired_key (keys(%Remove)) { |
&delenv($expired_key); |
&delenv($expired_key); |
} |
} |
Line 303 sub appenv {
|
Line 311 sub appenv {
|
delete($newenv{$_}); |
delete($newenv{$_}); |
} else { |
} else { |
$ENV{$_}=$newenv{$_}; |
$ENV{$_}=$newenv{$_}; |
|
$env{$_}=$newenv{$_}; |
} |
} |
} |
} |
|
|
Line 390 sub delenv {
|
Line 399 sub delenv {
|
if ($_=~/^$delthis/) { |
if ($_=~/^$delthis/) { |
my ($key,undef) = split('=',$_); |
my ($key,undef) = split('=',$_); |
delete($ENV{$key}); |
delete($ENV{$key}); |
|
delete($env{$key}); |
} else { |
} else { |
print $fh $_; |
print $fh $_; |
} |
} |
Line 931 sub userenvironment {
|
Line 941 sub userenvironment {
|
return %returnhash; |
return %returnhash; |
} |
} |
|
|
|
# ---------------------------------------------------------- Get a studentphoto |
|
sub studentphoto { |
|
my ($udom,$unam,$ext) = @_; |
|
my $home=&Apache::lonnet::homeserver($unam,$udom); |
|
my $ret=&Apache::lonnet::reply("studentphoto:$udom:$unam:$ext",$home); |
|
my $url="/uploaded/$udom/$unam/internal/studentphoto.".$ext; |
|
if ($ret ne 'ok') { |
|
return '/adm/lonKaputt/lonlogo_broken.gif'; |
|
} |
|
my $tokenurl=&Apache::lonnet::tokenwrapper($url); |
|
return $tokenurl; |
|
} |
|
|
# -------------------------------------------------------------------- New chat |
# -------------------------------------------------------------------- New chat |
|
|
sub chatsend { |
sub chatsend { |
Line 3717 sub is_locked {
|
Line 3740 sub is_locked {
|
push @check, $file_name; |
push @check, $file_name; |
my %locked = &get('file_permissions',\@check, |
my %locked = &get('file_permissions',\@check, |
$ENV{'user.domain'},$ENV{'user.name'}); |
$ENV{'user.domain'},$ENV{'user.name'}); |
# my ($tmp)=keys(%locked); |
my ($tmp)=keys(%locked); |
# if ($tmp=~/^error:/) { undef(%locked); } |
if ($tmp=~/^error:/) { undef(%locked); } |
|
|
if (ref($locked{$file_name}) eq 'ARRAY') { |
if (ref($locked{$file_name}) eq 'ARRAY') { |
$is_locked = 'true'; |
$is_locked = 'true'; |
Line 3732 sub is_locked {
|
Line 3755 sub is_locked {
|
sub mark_as_readonly { |
sub mark_as_readonly { |
my ($domain,$user,$files,$what) = @_; |
my ($domain,$user,$files,$what) = @_; |
my %current_permissions = &dump('file_permissions',$domain,$user); |
my %current_permissions = &dump('file_permissions',$domain,$user); |
# my ($tmp)=keys(%current_permissions); |
my ($tmp)=keys(%current_permissions); |
# if ($tmp=~/^error:/) { undef(%current_permissions); } |
if ($tmp=~/^error:/) { undef(%current_permissions); } |
|
|
foreach my $file (@{$files}) { |
foreach my $file (@{$files}) { |
push(@{$current_permissions{$file}},$what); |
push(@{$current_permissions{$file}},$what); |
Line 3816 sub files_not_in_path {
|
Line 3839 sub files_not_in_path {
|
sub get_marked_as_readonly { |
sub get_marked_as_readonly { |
my ($domain,$user,$what) = @_; |
my ($domain,$user,$what) = @_; |
my %current_permissions = &dump('file_permissions',$domain,$user); |
my %current_permissions = &dump('file_permissions',$domain,$user); |
# my ($tmp)=keys(%current_permissions); |
my ($tmp)=keys(%current_permissions); |
# if ($tmp=~/^error:/) { undef(%current_permissions); } |
if ($tmp=~/^error:/) { undef(%current_permissions); } |
|
|
my @readonly_files; |
my @readonly_files; |
while (my ($file_name,$value) = each(%current_permissions)) { |
while (my ($file_name,$value) = each(%current_permissions)) { |
Line 3838 sub get_marked_as_readonly {
|
Line 3861 sub get_marked_as_readonly {
|
sub get_marked_as_readonly_hash { |
sub get_marked_as_readonly_hash { |
my ($domain,$user,$what) = @_; |
my ($domain,$user,$what) = @_; |
my %current_permissions = &dump('file_permissions',$domain,$user); |
my %current_permissions = &dump('file_permissions',$domain,$user); |
# my ($tmp)=keys(%current_permissions); |
my ($tmp)=keys(%current_permissions); |
# if ($tmp=~/^error:/) { undef(%current_permissions); } |
if ($tmp=~/^error:/) { undef(%current_permissions); } |
|
|
my %readonly_files; |
my %readonly_files; |
while (my ($file_name,$value) = each(%current_permissions)) { |
while (my ($file_name,$value) = each(%current_permissions)) { |
Line 3862 sub unmark_as_readonly {
|
Line 3885 sub unmark_as_readonly {
|
# for portfolio submissions, $what contains $crsid and $symb |
# for portfolio submissions, $what contains $crsid and $symb |
my ($domain,$user,$what) = @_; |
my ($domain,$user,$what) = @_; |
my %current_permissions = &dump('file_permissions',$domain,$user); |
my %current_permissions = &dump('file_permissions',$domain,$user); |
# my ($tmp)=keys(%current_permissions); |
my ($tmp)=keys(%current_permissions); |
# if ($tmp=~/^error:/) { undef(%current_permissions); } |
if ($tmp=~/^error:/) { undef(%current_permissions); } |
|
|
my @readonly_files = &get_marked_as_readonly($domain,$user,$what); |
my @readonly_files = &get_marked_as_readonly($domain,$user,$what); |
foreach my $file(@readonly_files){ |
foreach my $file(@readonly_files){ |
Line 4160 sub EXT {
|
Line 4183 sub EXT {
|
if ($realm eq 'user') { |
if ($realm eq 'user') { |
# --------------------------------------------------------------- user.resource |
# --------------------------------------------------------------- user.resource |
if ($space eq 'resource') { |
if ($space eq 'resource') { |
if (defined($Apache::lonhomework::parsing_a_problem)) { |
if (defined($Apache::lonhomework::parsing_a_problem) || |
|
defined($Apache::lonhomework::parsing_a_task)) { |
return $Apache::lonhomework::history{$qualifierrest}; |
return $Apache::lonhomework::history{$qualifierrest}; |
} else { |
} else { |
my %restored; |
my %restored; |
Line 4713 sub get_slot {
|
Line 4737 sub get_slot {
|
&Apache::lonhomework::showhash(%slotinfo); |
&Apache::lonhomework::showhash(%slotinfo); |
my ($tmp)=keys(%slotinfo); |
my ($tmp)=keys(%slotinfo); |
if ($tmp=~/^error:/) { return (); } |
if ($tmp=~/^error:/) { return (); } |
return %{$slotinfo{$which}}; |
if (ref($slotinfo{$which}) eq 'HASH') { |
|
return %{$slotinfo{$which}}; |
|
} |
|
return $slotinfo{$which}; |
} |
} |
# ------------------------------------------------- Update symbolic store links |
# ------------------------------------------------- Update symbolic store links |
|
|
Line 5007 sub validCODE {
|
Line 5034 sub validCODE {
|
|
|
sub getCODE { |
sub getCODE { |
if (&validCODE($ENV{'form.CODE'})) { return $ENV{'form.CODE'}; } |
if (&validCODE($ENV{'form.CODE'})) { return $ENV{'form.CODE'}; } |
if (defined($Apache::lonhomework::parsing_a_problem) && |
if ( (defined($Apache::lonhomework::parsing_a_problem) || |
&validCODE($Apache::lonhomework::history{'resource.CODE'})) { |
defined($Apache::lonhomework::parsing_a_task) ) && |
|
&validCODE($Apache::lonhomework::history{'resource.CODE'})) { |
return $Apache::lonhomework::history{'resource.CODE'}; |
return $Apache::lonhomework::history{'resource.CODE'}; |
} |
} |
return undef; |
return undef; |
Line 5635 BEGIN {
|
Line 5663 BEGIN {
|
} |
} |
} |
} |
close($config); |
close($config); |
|
# FIXME: dev server don't want this, production servers _do_ want this |
|
#&get_iphost(); |
} |
} |
|
|
sub get_iphost { |
sub get_iphost { |