--- loncom/auth/lonacc.pm 2014/01/04 23:21:22 1.151 +++ loncom/auth/lonacc.pm 2014/01/30 12:15:12 1.153 @@ -1,7 +1,7 @@ # The LearningOnline Network # Cookie Based Access Handler # -# $Id: lonacc.pm,v 1.151 2014/01/04 23:21:22 raeburn Exp $ +# $Id: lonacc.pm,v 1.153 2014/01/30 12:15:12 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -365,7 +365,7 @@ sub sso_login { } } unless ($info{'symb'}) { - unless ($r->uri eq '/adm/roles') { + unless (($r->uri eq '/adm/roles') || ($r->uri eq '/adm/sso')) { $info{'origurl'} = $r->uri; } } @@ -402,11 +402,13 @@ sub sso_login { } } if (grep(/^sso$/,@cancreate)) { - $r->internal_redirect('/adm/createaccount'); + $r->set_handlers('PerlHandler'=> + [\&Apache::createaccount::handler]); + $r->handler('perl-script'); } else { $r->internal_redirect($r->dir_config('lonSSOUserUnknownRedirect')); + $r->set_handlers('PerlHandler'=> undef); } - $r->set_handlers('PerlHandler'=> undef); return OK; } return undef; @@ -530,6 +532,10 @@ sub handler { if ($otherserver ne '') { $env{'form.otherserver'} = $otherserver; } + unless (($env{'form.origurl'}) || ($r->uri eq '/adm/roles') || + ($r->uri eq '/adm/switchserver') || ($r->uri eq '/adm/sso')) { + $env{'form.origurl'} = $r->uri; + } } # ---------------------------------------------------------------- Check access