--- loncom/auth/switchserver.pm 2005/10/25 19:14:32 1.3 +++ loncom/auth/switchserver.pm 2005/10/28 21:51:43 1.4 @@ -1,7 +1,7 @@ # The LearningOnline Network # Switch Servers Handler # -# $Id: switchserver.pm,v 1.3 2005/10/25 19:14:32 albertel Exp $ +# $Id: switchserver.pm,v 1.4 2005/10/28 21:51:43 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -65,9 +65,16 @@ sub handler { &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['otherserver','role']); + my $switch_to=$Apache::lonnet::hostname{$env{'form.otherserver'}}; + if (!$env{'form.otherserver'}) { + $env{'form.otherserver'}=&Apache::lonnet::spareserver(30000,undef,1); + $switch_to=$Apache::lonnet::hostname{$env{'form.otherserver'}}; + } if (!defined($switch_to)) { return FORBIDDEN; } - if (!exists($env{'user.role.'.$env{'form.role'}})) { return FORBIDDEN; } + + if ($env{'form.role'} && + !exists($env{'user.role.'.$env{'form.role'}})) { return FORBIDDEN; } #remove session env, and log event unlink($r->dir_config('lonIDsDir')."/$handle.id");