version 1.395, 2008/02/21 16:04:19
|
version 1.396, 2008/02/24 22:59:06
|
Line 1514 sub authenticate_handler {
|
Line 1514 sub authenticate_handler {
|
# udom - User's domain. |
# udom - User's domain. |
# uname - Username. |
# uname - Username. |
# upass - User's password. |
# upass - User's password. |
# defauthtype - Default authentication types for the domain |
# checkdefauth - Pass to validate_user() to try authentication |
# defautharg - Default authentication arg for the domain |
# with default auth type(s) if no user account. |
|
|
my ($udom,$uname,$upass,$defauthtype,$defautharg)=split(/:/,$tail); |
my ($udom, $uname, $upass, $checkdefauth)=split(/:/,$tail); |
&Debug(" Authenticate domain = $udom, user = $uname, password = $upass"); |
&Debug(" Authenticate domain = $udom, user = $uname, password = $upass"); |
chomp($upass); |
chomp($upass); |
$upass=&unescape($upass); |
$upass=&unescape($upass); |
|
|
my $pwdcorrect = &validate_user($udom,$uname,$upass,$defauthtype, |
my $pwdcorrect = &validate_user($udom,$uname,$upass,$checkdefauth); |
$defautharg); |
|
if($pwdcorrect) { |
if($pwdcorrect) { |
&Reply( $client, "authorized\n", $userinput); |
&Reply( $client, "authorized\n", $userinput); |
# |
# |
Line 4704 sub get_institutional_id_rules {
|
Line 4703 sub get_institutional_id_rules {
|
} |
} |
®ister_handler("instidrules",\&get_institutional_id_rules,0,1,0); |
®ister_handler("instidrules",\&get_institutional_id_rules,0,1,0); |
|
|
|
sub get_institutional_selfenroll_rules { |
|
my ($cmd, $tail, $client) = @_; |
|
my $userinput = "$cmd:$tail"; |
|
my $dom = &unescape($tail); |
|
my (%rules_hash,@rules_order); |
|
my $outcome; |
|
eval { |
|
local($SIG{__DIE__})='DEFAULT'; |
|
$outcome = &localenroll::selfenroll_rules($dom,\%rules_hash,\@rules_order); |
|
}; |
|
if (!$@) { |
|
if ($outcome eq 'ok') { |
|
my $result; |
|
foreach my $key (keys(%rules_hash)) { |
|
$result .= &escape($key).'='.&Apache::lonnet::freeze_escape($rules_hash{$key}).'&'; |
|
} |
|
$result =~ s/\&$//; |
|
$result .= ':'; |
|
if (@rules_order > 0) { |
|
foreach my $item (@rules_order) { |
|
$result .= &escape($item).'&'; |
|
} |
|
} |
|
$result =~ s/\&$//; |
|
&Reply($client,\$result,$userinput); |
|
} else { |
|
&Reply($client,"error\n", $userinput); |
|
} |
|
} else { |
|
&Failure($client,"unknown_cmd\n",$userinput); |
|
} |
|
} |
|
®ister_handler("instemailrules",\&get_institutional_selfenroll_rules,0,1,0); |
|
|
|
|
sub institutional_username_check { |
sub institutional_username_check { |
my ($cmd, $tail, $client) = @_; |
my ($cmd, $tail, $client) = @_; |
Line 4763 sub institutional_id_check {
|
Line 4796 sub institutional_id_check {
|
} |
} |
®ister_handler("instidrulecheck",\&institutional_id_check,0,1,0); |
®ister_handler("instidrulecheck",\&institutional_id_check,0,1,0); |
|
|
|
sub institutional_selfenroll_check { |
|
my ($cmd, $tail, $client) = @_; |
|
my $userinput = "$cmd:$tail"; |
|
my %rulecheck; |
|
my $outcome; |
|
my ($udom,$email,@rules) = split(/:/,$tail); |
|
$udom = &unescape($udom); |
|
$email = &unescape($email); |
|
@rules = map {&unescape($_);} (@rules); |
|
eval { |
|
local($SIG{__DIE__})='DEFAULT'; |
|
$outcome = &localenroll::selfenroll_check($udom,$email,\@rules,\%rulecheck); |
|
}; |
|
if (!$@) { |
|
if ($outcome eq 'ok') { |
|
my $result=''; |
|
foreach my $key (keys(%rulecheck)) { |
|
$result.=&escape($key).'='.&Apache::lonnet::freeze_escape($rulecheck{$key}).'&'; |
|
} |
|
&Reply($client,\$result,$userinput); |
|
} else { |
|
&Reply($client,"error\n", $userinput); |
|
} |
|
} else { |
|
&Failure($client,"unknown_cmd\n",$userinput); |
|
} |
|
} |
|
®ister_handler("instselfenrollcheck",\&institutional_selfenroll_check,0,1,0); |
|
|
# Get domain specific conditions for import of student photographs to a course |
# Get domain specific conditions for import of student photographs to a course |
# |
# |
# Retrieves information from photo_permission subroutine in localenroll. |
# Retrieves information from photo_permission subroutine in localenroll. |
Line 5973 sub get_auth_type
|
Line 6035 sub get_auth_type
|
# 0 - The domain,user,password triplet is not a valid user. |
# 0 - The domain,user,password triplet is not a valid user. |
# |
# |
sub validate_user { |
sub validate_user { |
my ($domain, $user, $password, $defauthtype, $defautharg) = @_; |
my ($domain, $user, $password, $checkdefauth) = @_; |
|
|
# Why negative ~pi you may well ask? Well this function is about |
# Why negative ~pi you may well ask? Well this function is about |
# authentication, and therefore very important to get right. |
# authentication, and therefore very important to get right. |
Line 5997 sub validate_user {
|
Line 6059 sub validate_user {
|
my $null = pack("C",0); # Used by kerberos auth types. |
my $null = pack("C",0); # Used by kerberos auth types. |
|
|
if ($howpwd eq 'nouser') { |
if ($howpwd eq 'nouser') { |
if ($defauthtype eq 'localauth') { |
if ($checkdefauth) { |
$howpwd = $defauthtype; |
my %domdefaults = &Apache::lonnet::get_domain_defaults($domain); |
$contentpwd = $defautharg; |
if ($domdefaults{'auth_def'} eq 'localauth') { |
} elsif ((($defauthtype eq 'krb4') || ($defauthtype eq 'krb5')) && |
$howpwd = $domdefaults{'auth_def'}; |
($defautharg ne '')) { |
$contentpwd = $domdefaults{'auth_arg_def'}; |
$howpwd = $defauthtype; |
} elsif ((($domdefaults{'auth_def'} eq 'krb4') || |
$contentpwd = $defautharg; |
($domdefaults{'auth_def'} eq 'krb5')) && |
|
($domdefaults{'auth_arg_def'} ne '')) { |
|
$howpwd = $domdefaults{'auth_def'}; |
|
$contentpwd = $domdefaults{'auth_arg_def'}; |
|
} |
} |
} |
} |
} |
if ($howpwd ne 'nouser') { |
if ($howpwd ne 'nouser') { |