--- loncom/interface/createaccount.pm 2008/07/13 17:57:58 1.19 +++ loncom/interface/createaccount.pm 2008/07/14 08:26:57 1.20 @@ -3,7 +3,7 @@ # institutional log-in ID (institutional authentication required - localauth # or kerberos) or an e-mail address. # -# $Id: createaccount.pm,v 1.19 2008/07/13 17:57:58 raeburn Exp $ +# $Id: createaccount.pm,v 1.20 2008/07/14 08:26:57 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -87,16 +87,39 @@ sub handler { $r->print($start_page."\n".'

'.&mt('You are already logged in').'

'. '

'.&mt('Please either [_1]continue the current session[_2] or [_3]logout[_4].','','','',''). '

'.&mt('Login problems?').'

'.$end_page); - return OK; + return OK; } - $start_page = - &Apache::loncommon::start_page('Create a user account in LON-CAPA','', - {'no_inline_link' => 1,}); - if ($env{'form.phase'} eq 'username_activation') { + + my $courseid; + if (defined($env{'form.courseid'})) { + $courseid = &validate_course($env{'form.courseid'}); + } + if ($env{'form.phase'} eq 'selfenroll_login') { if ($env{'form.udom'} ne '') { $domain = $env{'form.udom'}; } + my ($result,$output) = + &username_validation($r,$env{'form.uname'},$domain,$domdesc, + + $contact_name,$contact_email,$courseid, + $lonhost); + if ($result eq 'existingaccount') { + $r->print($output); + $r->print(&Apache::loncommon::end_page()); + return OK; + } else { + $start_page = + &Apache::loncommon::start_page('Self-enroll in a LON-CAPA course','', + {'no_inline_link' => 1,}); + &print_header($r,$start_page); + $r->print($output.&Apache::loncommon::end_page()); + return OK; + } } + + $start_page = + &Apache::loncommon::start_page('Create a user account in LON-CAPA','', + {'no_inline_link' => 1,}); my @cancreate; my %domconfig = &Apache::lonnet::get_dom('configuration',['usercreation'],$domain); if (ref($domconfig{'usercreation'}) eq 'HASH') { @@ -120,11 +143,6 @@ sub handler { return OK; } - my $courseid; - if (defined($env{'form.courseid'})) { - $courseid = &validate_course($env{'form.courseid'}); - } - if ($sso_username ne '') { &print_header($r,$start_page); my ($msg,$sso_logout); @@ -325,31 +343,10 @@ sub print_username_form { my %domdefaults = &Apache::lonnet::get_domain_defaults($domain); if ((($domdefaults{'auth_def'} =~/^krb/) && ($domdefaults{'auth_arg_def'} ne '')) || ($domdefaults{'auth_def'} eq 'localauth')) { $output = '

'.&mt('Create account with a username provided by this institution').'

'; - $output .= &mt('If you already have a log-in ID at this institution,[_1] you may be able to use it for LON-CAPA.','
').'

'.&mt('Type in your log-in ID and password to find out.').'

'; - my ($lkey,$ukey) = &Apache::lonpreferences::des_keys(); - my ($lextkey,$uextkey) = &getkeys($lkey,$ukey); - my $logtoken=Apache::lonnet::reply('tmpput:'.$ukey.$lkey.'&createaccount', - $lonhost); - $output .= &serverform($logtoken,$lonhost,undef,$courseid); - my $unameform = ''; - my $upassform = ''; my $submit_text = &mt('Create LON-CAPA account'); - $output .= '
'."\n". - &Apache::lonhtmlcommon::start_pick_box()."\n". - &Apache::lonhtmlcommon::row_title(&mt('Log-in ID'), - 'LC_pick_box_title')."\n". - $unameform."\n". - &Apache::lonhtmlcommon::row_closure(1)."\n". - &Apache::lonhtmlcommon::row_title(&mt('Password'), - 'LC_pick_box_title')."\n". - $upassform."\n".'

'."\n". - ''."\n". - &Apache::lonhtmlcommon::row_closure(1)."\n". - &Apache::lonhtmlcommon::end_pick_box().'

'."\n". - ''."\n". - ''."\n". - '
'; + $output .= &mt('If you already have a log-in ID at this institution,[_1] you may be able to use it for LON-CAPA.','
').'

'.&mt('Type in your log-in ID and password to find out.').'

'; + $output .= &login_box($now,$lonhost,$courseid,$submit_text, + $domain,'createaccount'); } } if (grep(/^email$/,@{$cancreate})) { @@ -389,6 +386,48 @@ sub print_username_form { return $output; } +sub login_box { + my ($now,$lonhost,$courseid,$submit_text,$domain,$context) = @_; + my $output; + my %titles = &Apache::lonlocal::texthash( + createaccount => 'Log-in ID', + selfenroll => 'Username', + ); + my ($lkey,$ukey) = &Apache::lonpreferences::des_keys(); + my ($lextkey,$uextkey) = &getkeys($lkey,$ukey); + my $logtoken=Apache::lonnet::reply('tmpput:'.$ukey.$lkey.'&createaccount', + $lonhost); + $output = &serverform($logtoken,$lonhost,undef,$courseid,$context); + my $unameform = ''; + my $upassform = ''; + $output .= '
'."\n". + &Apache::lonhtmlcommon::start_pick_box()."\n"; + if ($context eq 'selfenroll') { + my $udomform = ''; + $output .= &Apache::lonhtmlcommon::row_title(&mt('Domain'), + 'LC_pick_box_title')."\n". + $udomform."\n". + &Apache::lonhtmlcommon::row_closure(1)."\n"; + } + + $output .= &Apache::lonhtmlcommon::row_title($titles{$context}, + 'LC_pick_box_title')."\n". + $unameform."\n". + &Apache::lonhtmlcommon::row_closure(1)."\n". + &Apache::lonhtmlcommon::row_title(&mt('Password'), + 'LC_pick_box_title')."\n". + $upassform."\n".'

'."\n". + ''."\n". + &Apache::lonhtmlcommon::row_closure(1)."\n". + &Apache::lonhtmlcommon::end_pick_box().'

'."\n". + ''."\n". + ''."\n". + '
'; + return $output; +} + sub process_email_request { my ($useremail,$domain,$domdesc,$contact_name,$contact_email,$cancreate, $server,$settings,$courseid) = @_; @@ -1016,15 +1055,19 @@ sub getkeys { } sub serverform { - my ($logtoken,$lonhost,$mailtoken,$courseid) = @_; + my ($logtoken,$lonhost,$mailtoken,$courseid,$context) = @_; + my $phase = 'username_validation"'; + if ($context eq 'selfenroll') { + $phase = 'selfenroll_login'; + } my $output .= < +
- +
ENDSERVERFORM