version 1.496, 2004/05/08 16:26:32
|
version 1.501, 2004/05/12 19:48:51
|
Line 642 sub assign_access_key {
|
Line 642 sub assign_access_key {
|
# a valid key looks like uname:udom#comments |
# a valid key looks like uname:udom#comments |
# comments are being appended |
# comments are being appended |
# |
# |
my ($ckey,$cdom,$cnum,$udom,$uname,$logentry)=@_; |
my ($ckey,$kdom,$knum,$cdom,$cnum,$udom,$uname,$logentry)=@_; |
|
$kdom= |
|
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'} unless (defined($kdom)); |
|
$knum= |
|
$ENV{'course.'.$ENV{'request.course.id'}.'.num'} unless (defined($knum)); |
$cdom= |
$cdom= |
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'} unless (defined($cdom)); |
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'} unless (defined($cdom)); |
$cnum= |
$cnum= |
$ENV{'course.'.$ENV{'request.course.id'}.'.num'} unless (defined($cnum)); |
$ENV{'course.'.$ENV{'request.course.id'}.'.num'} unless (defined($cnum)); |
$udom=$ENV{'user.name'} unless (defined($udom)); |
$udom=$ENV{'user.name'} unless (defined($udom)); |
$uname=$ENV{'user.domain'} unless (defined($uname)); |
$uname=$ENV{'user.domain'} unless (defined($uname)); |
my %existing=&get('accesskeys',[$ckey],$cdom,$cnum); |
my %existing=&get('accesskeys',[$ckey],$kdom,$knum); |
if (($existing{$ckey}=~/^\#(.*)$/) || # - new key |
if (($existing{$ckey}=~/^\#(.*)$/) || # - new key |
($existing{$ckey}=~/^\Q$uname\E\:\Q$udom\E\#(.*)$/)) { |
($existing{$ckey}=~/^\Q$uname\E\:\Q$udom\E\#(.*)$/)) { |
# assigned to this person |
# assigned to this person |
Line 659 sub assign_access_key {
|
Line 663 sub assign_access_key {
|
# ready to assign |
# ready to assign |
$logentry=$1.'; '.$logentry; |
$logentry=$1.'; '.$logentry; |
if (&put('accesskeys',{$ckey=>$uname.':'.$udom.'#'.$logentry}, |
if (&put('accesskeys',{$ckey=>$uname.':'.$udom.'#'.$logentry}, |
$cdom,$cnum) eq 'ok') { |
$kdom,$knum) eq 'ok') { |
# key now belongs to user |
# key now belongs to user |
my $envkey='key.'.$cdom.'_'.$cnum; |
my $envkey='key.'.$cdom.'_'.$cnum; |
if (&put('environment',{$envkey => $ckey}) eq 'ok') { |
if (&put('environment',{$envkey => $ckey}) eq 'ok') { |
Line 755 sub validate_access_key {
|
Line 759 sub validate_access_key {
|
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'} unless (defined($cdom)); |
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'} unless (defined($cdom)); |
$cnum= |
$cnum= |
$ENV{'course.'.$ENV{'request.course.id'}.'.num'} unless (defined($cnum)); |
$ENV{'course.'.$ENV{'request.course.id'}.'.num'} unless (defined($cnum)); |
$udom=$ENV{'user.name'} unless (defined($udom)); |
$udom=$ENV{'user.domain'} unless (defined($udom)); |
$uname=$ENV{'user.domain'} unless (defined($uname)); |
$uname=$ENV{'user.name'} unless (defined($uname)); |
my %existing=&get('accesskeys',[$ckey],$cdom,$cnum); |
my %existing=&get('accesskeys',[$ckey],$cdom,$cnum); |
return ($existing{$ckey}=~/^\Q$uname\E\:\Q$udom\E\#/); |
return ($existing{$ckey}=~/^\Q$uname\E\:\Q$udom\E\#/); |
} |
} |
Line 1178 sub allowuploaded {
|
Line 1182 sub allowuploaded {
|
&Apache::lonnet::appenv(%httpref); |
&Apache::lonnet::appenv(%httpref); |
} |
} |
|
|
sub tokenwrapper { |
|
&FIXME_blow_up; |
|
} |
|
|
|
# --------- File operations in /home/httpd/html/userfiles/$domain/1/2/3/$course |
# --------- File operations in /home/httpd/html/userfiles/$domain/1/2/3/$course |
# input: action, courseID, current domain, home server for course, intended |
# input: action, courseID, current domain, home server for course, intended |
# path to file, source of file. |
# path to file, source of file. |
Line 1325 sub finishuserfileupload {
|
Line 1325 sub finishuserfileupload {
|
} |
} |
# Save the file |
# Save the file |
{ |
{ |
&Apache::lonnet::logthis("Saving to $filepath $file"); |
#&Apache::lonnet::logthis("Saving to $filepath $file"); |
open(my $fh,'>'.$filepath.'/'.$file); |
open(my $fh,'>'.$filepath.'/'.$file); |
print $fh $ENV{'form.'.$formname}; |
print $fh $ENV{'form.'.$formname}; |
close($fh); |
close($fh); |
Line 4462 sub numval2 {
|
Line 4462 sub numval2 {
|
} |
} |
|
|
sub latest_rnd_algorithm_id { |
sub latest_rnd_algorithm_id { |
return '64bit2'; |
return '64bit3'; |
} |
} |
|
|
sub getCODE { |
sub getCODE { |
Line 4487 sub rndseed {
|
Line 4487 sub rndseed {
|
my $which=$ENV{"course.$courseid.rndseed"}; |
my $which=$ENV{"course.$courseid.rndseed"}; |
if (defined(&getCODE())) { |
if (defined(&getCODE())) { |
return &rndseed_CODE_64bit($symb,$courseid,$domain,$username); |
return &rndseed_CODE_64bit($symb,$courseid,$domain,$username); |
|
} elsif ($which eq '64bit3') { |
|
return &rndseed_64bit3($symb,$courseid,$domain,$username); |
} elsif ($which eq '64bit2') { |
} elsif ($which eq '64bit2') { |
return &rndseed_64bit2($symb,$courseid,$domain,$username); |
return &rndseed_64bit2($symb,$courseid,$domain,$username); |
} elsif ($which eq '64bit') { |
} elsif ($which eq '64bit') { |
Line 4546 sub rndseed_64bit2 {
|
Line 4548 sub rndseed_64bit2 {
|
my $domainseed=unpack("%32S*",$domain.' ') << 10; |
my $domainseed=unpack("%32S*",$domain.' ') << 10; |
my $courseseed=unpack("%32S*",$courseid.' '); |
my $courseseed=unpack("%32S*",$courseid.' '); |
|
|
|
my $num1=$symbchck+$symbseed+$namechck; |
|
my $num2=$nameseed+$domainseed+$courseseed; |
|
#&Apache::lonxml::debug("$symbseed:$nameseed;$domainseed|$courseseed;$namechck:$symbchck"); |
|
#&Apache::lonxml::debug("rndseed :$num:$symb"); |
|
return "$num1,$num2"; |
|
} |
|
} |
|
|
|
sub rndseed_64bit3 { |
|
my ($symb,$courseid,$domain,$username)=@_; |
|
{ |
|
use integer; |
|
# strings need to be an even # of cahracters long, it it is odd the |
|
# last characters gets thrown away |
|
my $symbchck=unpack("%32S*",$symb.' ') << 21; |
|
my $symbseed=numval2($symb) << 10; |
|
my $namechck=unpack("%32S*",$username.' '); |
|
|
|
my $nameseed=numval2($username) << 21; |
|
my $domainseed=unpack("%32S*",$domain.' ') << 10; |
|
my $courseseed=unpack("%32S*",$courseid.' '); |
|
|
my $num1=$symbchck+$symbseed+$namechck; |
my $num1=$symbchck+$symbseed+$namechck; |
my $num2=$nameseed+$domainseed+$courseseed; |
my $num2=$nameseed+$domainseed+$courseseed; |
#&Apache::lonxml::debug("$symbseed:$nameseed;$domainseed|$courseseed;$namechck:$symbchck"); |
#&Apache::lonxml::debug("$symbseed:$nameseed;$domainseed|$courseseed;$namechck:$symbchck"); |