Diff for /loncom/auth/migrateuser.pm between versions 1.5 and 1.13

version 1.5, 2006/04/05 22:39:55 version 1.13, 2008/03/24 04:56:07
Line 29 Line 29
 package Apache::migrateuser;  package Apache::migrateuser;
   
 use strict;  use strict;
   use LONCAPA;
 use Apache::Constants qw(:common :http :methods);  use Apache::Constants qw(:common :http :methods);
 use Apache::lonauth;  use Apache::lonauth;
 use Apache::lonnet;  use Apache::lonnet;
   use Apache::lonlocal;
   
 sub goto_login {  sub goto_login {
     my ($r) = @_;      my ($r) = @_;
Line 47  sub goto_login { Line 49  sub goto_login {
 }  }
   
   
   sub sso_check {
       my ($data) = @_;
       my %extra_env;
       if ($data->{'sso.login'}) {
    $extra_env{'request.sso.login'} = $data->{'sso.login'};
       }
       if ($data->{'sso.reloginserver'}) {
           $extra_env{'request.sso.reloginserver'} = 
               $data->{'sso.reloginserver'};
       }
       return \%extra_env;
   }
   
 sub handler {  sub handler {
     my ($r) = @_;      my ($r) = @_;
           
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['token']);      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['token']);
     my %data =   &Apache::lonnet::tmpget($env{'form.token'});      my %data =   &Apache::lonnet::tmpget($env{'form.token'});
       if (keys(%data) == 0) {
           return &goto_login($r);
       }
     my $delete = &Apache::lonnet::tmpdel($env{'form.token'});      my $delete = &Apache::lonnet::tmpdel($env{'form.token'});
   
       &Apache::lonlocal::get_language_handle($r);
   
     if ($delete ne 'ok') {      if ($delete ne 'ok') {
  return &goto_login($r);   return &goto_login($r);
     }      }
Line 67  sub handler { Line 87  sub handler {
     my $home=&Apache::lonnet::homeserver($data{'username'},$data{'domain'});      my $home=&Apache::lonnet::homeserver($data{'username'},$data{'domain'});
     if ($home =~ /(con_lost|no_such_host)/) { return &goto_login($r); }      if ($home =~ /(con_lost|no_such_host)/) { return &goto_login($r); }
   
       my $extra_env = &sso_check(\%data);
   
     if (!$data{'role'}) {      if (!$data{'role'}) {
  &Apache::lonauth::success($r,$data{'username'},$data{'domain'},   my $handle = &Apache::lonnet::check_for_valid_session($r);
   $home,'/adm/roles');   if ($handle) {
       &Apache::lonnet::transfer_profile_to_env($r->dir_config('lonIDsDir'),
        $handle);
       if ($env{'request.course.id'}) {
    $r->internal_redirect('/adm/navmaps');
       } else {
    $r->internal_redirect('/adm/roles');
       }
    } else {
       &Apache::lonauth::success($r,$data{'username'},$data{'domain'},
         $home,'/adm/roles',$extra_env);
   
    }
  return OK;   return OK;
   
     }      }
   
       my $next_url='/adm/roles?selectrole=1&'.&escape($data{'role'}).'=1';
   
           
     my $cookie=&Apache::lonauth::success($r,$data{'username'},$data{'domain'},      &Apache::lonauth::success($r,$data{'username'},$data{'domain'},$home,
  $home,'noredirect');        $next_url,$extra_env);
     $r->header_out('Set-cookie',"lonID=$cookie; path=/");      return OK;
     &Apache::lonnet::transfer_profile_to_env($r->dir_config('lonIDsDir'),  
      $cookie);  
     $env{'form.selectrole'}='1';  
     $env{'form.'.$data{'role'}}='1';  
     return &Apache::lonroles::handler($r);  
 }  }
   
 1;  1;

Removed from v.1.5  
changed lines
  Added in v.1.13


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