version 1.227, 2014/02/28 19:20:05
|
version 1.228, 2014/03/03 17:11:42
|
Line 3796 sub print_selfcreation {
|
Line 3796 sub print_selfcreation {
|
} |
} |
} |
} |
my %radiohash; |
my %radiohash; |
my $rownum = 0; |
|
my $numinrow = 4; |
my $numinrow = 4; |
map { $radiohash{'cancreate_'.$_} = 1; } @selfcreate; |
map { $radiohash{'cancreate_'.$_} = 1; } @selfcreate; |
if ($position eq 'top') { |
if ($position eq 'top') { |
Line 3809 sub print_selfcreation {
|
Line 3808 sub print_selfcreation {
|
'cancreate_login' => 'off', |
'cancreate_login' => 'off', |
'cancreate_sso' => 'off', |
'cancreate_sso' => 'off', |
); |
); |
my $itemcount = 1; |
my ($onclick,$itemcount); |
my $onclick; |
|
($datatable,$itemcount) = &radiobutton_prefs(\%radiohash,\@toggles,\%defaultchecked, |
($datatable,$itemcount) = &radiobutton_prefs(\%radiohash,\@toggles,\%defaultchecked, |
\%choices,$itemcount,$onclick); |
\%choices,$itemcount,$onclick); |
|
$$rowtotal += $itemcount; |
|
|
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
|
|
if (ref($usertypes) eq 'HASH') { |
if (ref($usertypes) eq 'HASH') { |
if (keys(%{$usertypes}) > 0) { |
if (keys(%{$usertypes}) > 0) { |
$datatable .= &insttypes_row($createsettings,$types,$usertypes, |
$datatable .= &insttypes_row($createsettings,$types,$usertypes, |
$dom,$numinrow,$othertitle, |
$dom,$numinrow,$othertitle, |
'statustocreate',$rownum); |
'statustocreate',$$rowtotal); |
$rownum ++; |
|
$$rowtotal ++; |
$$rowtotal ++; |
} |
} |
} |
} |
Line 3832 sub print_selfcreation {
|
Line 3831 sub print_selfcreation {
|
push(@{$types},'default'); |
push(@{$types},'default'); |
$usertypes->{'default'} = $othertitle; |
$usertypes->{'default'} = $othertitle; |
foreach my $status (@{$types}) { |
foreach my $status (@{$types}) { |
$rownum ++; |
|
$datatable .= &modifiable_userdata_row('selfcreate',$status,$domconf{'usermodification'}, |
$datatable .= &modifiable_userdata_row('selfcreate',$status,$domconf{'usermodification'}, |
$numinrow,$rownum,$usertypes); |
$numinrow,$$rowtotal,$usertypes); |
$$rowtotal ++; |
$$rowtotal ++; |
} |
} |
} |
} |
} else { |
} else { |
my $css_class = $rownum%2?' class="LC_odd_row"':''; |
my $css_class = $$rowtotal%2?' class="LC_odd_row"':''; |
my %choices = |
my %choices = |
&Apache::lonlocal::texthash( |
&Apache::lonlocal::texthash( |
email => 'Approved automatically', |
email => 'Approved automatically', |
Line 3871 sub print_selfcreation {
|
Line 3869 sub print_selfcreation {
|
$choices{$option}.'</label> '; |
$choices{$option}.'</label> '; |
} |
} |
$$rowtotal ++; |
$$rowtotal ++; |
$rownum ++; |
|
$datatable .= '</span></td></tr>'. |
$datatable .= '</span></td></tr>'. |
&print_requestmail($dom,'selfcreation',$createsettings,$rowtotal); |
&print_requestmail($dom,'selfcreation',$createsettings,$rowtotal); |
$rownum ++; |
|
my ($infofields,$infotitles) = &Apache::loncommon::emailusername_info(); |
|
$numinrow = 2; |
|
$datatable .= &modifiable_userdata_row('cancreate','emailusername',$settings, |
|
$numinrow,$rownum,undef,$infofields,$infotitles); |
|
$$rowtotal ++; |
$$rowtotal ++; |
$rownum ++; |
my ($infofields,$infotitles) = &Apache::loncommon::emailusername_info(); |
|
$numinrow = 1; |
|
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
|
$usertypes->{'default'} = $othertitle; |
|
if (ref($types) eq 'ARRAY') { |
|
push(@{$types},'default'); |
|
$usertypes->{'default'} = $othertitle; |
|
foreach my $status (@{$types}) { |
|
$datatable .= &modifiable_userdata_row('cancreate','emailusername_'.$status,$settings, |
|
$numinrow,$$rowtotal,$usertypes,$infofields,$infotitles); |
|
$$rowtotal ++; |
|
} |
|
} |
my ($emailrules,$emailruleorder) = |
my ($emailrules,$emailruleorder) = |
&Apache::lonnet::inst_userrules($dom,'email'); |
&Apache::lonnet::inst_userrules($dom,'email'); |
if (ref($emailrules) eq 'HASH') { |
if (ref($emailrules) eq 'HASH') { |
if (keys(%{$emailrules}) > 0) { |
if (keys(%{$emailrules}) > 0) { |
$datatable .= &user_formats_row('email',$settings,$emailrules, |
$datatable .= &user_formats_row('email',$settings,$emailrules, |
$emailruleorder,$numinrow,$rownum); |
$emailruleorder,$numinrow,$$rowtotal); |
$rownum ++; |
|
$$rowtotal ++; |
$$rowtotal ++; |
} |
} |
} |
} |
$datatable .= &captcha_choice('cancreate',$createsettings,$rownum); |
$datatable .= &captcha_choice('cancreate',$createsettings,$$rowtotal); |
} |
} |
return $datatable; |
return $datatable; |
} |
} |
Line 4857 sub build_category_rows {
|
Line 4860 sub build_category_rows {
|
} |
} |
|
|
sub modifiable_userdata_row { |
sub modifiable_userdata_row { |
my ($context,$role,$settings,$numinrow,$rowcount,$usertypes,$fieldsref,$titlesref) = @_; |
my ($context,$item,$settings,$numinrow,$rowcount,$usertypes,$fieldsref,$titlesref) = @_; |
my $rolename; |
my ($role,$rolename,$statustype); |
|
$role = $item; |
if ($context eq 'cancreate') { |
if ($context eq 'cancreate') { |
if ($role eq 'emailusername') { |
if ($item =~ /^emailusername_(.+)$/) { |
$rolename = &mt('Data user provides'); |
$statustype = $1; |
|
$role = 'emailusername'; |
|
if (ref($usertypes) eq 'HASH') { |
|
if ($usertypes->{$statustype}) { |
|
$rolename = &mt('Data provided by [_1]',$usertypes->{$statustype}); |
|
} else { |
|
$rolename = &mt('Data provided by user'); |
|
} |
|
} |
} |
} |
} elsif ($context eq 'selfcreate') { |
} elsif ($context eq 'selfcreate') { |
if (ref($usertypes) eq 'HASH') { |
if (ref($usertypes) eq 'HASH') { |
Line 4898 sub modifiable_userdata_row {
|
Line 4910 sub modifiable_userdata_row {
|
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
if (ref($settings->{$context}) eq 'HASH') { |
if (ref($settings->{$context}) eq 'HASH') { |
if (ref($settings->{$context}->{$role}) eq 'HASH') { |
if (ref($settings->{$context}->{$role}) eq 'HASH') { |
foreach my $field (@fields) { |
my $hashref = $settings->{$context}->{$role}; |
if ($settings->{$context}->{$role}->{$field}) { |
if ($role eq 'emailusername') { |
$checks{$field} = ' checked="checked" '; |
if ($statustype) { |
|
if (ref($settings->{$context}->{$role}->{$statustype}) eq 'HASH') { |
|
$hashref = $settings->{$context}->{$role}->{$statustype}; |
|
if (ref($hashref) eq 'HASH') { |
|
foreach my $field (@fields) { |
|
if ($hashref->{$field}) { |
|
$checks{$field} = $hashref->{$field}; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} else { |
|
if (ref($hashref) eq 'HASH') { |
|
foreach my $field (@fields) { |
|
if ($hashref->{$field}) { |
|
$checks{$field} = ' checked="checked" '; |
|
} |
|
} |
} |
} |
} |
} |
} |
} |
} |
} |
} |
} |
|
|
for (my $i=0; $i<@fields; $i++) { |
for (my $i=0; $i<@fields; $i++) { |
my $rem = $i%($numinrow); |
my $rem = $i%($numinrow); |
if ($rem == 0) { |
if ($rem == 0) { |
Line 4915 sub modifiable_userdata_row {
|
Line 4946 sub modifiable_userdata_row {
|
$output .= '<tr>'; |
$output .= '<tr>'; |
} |
} |
my $check = ' '; |
my $check = ' '; |
if (exists($checks{$fields[$i]})) { |
unless ($role eq 'emailusername') { |
$check = $checks{$fields[$i]} |
if (exists($checks{$fields[$i]})) { |
} else { |
$check = $checks{$fields[$i]} |
if ($role eq 'st') { |
} else { |
if (ref($settings) ne 'HASH') { |
if ($role eq 'st') { |
$check = ' checked="checked" '; |
if (ref($settings) ne 'HASH') { |
|
$check = ' checked="checked" '; |
|
} |
} |
} |
} |
} |
} |
} |
$output .= '<td class="LC_left_item">'. |
$output .= '<td class="LC_left_item">'. |
'<span class="LC_nobreak"><label>'. |
'<span class="LC_nobreak">'; |
'<input type="checkbox" name="canmodify_'.$role.'" '. |
if ($role eq 'emailusername') { |
'value="'.$fields[$i].'"'.$check.'/>'.$fieldtitles{$fields[$i]}. |
unless ($checks{$fields[$i]} =~ /^(required|optional)$/) { |
'</label></span></td>'; |
$checks{$fields[$i]} = 'omit'; |
|
} |
|
foreach my $option ('required','optional','omit') { |
|
my $checked=''; |
|
if ($checks{$fields[$i]} eq $option) { |
|
$checked='checked="checked" '; |
|
} |
|
$output .= '<label>'. |
|
'<input type="radio" name="canmodify_'.$item.'_'.$fields[$i].'" value="'.$option.'" '.$checked.'/>'. |
|
&mt($option).'</label>'.(' ' x2); |
|
} |
|
$output .= '<i>'.$fieldtitles{$fields[$i]}.'</i>'; |
|
} else { |
|
$output .= '<label>'. |
|
'<input type="checkbox" name="canmodify_'.$role.'" '. |
|
'value="'.$fields[$i].'"'.$check.'/>'.$fieldtitles{$fields[$i]}. |
|
'</label>'; |
|
} |
|
$output .= '</span></td>'; |
$rem = @fields%($numinrow); |
$rem = @fields%($numinrow); |
} |
} |
my $colsleft = $numinrow - $rem; |
my $colsleft = $numinrow - $rem; |
Line 7661 sub modify_selfcreation {
|
Line 7712 sub modify_selfcreation {
|
my ($dom,%domconfig) = @_; |
my ($dom,%domconfig) = @_; |
my ($resulttext,$warningmsg,%curr_usercreation,%curr_usermodify,%changes,%cancreate); |
my ($resulttext,$warningmsg,%curr_usercreation,%curr_usermodify,%changes,%cancreate); |
my (%save_usercreate,%save_usermodify); |
my (%save_usercreate,%save_usermodify); |
|
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
|
if (ref($types) eq 'ARRAY') { |
|
$usertypes->{'default'} = $othertitle; |
|
push(@{$types},'default'); |
|
} |
# |
# |
# Retrieve current domain configuration for self-creation of usernames from $domconfig{'usercreation'}. |
# Retrieve current domain configuration for self-creation of usernames from $domconfig{'usercreation'}. |
# |
# |
Line 7712 sub modify_selfcreation {
|
Line 7768 sub modify_selfcreation {
|
# Populate $cancreate{'selfcreate'} array reference with types of user, for which self-creation of user accounts |
# Populate $cancreate{'selfcreate'} array reference with types of user, for which self-creation of user accounts |
# is permitted. |
# is permitted. |
# |
# |
foreach my $item ('login','sso','email') { |
foreach my $item ('login','sso','email') { |
if ($item eq 'email') { |
if ($item eq 'email') { |
if ($env{'form.cancreate_email'} eq 'email') { |
if ($env{'form.cancreate_email'} eq 'email') { |
push(@{$cancreate{'selfcreate'}},'email'); |
push(@{$cancreate{'selfcreate'}},'email'); |
Line 7728 sub modify_selfcreation {
|
Line 7784 sub modify_selfcreation {
|
my (@email_rule,%userinfo,%savecaptcha); |
my (@email_rule,%userinfo,%savecaptcha); |
my ($infofields,$infotitles) = &Apache::loncommon::emailusername_info(); |
my ($infofields,$infotitles) = &Apache::loncommon::emailusername_info(); |
# |
# |
# Populate $cancreate{'emailusername'} hash ref with information types (if new user will provide data |
# Populate $cancreate{'emailusername'}{$type} hash ref with information fields (if new user will provide data |
# value set to one), if self-creation with e-mail address permitted. |
# value set to one), if self-creation with e-mail address permitted, where $type is user type: faculty, staff, student etc. |
# |
# |
if (($env{'form.cancreate_email'} eq 'email') || ($env{'form.cancreate_email'} eq 'emailapproval')) { |
if (($env{'form.cancreate_email'} eq 'email') || ($env{'form.cancreate_email'} eq 'emailapproval')) { |
push(@contexts,'emailusername'); |
push(@contexts,'emailusername'); |
map { $userinfo{$_} = 1; } &Apache::loncommon::get_env_multiple('form.canmodify_emailusername'); |
if (ref($types) eq 'ARRAY') { |
if (ref($infofields) eq 'ARRAY') { |
foreach my $type (@{$types}) { |
foreach my $field (@{$infofields}) { |
if (ref($infofields) eq 'ARRAY') { |
if ($userinfo{$field}) { |
foreach my $field (@{$infofields}) { |
$cancreate{'emailusername'}{$field} = 1; |
if ($env{'form.canmodify_emailusername_'.$type.'_'.$field} =~ /^(required|optional)$/) { |
|
$cancreate{'emailusername'}{$type}{$field} = $1; |
|
} |
|
} |
} |
} |
} |
} |
} |
} |
|
|
# |
# |
# Populate $cancreate{'notify'} hash ref with names of Domain Coordinators who are to be notified of |
# Populate $cancreate{'notify'} hash ref with names of Domain Coordinators who are to be notified of |
# queued requests for self-creation of account using e-mail address as username |
# queued requests for self-creation of account using e-mail address as username |
Line 7800 sub modify_selfcreation {
|
Line 7858 sub modify_selfcreation {
|
&mt('You need to set the default authentication type to Kerberos 4 or 5 (with a Kerberos domain specified), or to Local authentication, if the localauth module has been customized in your domain to authenticate institutional logins.'); |
&mt('You need to set the default authentication type to Kerberos 4 or 5 (with a Kerberos domain specified), or to Local authentication, if the localauth module has been customized in your domain to authenticate institutional logins.'); |
} |
} |
} |
} |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
|
my @fields = ('lastname','firstname','middlename','generation', |
my @fields = ('lastname','firstname','middlename','generation', |
'permanentemail','id'); |
'permanentemail','id'); |
my %fieldtitles = &Apache::loncommon::personal_data_fieldtitles(); |
my %fieldtitles = &Apache::loncommon::personal_data_fieldtitles(); |
Line 7813 sub modify_selfcreation {
|
Line 7870 sub modify_selfcreation {
|
# |
# |
if (($env{'form.cancreate_login'}) || ($env{'form.cancreate_sso'})) { |
if (($env{'form.cancreate_login'}) || ($env{'form.cancreate_sso'})) { |
if (ref($types) eq 'ARRAY') { |
if (ref($types) eq 'ARRAY') { |
if (@{$types} > 0) { |
if (@{$types} > 1) { |
@{$cancreate{'statustocreate'}} = &Apache::loncommon::get_env_multiple('form.statustocreate'); |
@{$cancreate{'statustocreate'}} = &Apache::loncommon::get_env_multiple('form.statustocreate'); |
push(@contexts,'statustocreate'); |
push(@contexts,'statustocreate'); |
} else { |
} else { |
undef($cancreate{'statustocreate'}); |
undef($cancreate{'statustocreate'}); |
} |
} |
push(@{$types},'default'); |
|
$usertypes->{'default'} = $othertitle; |
|
foreach my $type (@{$types}) { |
foreach my $type (@{$types}) { |
my @modifiable = &Apache::loncommon::get_env_multiple('form.canmodify_'.$type); |
my @modifiable = &Apache::loncommon::get_env_multiple('form.canmodify_'.$type); |
foreach my $field (@fields) { |
foreach my $field (@fields) { |
Line 7873 sub modify_selfcreation {
|
Line 7928 sub modify_selfcreation {
|
} elsif (ref($curr_usercreation{'cancreate'}{$item}) eq 'HASH') { |
} elsif (ref($curr_usercreation{'cancreate'}{$item}) eq 'HASH') { |
if (ref($cancreate{$item}) eq 'HASH') { |
if (ref($cancreate{$item}) eq 'HASH') { |
foreach my $curr (keys(%{$curr_usercreation{'cancreate'}{$item}})) { |
foreach my $curr (keys(%{$curr_usercreation{'cancreate'}{$item}})) { |
if (!$cancreate{$item}{$curr}) { |
if (ref($curr_usercreation{'cancreate'}{$item}{$curr}) eq 'HASH') { |
if (!grep(/^$item$/,@{$changes{'cancreate'}})) { |
foreach my $field (keys(%{$curr_usercreation{'cancreate'}{$item}{$curr}})) { |
push(@{$changes{'cancreate'}},$item); |
unless ($curr_usercreation{'cancreate'}{$item}{$curr}{$field} eq $cancreate{$item}{$curr}{$field}) { |
|
if (!grep(/^$item$/,@{$changes{'cancreate'}})) { |
|
push(@{$changes{'cancreate'}},$item); |
|
} |
|
} |
|
} |
|
} else { |
|
if (!$cancreate{$item}{$curr}) { |
|
if (!grep(/^$item$/,@{$changes{'cancreate'}})) { |
|
push(@{$changes{'cancreate'}},$item); |
|
} |
} |
} |
} |
} |
} |
} |
foreach my $field (keys(%{$cancreate{$item}})) { |
foreach my $field (keys(%{$cancreate{$item}})) { |
if (!$curr_usercreation{'cancreate'}{$item}{$field}) { |
if (ref($cancreate{$item}{$field}) eq 'HASH') { |
if (!grep(/^$item$/,@{$changes{'cancreate'}})) { |
foreach my $inner (keys(%{$cancreate{$item}{$field}})) { |
push(@{$changes{'cancreate'}},$item); |
if (ref($curr_usercreation{'cancreate'}{$item}{$field}) eq 'HASH') { |
|
unless ($curr_usercreation{'cancreate'}{$item}{$field}{$inner} eq $cancreate{$item}{$field}{$inner}) { |
|
if (!grep(/^$item$/,@{$changes{'cancreate'}})) { |
|
push(@{$changes{'cancreate'}},$item); |
|
} |
|
} |
|
} else { |
|
if (!grep(/^$item$/,@{$changes{'cancreate'}})) { |
|
push(@{$changes{'cancreate'}},$item); |
|
} |
|
} |
|
} |
|
} else { |
|
if (!$curr_usercreation{'cancreate'}{$item}{$field}) { |
|
if (!grep(/^$item$/,@{$changes{'cancreate'}})) { |
|
push(@{$changes{'cancreate'}},$item); |
|
} |
} |
} |
} |
} |
} |
} |
Line 7902 sub modify_selfcreation {
|
Line 7983 sub modify_selfcreation {
|
} |
} |
} |
} |
} elsif ($item eq 'emailusername') { |
} elsif ($item eq 'emailusername') { |
if (keys(%userinfo) > 0) { |
if (ref($cancreate{$item}) eq 'HASH') { |
push(@{$changes{'cancreate'}},$item); |
foreach my $type (keys(%{$cancreate{$item}})) { |
|
if (ref($cancreate{$item}{$type}) eq 'HASH') { |
|
foreach my $field (keys(%{$cancreate{$item}{$type}})) { |
|
if ($cancreate{$item}{$type}{$field}) { |
|
if (!grep(/^$item$/,@{$changes{'cancreate'}})) { |
|
push(@{$changes{'cancreate'}},$item); |
|
} |
|
last; |
|
} |
|
} |
|
} |
|
} |
} |
} |
} |
} |
} |
} |
Line 8033 sub modify_selfcreation {
|
Line 8125 sub modify_selfcreation {
|
$chgtext .= '</ul>'; |
$chgtext .= '</ul>'; |
} elsif ($type eq 'emailusername') { |
} elsif ($type eq 'emailusername') { |
if (ref($cancreate{'emailusername'}) eq 'HASH') { |
if (ref($cancreate{'emailusername'}) eq 'HASH') { |
if (keys(%{$cancreate{'emailusername'}}) > 0) { |
if (ref($types) eq 'ARRAY') { |
$chgtext .= &mt('When self-creating account with e-mail as username, user will provide the following information:'). |
foreach my $type (@{$types}) { |
'<ul>'; |
if (ref($cancreate{'emailusername'}{$type}) eq 'HASH') { |
foreach my $field (@{$infofields}) { |
if (keys(%{$cancreate{'emailusername'}{$type}}) > 0) { |
if ($cancreate{'emailusername'}{$field}) { |
$chgtext .= &mt('When self-creating account with e-mail as username, the following information will be provided by [_1]:',$usertypes->{$type}). |
$chgtext .= '<li>'.$infotitles->{$field}.'</li>'; |
'<ul>'; |
|
foreach my $field (@{$infofields}) { |
|
if ($cancreate{'emailusername'}{$type}{$field}) { |
|
$chgtext .= '<li>'.$infotitles->{$field}.'</li>'; |
|
} |
|
} |
|
} |
|
$chgtext .= '</ul>'; |
|
} else { |
|
$chgtext .= &mt('When self creating account with e-mail as username, no information besides e-mail address will be provided by [_1].',$usertypes->{$type}).'<br />'; |
} |
} |
} |
} |
$chgtext .= '</ul>'; |
|
} else { |
|
$chgtext .= &mt('When self creating account with e-mail as username, user will not provide any information besides e-mail address'); |
|
} |
} |
} |
} |
} elsif ($type eq 'notify') { |
} elsif ($type eq 'notify') { |