// 'username',
udom => 'domain',
@@ -481,10 +532,9 @@ sub print_username_form {
} else {
my $prompt = $lt{'plse'};
if (ref($emailusername) eq 'HASH') {
- foreach my $key (keys(%{$emailusername})) {
- if ($emailusername->{$key}) {
+ if (ref($emailusername->{$usertype}) eq 'HASH') {
+ if (keys(%{$emailusername->{$usertype}}) > 0) {
$prompt = $lt{'info'};
- last;
}
}
}
@@ -492,7 +542,8 @@ sub print_username_form {
$lt{'yopw'}.'
';
}
$output .= &print_dataentry_form($r,$domain,$lonhost,$include,$now,$captchaform,
- $courseid,$gotlondes,$emailusername,$captcha);
+ $courseid,$gotlondes,$emailusername,$captcha,
+ $usertype);
}
$output .= '';
}
@@ -558,7 +609,7 @@ sub login_box {
sub process_email_request {
my ($useremail,$domain,$domdesc,$contact_name,$contact_email,$cancreate,
- $server,$settings,$emailusername,$courseid) = @_;
+ $server,$settings,$emailusername,$courseid,$usertype) = @_;
my $output;
if (ref($cancreate) eq 'ARRAY') {
if (!grep(/^email(|approval)$/,@{$cancreate})) {
@@ -612,7 +663,7 @@ sub process_email_request {
}
}
$output = &send_token($domain,$useremail,$server,$domdesc,$contact_name,
- $contact_email,$courseid,$emailusername);
+ $contact_email,$courseid,$emailusername,$usertype);
}
return $output;
}
@@ -632,7 +683,8 @@ sub call_rulecheck {
}
sub send_token {
- my ($domain,$email,$server,$domdesc,$contact_name,$contact_email,$courseid,$emailusername) = @_;
+ my ($domain,$email,$server,$domdesc,$contact_name,$contact_email,$courseid,$emailusername,
+ $usertype) = @_;
my $msg = ''.&mt('Account creation status').'
'.
&mt('Thank you for your request to create a new LON-CAPA account.').
'
';
@@ -660,9 +712,14 @@ sub send_token {
'tmpinfo' => $tmpinfo);
if (ref($emailusername) eq 'HASH') {
- foreach my $item (keys(%{$emailusername})) {
- $info{$item} = $env{'form.'.$item};
- $info{$item} =~ s/(`)//g;
+ if (ref($emailusername->{$usertype}) eq 'HASH') {
+ foreach my $item (keys(%{$emailusername->{$usertype}})) {
+ $info{$item} = $env{'form.'.$item};
+ $info{$item} =~ s/(`)//g;
+ }
+ unless ($usertype eq 'default') {
+ $info{'inststatus'} = $usertype;
+ }
}
}
my $token = &Apache::lonnet::tmpput(\%info,$server,'createaccount');
@@ -789,7 +846,8 @@ sub start_session {
# Stores token to store DES-key and stage during creation session
#
sub print_dataentry_form {
- my ($r,$domain,$lonhost,$include,$now,$captchaform,$courseid,$gotlondes,$emailusername,$captcha) = @_;
+ my ($r,$domain,$lonhost,$include,$now,$captchaform,$courseid,$gotlondes,$emailusername,$captcha,
+ $usertype) = @_;
my ($error,$output);
unless ($gotlondes) {
if (open(my $jsh,"<$include/londes.js")) {
@@ -797,7 +855,7 @@ sub print_dataentry_form {
$r->print($line);
}
close($jsh);
- $output = &javascript_setforms($now,$emailusername,$captcha)."\n";
+ $output = &javascript_setforms($now,$emailusername,$captcha,$usertype)."\n";
$gotlondes = 1;
}
}
@@ -813,8 +871,11 @@ sub print_dataentry_form {
$output .= ''."\n";
}
if (ref($emailusername) eq 'HASH') {
- foreach my $field (sort(keys(%{$emailusername}))) {
- $output .= ''."\n";
+ if (ref($emailusername->{$usertype}) eq 'HASH') {
+ foreach my $field (sort(keys(%{$emailusername->{$usertype}}))) {
+ $output .= ''."\n";
+ }
+ $output .= ''."\n";
}
}
if ($captcha eq 'original') {
@@ -843,11 +904,12 @@ ENDSERVERFORM
my $endclientform = ''."\n".
''."\n".
''."\n".
- '';
+ ''."\n".
+ ''.&mt('Fields marked [_1]*[_2] are required.','','').'
';
my ($datatable,$rowcount) =
&Apache::loncreateuser::personal_data_display('',$domain,'email','selfcreate',
'','',$now,$captchaform,
- $emailusername);
+ $emailusername,$usertype);
if ($rowcount) {
$output .= ''.$beginclientform.$datatable.$endclientform;
} else {
@@ -919,7 +981,7 @@ sub create_account {
my $output;
if (ref($dataref) eq 'HASH') {
my ($username,$encpass,$serverid,$courseid,$id,$firstname,$middlename,$lastname,
- $generation);
+ $generation,$inststatus);
$username = $dataref->{'username'};
$encpass = $dataref->{'upass'};
$serverid = $dataref->{'serverid'};
@@ -929,6 +991,7 @@ sub create_account {
$middlename = $dataref->{'middlename'};
$lastname = $dataref->{'lastname'};
$generation = $dataref->{'generation'};
+ $inststatus = $dataref->{'usertype'};
my $currhome = &Apache::lonnet::homeserver($username,$domain);
unless ($currhome eq 'no_host') {
@@ -967,6 +1030,9 @@ sub create_account {
# Now that the user account exists, retrieve the homeserver, and include it in the output.
my $uhome = &Apache::lonnet::homeserver($username,$domain);
+ unless (($inststatus eq 'default') || ($inststatus eq '')) {
+ &Apache::lonnet::put('environment',{inststatus => $inststatus},$domain,$username);
+ }
$output .= '
'.&mt('Home server: [_1]',$uhome).' '.
&Apache::lonnet::hostname($uhome).'
';
return ('ok',$output,$uhome);
@@ -1531,7 +1597,7 @@ sub sso_logout_frag {
sub catreturn_js {
return <<"ENDSCRIPT";
ENDSCRIPT