Diff for /loncom/lond between versions 1.395 and 1.396

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 {
 }  }
 &register_handler("instidrules",\&get_institutional_id_rules,0,1,0);  &register_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);
       }
   }
   &register_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 {
 }  }
 &register_handler("instidrulecheck",\&institutional_id_check,0,1,0);  &register_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);
       }
   }
   &register_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') {

Removed from v.1.395  
changed lines
  Added in v.1.396


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>