version 1.114, 2008/03/08 02:45:14
|
version 1.120, 2008/11/20 14:37:52
|
Line 27
|
Line 27
|
# |
# |
### |
### |
|
|
|
|
package Apache::lonacc; |
package Apache::lonacc; |
|
|
use strict; |
use strict; |
Line 90 sub get_posted_cgi {
|
Line 91 sub get_posted_cgi {
|
if ($lines[$i]=~/^--\Q$contentsep\E/) { |
if ($lines[$i]=~/^--\Q$contentsep\E/) { |
if ($name) { |
if ($name) { |
chomp($value); |
chomp($value); |
if ($fname) { |
|
$env{"form.$name.filename"}=$fname; |
|
$env{"form.$name.mimetype"}=$fmime; |
|
} else { |
|
$value=~s/\s+$//s; |
|
} |
|
if (ref($fields) eq 'ARRAY') { |
if (ref($fields) eq 'ARRAY') { |
next if (!grep(/^\Q$name\E$/,@{$fields})); |
next if (!grep(/^\Q$name\E$/,@{$fields})); |
} |
} |
&Apache::loncommon::add_to_env("form.$name",$value); |
if ($fname) { |
|
if ($env{'form.symb'} ne '') { |
|
my $size = (length($value))/(1024.0 * 1024.0); |
|
if (&upload_size_allowed($name,$size,$fname) eq 'ok') { |
|
$env{"form.$name.filename"}=$fname; |
|
$env{"form.$name.mimetype"}=$fmime; |
|
&Apache::loncommon::add_to_env("form.$name",$value); |
|
} |
|
} else { |
|
$env{"form.$name.filename"}=$fname; |
|
$env{"form.$name.mimetype"}=$fmime; |
|
&Apache::loncommon::add_to_env("form.$name",$value); |
|
} |
|
} else { |
|
$value=~s/\s+$//s; |
|
&Apache::loncommon::add_to_env("form.$name",$value); |
|
} |
} |
} |
if ($i<$#lines) { |
if ($i<$#lines) { |
$i++; |
$i++; |
Line 145 sub get_posted_cgi {
|
Line 156 sub get_posted_cgi {
|
$r->headers_in->unset('Content-length'); |
$r->headers_in->unset('Content-length'); |
} |
} |
|
|
|
# |
|
# Perform size checks for file uploads to essayresponse items in course context. |
|
# |
|
# Add form.HWFILESIZE.$part_$id to %env with file size (MB) |
|
# If file exceeds maximum allowed size, add form.HWFILETOOBIG.$part_$id to %env. |
|
# |
|
|
|
sub upload_size_allowed { |
|
my ($name,$size,$fname) = @_; |
|
if ($name =~ /^HWFILE(\w+)$/) { |
|
my $ident = $1; |
|
my $item = 'HWFILESIZE'.$ident; |
|
&Apache::loncommon::add_to_env("form.$item",$size); |
|
my $maxsize= &Apache::lonnet::EXT("resource.$ident.maxfilesize"); |
|
if (!$maxsize) { |
|
$maxsize = 100.0; |
|
} |
|
if ($size > $maxsize) { |
|
my $warn = 'HWFILETOOBIG'.$ident; |
|
&Apache::loncommon::add_to_env("form.$warn",$fname); |
|
return; |
|
} |
|
} |
|
return 'ok'; |
|
} |
|
|
# handle the case of the single sign on user, at this point $r->user |
# handle the case of the single sign on user, at this point $r->user |
# will be set and valid now need to find the loncapa user info and possibly |
# will be set and valid now need to find the loncapa user info and possibly |
# balance them |
# balance them |
# returns OK if it was a SSO and user was handled |
# returns OK if it was a SSO and user was handled |
# undef if not SSO or no means to hanle the user |
# undef if not SSO or no means to hanle the user |
|
|
sub sso_login { |
sub sso_login { |
my ($r,$handle) = @_; |
my ($r,$handle) = @_; |
|
|
Line 187 sub sso_login {
|
Line 225 sub sso_login {
|
'server' => $r->dir_config('lonHostID'), |
'server' => $r->dir_config('lonHostID'), |
'sso.login' => 1 |
'sso.login' => 1 |
); |
); |
|
if ($r->dir_config("ssodirecturl") == 1) { |
|
$info{'origurl'} = $r->uri; |
|
} |
if (defined($r->dir_config("lonSSOReloginServer"))) { |
if (defined($r->dir_config("lonSSOReloginServer"))) { |
$info{'sso.reloginserver'} = |
$info{'sso.reloginserver'} = |
$r->dir_config('lonSSOReloginServer'); |
$r->dir_config('lonSSOReloginServer'); |
Line 203 sub sso_login {
|
Line 244 sub sso_login {
|
&Apache::lonnet::logthis(" SSO authorized unknown user $user "); |
&Apache::lonnet::logthis(" SSO authorized unknown user $user "); |
$r->subprocess_env->set('SSOUserUnknown' => $user); |
$r->subprocess_env->set('SSOUserUnknown' => $user); |
$r->subprocess_env->set('SSOUserDomain' => $domain); |
$r->subprocess_env->set('SSOUserDomain' => $domain); |
$r->internal_redirect($r->dir_config('lonSSOUserUnknownRedirect')); |
my @cancreate; |
|
my %domconfig = |
|
&Apache::lonnet::get_dom('configuration',['usercreation'],$domain); |
|
if (ref($domconfig{'usercreation'}) eq 'HASH') { |
|
if (ref($domconfig{'usercreation'}{'cancreate'}) eq 'HASH') { |
|
if (ref($domconfig{'usercreation'}{'cancreate'}{'selfcreate'}) eq 'ARRAY') { |
|
@cancreate = @{$domconfig{'usercreation'}{'cancreate'}{'selfcreate'}}; |
|
} elsif (($domconfig{'usercreation'}{'cancreate'}{'selfcreate'} ne 'none') && |
|
($domconfig{'usercreation'}{'cancreate'}{'selfcreate'} ne '')) { |
|
@cancreate = ($domconfig{'usercreation'}{'cancreate'}{'selfcreate'}); |
|
} |
|
} |
|
} |
|
if (grep(/^sso$/,@cancreate)) { |
|
$r->internal_redirect('/adm/createaccount'); |
|
} else { |
|
$r->internal_redirect($r->dir_config('lonSSOUserUnknownRedirect')); |
|
} |
$r->set_handlers('PerlHandler'=> undef); |
$r->set_handlers('PerlHandler'=> undef); |
return OK; |
return OK; |
} |
} |
Line 222 sub handler {
|
Line 280 sub handler {
|
|
|
my $result = &sso_login($r,$handle); |
my $result = &sso_login($r,$handle); |
if (defined($result)) { |
if (defined($result)) { |
return $result |
return $result; |
} |
} |
|
|
|
|
Line 403 sub handler {
|
Line 461 sub handler {
|
1; |
1; |
__END__ |
__END__ |
|
|
|
|
=head1 NAME |
=head1 NAME |
|
|
Apache::lonacc - Cookie Based Access Handler |
Apache::lonacc - Cookie Based Access Handler |
Line 463 store attempted access
|
Line 522 store attempted access
|
|
|
=back |
=back |
|
|
=cut |
=cut |
|
|