![]() ![]() | ![]() |
- del the tmp file after migrating the user
1: # The LearningOnline Network 2: # Starts a user off based of an existing token. 3: # 4: # $Id: migrateuser.pm,v 1.4 2005/12/28 19:26:02 albertel Exp $ 5: # 6: # Copyright Michigan State University Board of Trustees 7: # 8: # This file is part of the LearningOnline Network with CAPA (LON-CAPA). 9: # 10: # LON-CAPA is free software; you can redistribute it and/or modify 11: # it under the terms of the GNU General Public License as published by 12: # the Free Software Foundation; either version 2 of the License, or 13: # (at your option) any later version. 14: # 15: # LON-CAPA is distributed in the hope that it will be useful, 16: # but WITHOUT ANY WARRANTY; without even the implied warranty of 17: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18: # GNU General Public License for more details. 19: # 20: # You should have received a copy of the GNU General Public License 21: # along with LON-CAPA; if not, write to the Free Software 22: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23: # 24: # /home/httpd/html/adm/gpl.txt 25: # 26: # http://www.lon-capa.org/ 27: # 28: 29: package Apache::migrateuser; 30: 31: use strict; 32: use Apache::Constants qw(:common :http :methods); 33: use Apache::lonauth; 34: use Apache::lonnet; 35: 36: sub goto_login { 37: my ($r) = @_; 38: &Apache::loncommon::content_type($r,'text/html'); 39: $r->send_http_header; 40: $r->print(<<TOLOGIN); 41: <html> 42: <head> 43: <meta http-equiv="refresh" content="0;url=/adm/login" /> 44: <title>Going to login</title> 45: </head> 46: <body> 47: <h1>One moment please...</h1> 48: <p> 49: Transferring to login page. 50: <a href="/adm/login">Continue</a> 51: </p> 52: </body> 53: </html> 54: TOLOGIN 55: return OK; 56: } 57: 58: 59: sub handler { 60: my ($r) = @_; 61: 62: &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['token']); 63: my %data = &Apache::lonnet::tmpget($env{'form.token'}); 64: my $delete = &Apache::lonnet::tmpdel($env{'form.token'}); 65: 66: if ($delete ne 'ok') { 67: return &goto_login($r); 68: } 69: 70: if ($data{'ip'} ne $ENV{'REMOTE_ADDR'} || !defined($data{'username'}) || 71: !defined($data{'domain'}) ) { 72: return &goto_login($r); 73: } 74: 75: &Apache::lonnet::logthis("Allowing access for $data{'username'}\@$data{'domain'} to $data{'role'}"); 76: my $home=&Apache::lonnet::homeserver($data{'username'},$data{'domain'}); 77: if ($home =~ /(con_lost|no_such_host)/) { return &goto_login($r); } 78: 79: if (!$data{'role'}) { 80: &Apache::lonauth::success($r,$data{'username'},$data{'domain'}, 81: $home,'/adm/roles'); 82: return OK; 83: } 84: 85: my $cookie=&Apache::lonauth::success($r,$data{'username'},$data{'domain'}, 86: $home,'noredirect'); 87: $r->header_out('Set-cookie',"lonID=$cookie; path=/"); 88: &Apache::lonnet::transfer_profile_to_env($r->dir_config('lonIDsDir'), 89: $cookie); 90: $env{'form.selectrole'}='1'; 91: $env{'form.'.$data{'role'}}='1'; 92: return &Apache::lonroles::handler($r); 93: } 94: 95: 1; 96: __END__