version 1.294, 2017/03/13 18:30:07
|
version 1.304, 2017/07/27 13:42:35
|
Line 27
|
Line 27
|
# |
# |
# |
# |
############################################################### |
############################################################### |
############################################################## |
############################################################### |
|
|
=pod |
=pod |
|
|
Line 220 sub handler {
|
Line 220 sub handler {
|
'coursedefaults','usersessions','loadbalancing', |
'coursedefaults','usersessions','loadbalancing', |
'requestauthor','selfenrollment','inststatus', |
'requestauthor','selfenrollment','inststatus', |
'ltitools','ssl','trust'],$dom); |
'ltitools','ssl','trust'],$dom); |
|
if (ref($domconfig{'ltitools'}) eq 'HASH') { |
|
my %encconfig = |
|
&Apache::lonnet::get_dom('encconfig',['ltitools'],$dom); |
|
if (ref($encconfig{'ltitools'}) eq 'HASH') { |
|
foreach my $id (keys(%{$domconfig{'ltitools'}})) { |
|
if (ref($domconfig{'ltitools'}{$id}) eq 'HASH') { |
|
foreach my $item ('key','secret') { |
|
$domconfig{'ltitools'}{$id}{$item} = $encconfig{'ltitools'}{$id}{$item}; |
|
} |
|
} |
|
} |
|
} |
|
} |
my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll', |
my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll', |
'autoupdate','autocreate','directorysrch','contacts', |
'autoupdate','autocreate','directorysrch','contacts', |
'usercreation','selfcreation','usermodification','scantron', |
'usercreation','selfcreation','usermodification','scantron', |
Line 268 sub handler {
|
Line 281 sub handler {
|
{col1 => 'Internal Authentication', |
{col1 => 'Internal Authentication', |
col2 => 'Value'}, |
col2 => 'Value'}, |
{col1 => 'Institutional user types', |
{col1 => 'Institutional user types', |
col2 => 'Assignable to e-mail usernames'}], |
col2 => 'Assignable to non-institutional users'}], |
print => \&print_defaults, |
print => \&print_defaults, |
modify => \&modify_defaults, |
modify => \&modify_defaults, |
}, |
}, |
Line 350 sub handler {
|
Line 363 sub handler {
|
col2 => 'Enabled?'}, |
col2 => 'Enabled?'}, |
{col1 => 'Institutional user type (login/SSO self-creation)', |
{col1 => 'Institutional user type (login/SSO self-creation)', |
col2 => 'Information user can enter'}, |
col2 => 'Information user can enter'}, |
{col1 => 'Self-creation with e-mail as username', |
{col1 => 'Self-creation with e-mail verification', |
col2 => 'Settings'}], |
col2 => 'Settings'}], |
print => \&print_selfcreation, |
print => \&print_selfcreation, |
modify => \&modify_selfcreation, |
modify => \&modify_selfcreation, |
Line 488 sub handler {
|
Line 501 sub handler {
|
}, |
}, |
'ltitools' => |
'ltitools' => |
{text => 'External Tools (LTI)', |
{text => 'External Tools (LTI)', |
help => 'Domain_configuration_LTI_Tools', |
help => 'Domain_Configuration_LTI_Tools', |
header => [{col1 => 'Setting', |
header => [{col1 => 'Setting', |
col2 => 'Value',}], |
col2 => 'Value',}], |
print => \&print_ltitools, |
print => \&print_ltitools, |
Line 677 sub process_changes {
|
Line 690 sub process_changes {
|
} elsif ($action eq 'autocreate') { |
} elsif ($action eq 'autocreate') { |
$output = &modify_autocreate($dom,%domconfig); |
$output = &modify_autocreate($dom,%domconfig); |
} elsif ($action eq 'directorysrch') { |
} elsif ($action eq 'directorysrch') { |
$output = &modify_directorysrch($dom,%domconfig); |
$output = &modify_directorysrch($dom,$lastactref,%domconfig); |
} elsif ($action eq 'usercreation') { |
} elsif ($action eq 'usercreation') { |
$output = &modify_usercreation($dom,%domconfig); |
$output = &modify_usercreation($dom,%domconfig); |
} elsif ($action eq 'selfcreation') { |
} elsif ($action eq 'selfcreation') { |
Line 3248 sub print_helpsettings {
|
Line 3261 sub print_helpsettings {
|
my $css_class; |
my $css_class; |
my %existing=&Apache::lonnet::dump('roles',$dom,$confname,'rolesdef_'); |
my %existing=&Apache::lonnet::dump('roles',$dom,$confname,'rolesdef_'); |
my (%customroles,%ordered,%current); |
my (%customroles,%ordered,%current); |
if (ref($settings->{'adhoc'}) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
%current = %{$settings->{'adhoc'}}; |
if (ref($settings->{'adhoc'}) eq 'HASH') { |
|
%current = %{$settings->{'adhoc'}}; |
|
} |
} |
} |
my $count = 0; |
my $count = 0; |
foreach my $key (sort(keys(%existing))) { |
foreach my $key (sort(keys(%existing))) { |
Line 3745 sub print_ltitools {
|
Line 3760 sub print_ltitools {
|
if (ref($settings->{$item}->{'display'}) eq 'HASH') { |
if (ref($settings->{$item}->{'display'}) eq 'HASH') { |
if ($settings->{$item}->{'display'}->{'target'} eq 'window') { |
if ($settings->{$item}->{'display'}->{'target'} eq 'window') { |
$currdisp{'window'} = ' checked="checked"'; |
$currdisp{'window'} = ' checked="checked"'; |
|
} elsif ($settings->{$item}->{'display'}->{'target'} eq 'tab') { |
|
$currdisp{'tab'} = ' checked="checked"'; |
} else { |
} else { |
$currdisp{'iframe'} = ' checked="checked"'; |
$currdisp{'iframe'} = ' checked="checked"'; |
} |
} |
Line 3754 sub print_ltitools {
|
Line 3771 sub print_ltitools {
|
if ($settings->{$item}->{'display'}->{'height'} =~ /^(\d+)$/) { |
if ($settings->{$item}->{'display'}->{'height'} =~ /^(\d+)$/) { |
$currdisp{'height'} = $1; |
$currdisp{'height'} = $1; |
} |
} |
|
$currdisp{'linktext'} = $settings->{$item}->{'display'}->{'linktext'}; |
|
$currdisp{'explanation'} = $settings->{$item}->{'display'}->{'explanation'}; |
} else { |
} else { |
$currdisp{'iframe'} = ' checked="checked"'; |
$currdisp{'iframe'} = ' checked="checked"'; |
} |
} |
foreach my $disp ('iframe','window') { |
foreach my $disp ('iframe','tab','window') { |
$datatable .= '<label><input type="radio" name="ltitools_target_'.$i.'" value="'.$disp.'"'.$currdisp{$disp}.' />'. |
$datatable .= '<label><input type="radio" name="ltitools_target_'.$i.'" value="'.$disp.'"'.$currdisp{$disp}.' />'. |
$lt{$disp}.'</label>'.(' 'x2); |
$lt{$disp}.'</label>'.(' 'x2); |
} |
} |
Line 3767 sub print_ltitools {
|
Line 3786 sub print_ltitools {
|
'<input type="text" name="ltitools_'.$dimen.'_'.$i.'" size="5" value="'.$currdisp{$dimen}.'" /></label>'. |
'<input type="text" name="ltitools_'.$dimen.'_'.$i.'" size="5" value="'.$currdisp{$dimen}.'" /></label>'. |
(' 'x2); |
(' 'x2); |
} |
} |
|
$datatable .= '<br />'. |
|
'<div class="LC_left_float">'.$lt{'linktext'}.'<br />'. |
|
'<input type="text" name="ltitools_linktext_'.$i.'" size="25" value="'.$currdisp{'linktext'}.'" /></label></div>'. |
|
'<div class="LC_left_float">'.$lt{'explanation'}.'<br />'. |
|
'<textarea name="ltitools_explanation_'.$i.'" rows="5" cols="40">'.$currdisp{'explanation'}. |
|
'</textarea></div><div style=""></div><br />'; |
$datatable .= '<br />'; |
$datatable .= '<br />'; |
foreach my $extra ('passback','roster') { |
foreach my $extra ('passback','roster') { |
my $checkedon = ''; |
my $checkedon = ''; |
Line 3848 sub print_ltitools {
|
Line 3873 sub print_ltitools {
|
} |
} |
} |
} |
$datatable .= '<fieldset><legend>'.&mt('Configurable in course').'</legend><span class="LC_nobreak">'; |
$datatable .= '<fieldset><legend>'.&mt('Configurable in course').'</legend><span class="LC_nobreak">'; |
foreach my $item ('label','title','target') { |
foreach my $item ('label','title','target','linktext','explanation') { |
my $checked; |
my $checked; |
if ($courseconfig{$item}) { |
if ($courseconfig{$item}) { |
$checked = ' checked="checked"'; |
$checked = ' checked="checked"'; |
Line 3916 sub print_ltitools {
|
Line 3941 sub print_ltitools {
|
'<span class="LC_nobreak">'.&mt('Display target:'); |
'<span class="LC_nobreak">'.&mt('Display target:'); |
my %defaultdisp; |
my %defaultdisp; |
$defaultdisp{'iframe'} = ' checked="checked"'; |
$defaultdisp{'iframe'} = ' checked="checked"'; |
foreach my $disp ('iframe','window') { |
foreach my $disp ('iframe','tab','window') { |
$datatable .= '<label><input type="radio" name="ltitools_add_target" value="'.$disp.'"'.$defaultdisp{$disp}.' />'. |
$datatable .= '<label><input type="radio" name="ltitools_add_target" value="'.$disp.'"'.$defaultdisp{$disp}.' />'. |
$lt{$disp}.'</label>'.(' 'x2); |
$lt{$disp}.'</label>'.(' 'x2); |
} |
} |
Line 3926 sub print_ltitools {
|
Line 3951 sub print_ltitools {
|
'<input type="text" name="ltitools_add_'.$dimen.'" size="5" /></label>'. |
'<input type="text" name="ltitools_add_'.$dimen.'" size="5" /></label>'. |
(' 'x2); |
(' 'x2); |
} |
} |
$datatable .= '<br />'; |
$datatable .= '<br />'. |
|
'<div class="LC_left_float">'.$lt{'linktext'}.'<br />'. |
|
'<input type="text" name="ltitools_add_linktext" size="5" /></label></div>'. |
|
'<div class="LC_left_float">'.$lt{'explanation'}.'<br />'. |
|
'<textarea name=ltitools_add_explanation" rows="5" cols="40"></textarea>'. |
|
'</div><div style=""></div><br />'; |
foreach my $extra ('passback','roster') { |
foreach my $extra ('passback','roster') { |
$datatable .= $lt{$extra}.' '. |
$datatable .= $lt{$extra}.' '. |
'<label><input type="radio" name="ltitools_add_'.$extra.'" value="1" />'. |
'<label><input type="radio" name="ltitools_add_'.$extra.'" value="1" />'. |
Line 3964 sub print_ltitools {
|
Line 3994 sub print_ltitools {
|
} |
} |
$datatable .= '</tr></table></fieldset>'. |
$datatable .= '</tr></table></fieldset>'. |
'<fieldset><legend>'.&mt('Configurable in course').'</legend><span class="LC_nobreak">'; |
'<fieldset><legend>'.&mt('Configurable in course').'</legend><span class="LC_nobreak">'; |
foreach my $item ('label','title','target') { |
foreach my $item ('label','title','target','linktext','explanation') { |
$datatable .= '<label>'. |
$datatable .= '<label>'. |
'<input type="checkbox" name="ltitools_courseconfig" value="'.$item.'" checked="checked" />'. |
'<input type="checkbox" name="ltitools_courseconfig" value="'.$item.'" checked="checked" />'. |
$lt{'crs'.$item}.'</label>'.(' ' x2)."\n"; |
$lt{'crs'.$item}.'</label>'.(' ' x2)."\n"; |
} |
} |
$datatable .= '</span></fieldset>'. |
$datatable .= '</span></fieldset>'. |
'<fieldset><legend>'.&mt('Custom items sent on launch').'</legend>'. |
'<fieldset><legend>'.&mt('Custom items sent on launch').'</legend>'. |
Line 3985 sub print_ltitools {
|
Line 4015 sub print_ltitools {
|
|
|
sub ltitools_names { |
sub ltitools_names { |
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
'title' => 'Title', |
'title' => 'Title', |
'version' => 'Version', |
'version' => 'Version', |
'msgtype' => 'Message Type', |
'msgtype' => 'Message Type', |
'url' => 'URL', |
'url' => 'URL', |
'key' => 'Key', |
'key' => 'Key', |
'secret' => 'Secret', |
'secret' => 'Secret', |
'icon' => 'Icon', |
'icon' => 'Icon', |
'user' => 'Username:domain', |
'user' => 'Username:domain', |
'fullname' => 'Full Name', |
'fullname' => 'Full Name', |
'firstname' => 'First Name', |
'firstname' => 'First Name', |
'lastname' => 'Last Name', |
'lastname' => 'Last Name', |
'email' => 'E-mail', |
'email' => 'E-mail', |
'roles' => 'Role', |
'roles' => 'Role', |
'window' => 'Window/Tab', |
'window' => 'Window', |
'iframe' => 'iFrame', |
'tab' => 'Tab', |
'height' => 'Height', |
'iframe' => 'iFrame', |
'width' => 'Width', |
'height' => 'Height', |
'passback' => 'Tool can return grades:', |
'width' => 'Width', |
'roster' => 'Tool can retrieve roster:', |
'linktext' => 'Default Link Text', |
'crstarget' => 'Display target', |
'explanation' => 'Default Explanation', |
'crslabel' => 'Course label', |
'passback' => 'Tool can return grades:', |
'crstitle' => 'Course title', |
'roster' => 'Tool can retrieve roster:', |
|
'crstarget' => 'Display target', |
|
'crslabel' => 'Course label', |
|
'crstitle' => 'Course title', |
|
'crslinktext' => 'Link Text', |
|
'crsexplanation' => 'Explanation', |
); |
); |
return %lt; |
return %lt; |
} |
} |
Line 4261 sub print_coursedefaults {
|
Line 4296 sub print_coursedefaults {
|
foreach my $type (@types) { |
foreach my $type (@types) { |
$datatable .= '<td align="center">'.&mt($type).'<br />'. |
$datatable .= '<td align="center">'.&mt($type).'<br />'. |
'<input type="text" name="mysqltables_'.$type.'"'. |
'<input type="text" name="mysqltables_'.$type.'"'. |
' value="'.$currmysql{$type}.'" size="5" /></td>'; |
' value="'.$currmysql{$type}.'" size="8" /></td>'; |
} |
} |
$datatable .= '</tr></table></td></tr>'."\n"; |
$datatable .= '</tr></table></td></tr>'."\n"; |
$itemcount ++; |
$itemcount ++; |
Line 5355 sub loadbalancing_titles {
|
Line 5390 sub loadbalancing_titles {
|
'_LC_ipchange' => &mt('Non-SSO users with IP mismatch'), |
'_LC_ipchange' => &mt('Non-SSO users with IP mismatch'), |
); |
); |
my @alltypes = ('_LC_adv','_LC_author','_LC_internetdom','_LC_external','_LC_ipchangesso','_LC_ipchange'); |
my @alltypes = ('_LC_adv','_LC_author','_LC_internetdom','_LC_external','_LC_ipchangesso','_LC_ipchange'); |
|
my @available; |
if (ref($types) eq 'ARRAY') { |
if (ref($types) eq 'ARRAY') { |
unshift(@alltypes,@{$types},'default'); |
@available = @{$types}; |
|
} |
|
unless (grep(/^default$/,@available)) { |
|
push(@available,'default'); |
} |
} |
|
unshift(@alltypes,@available); |
my %titles; |
my %titles; |
foreach my $type (@alltypes) { |
foreach my $type (@alltypes) { |
if ($type =~ /^_LC_/) { |
if ($type =~ /^_LC_/) { |
Line 5712 sub print_usercreation {
|
Line 5752 sub print_usercreation {
|
|
|
sub print_selfcreation { |
sub print_selfcreation { |
my ($position,$dom,$settings,$rowtotal) = @_; |
my ($position,$dom,$settings,$rowtotal) = @_; |
my (@selfcreate,$createsettings,$processing,$datatable); |
my (@selfcreate,$createsettings,$processing,$emailverified,$emaildomain,$datatable); |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
if (ref($settings->{'cancreate'}) eq 'HASH') { |
if (ref($settings->{'cancreate'}) eq 'HASH') { |
$createsettings = $settings->{'cancreate'}; |
$createsettings = $settings->{'cancreate'}; |
Line 5729 sub print_selfcreation {
|
Line 5769 sub print_selfcreation {
|
if (ref($createsettings->{'selfcreateprocessing'}) eq 'HASH') { |
if (ref($createsettings->{'selfcreateprocessing'}) eq 'HASH') { |
$processing = $createsettings->{'selfcreateprocessing'}; |
$processing = $createsettings->{'selfcreateprocessing'}; |
} |
} |
|
if (ref($createsettings->{'emailverified'}) eq 'HASH') { |
|
$emailverified = $createsettings->{'emailverified'}; |
|
} |
|
if (ref($createsettings->{'emaildomain'}) eq 'HASH') { |
|
$emaildomain = $createsettings->{'emaildomain'}; |
|
} |
} |
} |
} |
} |
} |
} |
my %radiohash; |
my %radiohash; |
my $numinrow = 4; |
my $numinrow = 4; |
map { $radiohash{'cancreate_'.$_} = 1; } @selfcreate; |
map { $radiohash{'cancreate_'.$_} = 1; } @selfcreate; |
|
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
if ($position eq 'top') { |
if ($position eq 'top') { |
my %choices = &Apache::lonlocal::texthash ( |
my %choices = &Apache::lonlocal::texthash ( |
cancreate_login => 'Institutional Login', |
cancreate_login => 'Institutional Login', |
Line 5750 sub print_selfcreation {
|
Line 5797 sub print_selfcreation {
|
\%choices,$itemcount,$onclick); |
\%choices,$itemcount,$onclick); |
$$rowtotal += $itemcount; |
$$rowtotal += $itemcount; |
|
|
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, |
Line 5801 sub print_selfcreation {
|
Line 5846 sub print_selfcreation {
|
$$rowtotal ++; |
$$rowtotal ++; |
} elsif ($position eq 'middle') { |
} elsif ($position eq 'middle') { |
my %domconf = &Apache::lonnet::get_dom('configuration',['usermodification'],$dom); |
my %domconf = &Apache::lonnet::get_dom('configuration',['usermodification'],$dom); |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
my @posstypes; |
$usertypes->{'default'} = $othertitle; |
|
if (ref($types) eq 'ARRAY') { |
if (ref($types) eq 'ARRAY') { |
push(@{$types},'default'); |
@posstypes = @{$types}; |
$usertypes->{'default'} = $othertitle; |
} |
foreach my $status (@{$types}) { |
unless (grep(/^default$/,@posstypes)) { |
$datatable .= &modifiable_userdata_row('selfcreate',$status,$domconf{'usermodification'}, |
push(@posstypes,'default'); |
$numinrow,$$rowtotal,$usertypes); |
} |
$$rowtotal ++; |
my %usertypeshash; |
} |
if (ref($usertypes) eq 'HASH') { |
|
%usertypeshash = %{$usertypes}; |
|
} |
|
$usertypeshash{'default'} = $othertitle; |
|
foreach my $status (@posstypes) { |
|
$datatable .= &modifiable_userdata_row('selfcreate',$status,$domconf{'usermodification'}, |
|
$numinrow,$$rowtotal,\%usertypeshash); |
|
$$rowtotal ++; |
} |
} |
} else { |
} else { |
my %choices = &Apache::lonlocal::texthash ( |
my %choices = &Apache::lonlocal::texthash ( |
cancreate_email => 'E-mail address as username', |
cancreate_email => 'Non-institutional username (e-mail verification)', |
); |
); |
my @toggles = sort(keys(%choices)); |
my @toggles = sort(keys(%choices)); |
my %defaultchecked = ( |
my %defaultchecked = ( |
Line 5828 sub print_selfcreation {
|
Line 5879 sub print_selfcreation {
|
my $onclick = "toggleDisplay(this.form,'emailoptions');"; |
my $onclick = "toggleDisplay(this.form,'emailoptions');"; |
my $additional = '<div id="emailoptions" style="display: '.$display.'">'; |
my $additional = '<div id="emailoptions" style="display: '.$display.'">'; |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom); |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom); |
my $usertypes = {}; |
my $order; |
my $order = []; |
if (ref($domdefaults{'inststatusguest'}) eq 'ARRAY') { |
if ((ref($domdefaults{'inststatustypes'}) eq 'HASH') && (ref($domdefaults{'inststatusguest'}) eq 'ARRAY')) { |
|
$usertypes = $domdefaults{'inststatustypes'}; |
|
$order = $domdefaults{'inststatusguest'}; |
$order = $domdefaults{'inststatusguest'}; |
} |
} |
|
my (@ordered,%usertypeshash); |
if (ref($order) eq 'ARRAY') { |
if (ref($order) eq 'ARRAY') { |
push(@{$order},'default'); |
@ordered = @{$order}; |
if (@{$order} > 1) { |
} |
$usertypes->{'default'} = &mt('Other users'); |
if (@ordered) { |
$additional .= '<table><tr>'; |
unless (grep(/^default$/,@ordered)) { |
foreach my $status (@{$order}) { |
push(@ordered,'default'); |
$additional .= '<th>'.$usertypes->{$status}.'</th>'; |
} |
} |
if (ref($usertypes) eq 'HASH') { |
$additional .= '</tr><tr>'; |
%usertypeshash = %{$usertypes}; |
foreach my $status (@{$order}) { |
|
$additional .= '<td>'.&email_as_username($rowtotal,$processing,$status).'</td>'; |
|
} |
|
$additional .= '</tr></table>'; |
|
} else { |
|
$usertypes->{'default'} = &mt('All users'); |
|
$additional .= &email_as_username($rowtotal,$processing); |
|
} |
} |
|
$usertypeshash{'default'} = $othertitle; |
|
$additional .= '<table><tr>'; |
|
foreach my $status (@ordered) { |
|
$additional .= '<th align="center">'.$usertypeshash{$status}.'</th>'; |
|
} |
|
$additional .= '</tr><tr>'; |
|
foreach my $status (@ordered) { |
|
$additional .= '<td align="left" valign="top">'.&validate_by_email($rowtotal,$processing,$status).'</td>'; |
|
} |
|
$additional .= '</tr></table><br />'. |
|
'<table><tr>'; |
|
foreach my $status (@ordered) { |
|
$additional .= '<th align="center">'.$usertypeshash{$status}.'</th>'; |
|
} |
|
$additional .= '</tr><tr>'; |
|
foreach my $status (@ordered) { |
|
$additional .= '<td align="left" valign="top">'.&email_as_username($rowtotal,$emailverified,$emaildomain,$status).'</td>'; |
|
} |
|
$additional .= '</tr></table>'; |
|
|
|
} else { |
|
$usertypeshash{'default'} = $othertitle; |
|
$additional .= &mt('Approval:').' '.&validate_by_email($rowtotal,$processing).'<br />'. |
|
&mt('Username:').' '.&email_as_username($rowtotal,$emailverified,$emaildomain); |
} |
} |
$additional .= '</div>'."\n"; |
$additional .= '</div>'."\n"; |
|
|
Line 5861 sub print_selfcreation {
|
Line 5928 sub print_selfcreation {
|
$$rowtotal ++; |
$$rowtotal ++; |
my ($infofields,$infotitles) = &Apache::loncommon::emailusername_info(); |
my ($infofields,$infotitles) = &Apache::loncommon::emailusername_info(); |
$numinrow = 1; |
$numinrow = 1; |
if (ref($order) eq 'ARRAY') { |
foreach my $status (@ordered) { |
foreach my $status (@{$order}) { |
$datatable .= &modifiable_userdata_row('cancreate','emailusername_'.$status,$settings, |
$datatable .= &modifiable_userdata_row('cancreate','emailusername_'.$status,$settings, |
$numinrow,$$rowtotal,\%usertypeshash,$infofields,$infotitles); |
$numinrow,$$rowtotal,$usertypes,$infofields,$infotitles); |
$$rowtotal ++; |
$$rowtotal ++; |
|
} |
|
} |
} |
my ($emailrules,$emailruleorder) = |
my ($emailrules,$emailruleorder) = |
&Apache::lonnet::inst_userrules($dom,'email'); |
&Apache::lonnet::inst_userrules($dom,'email'); |
Line 5882 sub print_selfcreation {
|
Line 5947 sub print_selfcreation {
|
return $datatable; |
return $datatable; |
} |
} |
|
|
sub email_as_username { |
sub validate_by_email { |
my ($rowtotal,$processing,$type) = @_; |
my ($rowtotal,$processing,$type) = @_; |
my %choices = |
my %choices = |
&Apache::lonlocal::texthash ( |
&Apache::lonlocal::texthash ( |
automatic => 'Automatic approval', |
automatic => 'Automatic approval', |
approval => 'Queued for approval', |
approval => 'Queued for approval', |
|
notinuse => 'Unavailable', |
); |
); |
my $output; |
my $output; |
foreach my $option ('automatic','approval') { |
my @options = ('automatic','approval'); |
|
unless ($type eq '') { |
|
push(@options,'notinuse'); |
|
} |
|
foreach my $option (@options) { |
my $checked; |
my $checked; |
if (ref($processing) eq 'HASH') { |
if (ref($processing) eq 'HASH') { |
if ($type eq '') { |
if ($type eq '') { |
Line 5935 sub email_as_username {
|
Line 6005 sub email_as_username {
|
return $output; |
return $output; |
} |
} |
|
|
|
sub email_as_username { |
|
my ($rowtotal,$emailverified,$emaildomain,$type) = @_; |
|
my %choices = |
|
&Apache::lonlocal::texthash ( |
|
email => 'Username is e-mail', |
|
other => 'Username is chosen', |
|
); |
|
my $name = 'cancreate_emailverified'; |
|
my $condition = 'cancreate_emaildomain'; |
|
if (($type ne '') && ($type ne 'default')) { |
|
$name .= '_'.$type; |
|
$condition .= '_'.$type; |
|
} |
|
my $display = 'none'; |
|
my $onclick = "toggleDisplay(this.form,'$name');"; |
|
|
|
my $output; |
|
foreach my $option ('email','other') { |
|
my ($checked,$domain); |
|
if (ref($emailverified) eq 'HASH') { |
|
if ($type eq '') { |
|
if (!exists($emailverified->{'default'})) { |
|
if ($option eq 'email') { |
|
$checked = ' checked="checked"'; |
|
} |
|
} else { |
|
if ($emailverified->{'default'} eq $option) { |
|
$checked = ' checked="checked"'; |
|
} |
|
} |
|
} else { |
|
if (!exists($emailverified->{$type})) { |
|
if ($option eq 'email') { |
|
$checked = ' checked="checked"'; |
|
} |
|
} else { |
|
if ($emailverified->{$type} eq $option) { |
|
$checked = ' checked="checked"'; |
|
if ($option eq 'other') { |
|
$display = 'inline'; |
|
} |
|
} |
|
} |
|
} |
|
} elsif ($option eq 'email') { |
|
$checked = ' checked="checked"'; |
|
} |
|
$output .= '<span class="LC_nobreak"><label>'. |
|
'<input type="radio" name="'.$name.'"'. |
|
$checked.' value="'.$option.'" onclick="'.$onclick.'" />'. |
|
$choices{$option}.'</label></span>'; |
|
if ($type eq '') { |
|
$output .= ' '; |
|
} else { |
|
$output .= '<br />'; |
|
} |
|
} |
|
my $domain; |
|
if (ref($emaildomain) eq 'HASH') { |
|
if ($type eq '') { |
|
if (exists($emaildomain->{'default'})) { |
|
$domain = $emaildomain->{'default'}; |
|
} |
|
} else { |
|
if (exists($emaildomain->{$type})) { |
|
$domain = $emaildomain->{$type}; |
|
} |
|
} |
|
} |
|
$output .= '<div id="'.$name.'" style="display: '.$display.';">'. |
|
'<span class="LC_domprefs_email">'.&mt('E-mail domain').'</span> '. |
|
'<input type="text" name="'.$condition.'" value="'.$domain.'" size="10" />'. |
|
'</div>'; |
|
$$rowtotal ++; |
|
return $output; |
|
} |
|
|
sub captcha_choice { |
sub captcha_choice { |
my ($context,$settings,$itemcount) = @_; |
my ($context,$settings,$itemcount) = @_; |
my ($keyentry,$currpub,$currpriv,%checked,$rowname,$pubtext,$privtext, |
my ($keyentry,$currpub,$currpriv,%checked,$rowname,$pubtext,$privtext, |
Line 9449 sub process_textbook_image {
|
Line 9596 sub process_textbook_image {
|
sub modify_ltitools { |
sub modify_ltitools { |
my ($r,$dom,$action,$lastactref,%domconfig) = @_; |
my ($r,$dom,$action,$lastactref,%domconfig) = @_; |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1); |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1); |
my ($newid,@allpos,%changes,%confhash,$errors,$resulttext); |
my ($newid,@allpos,%changes,%confhash,%encconfig,$errors,$resulttext); |
my $confname = $dom.'-domainconfig'; |
my $confname = $dom.'-domainconfig'; |
my $servadm = $r->dir_config('lonAdmEMail'); |
my $servadm = $r->dir_config('lonAdmEMail'); |
my ($configuserok,$author_ok,$switchserver) = &config_check($dom,$confname,$servadm); |
my ($configuserok,$author_ok,$switchserver) = &config_check($dom,$confname,$servadm); |
Line 9474 sub modify_ltitools {
|
Line 9621 sub modify_ltitools {
|
foreach my $item ('title','url','key','secret') { |
foreach my $item ('title','url','key','secret') { |
$env{'form.ltitools_add_'.$item} =~ s/(`)/'/g; |
$env{'form.ltitools_add_'.$item} =~ s/(`)/'/g; |
if ($env{'form.ltitools_add_'.$item}) { |
if ($env{'form.ltitools_add_'.$item}) { |
$confhash{$newid}{$item} = $env{'form.ltitools_add_'.$item}; |
if (($item eq 'key') || ($item eq 'secret')) { |
|
$encconfig{$newid}{$item} = $env{'form.ltitools_add_'.$item}; |
|
} else { |
|
$confhash{$newid}{$item} = $env{'form.ltitools_add_'.$item}; |
|
} |
} |
} |
} |
} |
if ($env{'form.ltitools_add_version'} eq 'LTI-1p0') { |
if ($env{'form.ltitools_add_version'} eq 'LTI-1p0') { |
Line 9483 sub modify_ltitools {
|
Line 9634 sub modify_ltitools {
|
if ($env{'form.ltitools_add_msgtype'} eq 'basic-lti-launch-request') { |
if ($env{'form.ltitools_add_msgtype'} eq 'basic-lti-launch-request') { |
$confhash{$newid}{'msgtype'} = $env{'form.ltitools_add_msgtype'}; |
$confhash{$newid}{'msgtype'} = $env{'form.ltitools_add_msgtype'}; |
} |
} |
foreach my $item ('width','height') { |
foreach my $item ('width','height','linktext','explanation') { |
$env{'form.ltitools_add_'.$item} =~ s/^\s+//; |
$env{'form.ltitools_add_'.$item} =~ s/^\s+//; |
$env{'form.ltitools_add_'.$item} =~ s/\s+$//; |
$env{'form.ltitools_add_'.$item} =~ s/\s+$//; |
if ($env{'form.ltitools_add_'.$item} =~ /^\d+$/) { |
if (($item eq 'width') || ($item eq 'height')) { |
$confhash{$newid}{'display'}{$item} = $env{'form.ltitools_add_'.$item}; |
if ($env{'form.ltitools_add_'.$item} =~ /^\d+$/) { |
|
$confhash{$newid}{'display'}{$item} = $env{'form.ltitools_add_'.$item}; |
|
} |
|
} else { |
|
if ($env{'form.ltitools_add_'.$item} ne '') { |
|
$confhash{$newid}{'display'}{$item} = $env{'form.ltitools_add_'.$item}; |
|
} |
} |
} |
} |
} |
if ($env{'form.ltitools_add_target'} eq 'window') { |
if ($env{'form.ltitools_add_target'} eq 'window') { |
$confhash{$newid}{'display'}{'target'} = $env{'form.ltitools_add_target'}; |
$confhash{$newid}{'display'}{'target'} = $env{'form.ltitools_add_target'}; |
|
} elsif ($env{'form.ltitools_add_target'} eq 'tab') { |
|
$confhash{$newid}{'display'}{'target'} = $env{'form.ltitools_add_target'}; |
} else { |
} else { |
$confhash{$newid}{'display'}{'target'} = 'iframe'; |
$confhash{$newid}{'display'}{'target'} = 'iframe'; |
} |
} |
Line 9575 sub modify_ltitools {
|
Line 9734 sub modify_ltitools {
|
} else { |
} else { |
my $newpos = $env{'form.ltitools_'.$itemid}; |
my $newpos = $env{'form.ltitools_'.$itemid}; |
$newpos =~ s/\D+//g; |
$newpos =~ s/\D+//g; |
foreach my $item ('title','url','key','secret') { |
foreach my $item ('title','url') { |
$confhash{$itemid}{$item} = $env{'form.ltitools_'.$item.'_'.$i}; |
$confhash{$itemid}{$item} = $env{'form.ltitools_'.$item.'_'.$i}; |
if ($domconfig{$action}{$itemid}{$item} ne $confhash{$itemid}{$item}) { |
if ($domconfig{$action}{$itemid}{$item} ne $confhash{$itemid}{$item}) { |
$changes{$itemid} = 1; |
$changes{$itemid} = 1; |
} |
} |
} |
} |
|
foreach my $item ('key','secret') { |
|
$encconfig{$itemid}{$item} = $env{'form.ltitools_'.$item.'_'.$i}; |
|
if ($domconfig{$action}{$itemid}{$item} ne $encconfig{$itemid}{$item}) { |
|
$changes{$itemid} = 1; |
|
} |
|
} |
if ($env{'form.ltitools_version_'.$i} eq 'LTI-1p0') { |
if ($env{'form.ltitools_version_'.$i} eq 'LTI-1p0') { |
$confhash{$itemid}{'version'} = $env{'form.ltitools_version_'.$i}; |
$confhash{$itemid}{'version'} = $env{'form.ltitools_version_'.$i}; |
} |
} |
Line 9599 sub modify_ltitools {
|
Line 9764 sub modify_ltitools {
|
} else { |
} else { |
$changes{$itemid} = 1; |
$changes{$itemid} = 1; |
} |
} |
|
} elsif (ref($domconfig{$action}{$itemid}{'display'}) eq 'HASH') { |
|
if ($domconfig{$action}{$itemid}{'display'}{$size} ne '') { |
|
$changes{$itemid} = 1; |
|
} |
|
} |
|
} |
|
foreach my $item ('linktext','explanation') { |
|
$env{'form.ltitools_'.$item.'_'.$i} =~ s/^\s+//; |
|
$env{'form.ltitools_'.$item.'_'.$i} =~ s/\s+$//; |
|
if ($env{'form.ltitools_'.$item.'_'.$i} ne '') { |
|
$confhash{$itemid}{'display'}{$item} = $env{'form.ltitools_'.$item.'_'.$i}; |
|
if (ref($domconfig{$action}{$itemid}{'display'}) eq 'HASH') { |
|
if ($domconfig{$action}{$itemid}{'display'}{$item} ne $confhash{$itemid}{'display'}{$item}) { |
|
$changes{$itemid} = 1; |
|
} |
|
} else { |
|
$changes{$itemid} = 1; |
|
} |
|
} elsif (ref($domconfig{$action}{$itemid}{'display'}) eq 'HASH') { |
|
if ($domconfig{$action}{$itemid}{'display'}{$item} ne '') { |
|
$changes{$itemid} = 1; |
|
} |
} |
} |
} |
} |
if ($env{'form.ltitools_target_'.$i} eq 'window') { |
if ($env{'form.ltitools_target_'.$i} eq 'window') { |
$confhash{$itemid}{'display'}{'target'} = $env{'form.ltitools_target_'.$i}; |
$confhash{$itemid}{'display'}{'target'} = $env{'form.ltitools_target_'.$i}; |
|
} elsif ($env{'form.ltitools_target_'.$i} eq 'tab') { |
|
$confhash{$itemid}{'display'}{'target'} = $env{'form.ltitools_target_'.$i}; |
} else { |
} else { |
$confhash{$itemid}{'display'}{'target'} = 'iframe'; |
$confhash{$itemid}{'display'}{'target'} = 'iframe'; |
} |
} |
Line 9622 sub modify_ltitools {
|
Line 9811 sub modify_ltitools {
|
} |
} |
} |
} |
my @courseconfig = &Apache::loncommon::get_env_multiple('form.ltitools_courseconfig_'.$i); |
my @courseconfig = &Apache::loncommon::get_env_multiple('form.ltitools_courseconfig_'.$i); |
foreach my $item ('label','title','target') { |
foreach my $item ('label','title','target','linktext','explanation') { |
if (grep(/^\Q$item\E$/,@courseconfig)) { |
if (grep(/^\Q$item\E$/,@courseconfig)) { |
$confhash{$itemid}{'crsconf'}{$item} = 1; |
$confhash{$itemid}{'crsconf'}{$item} = 1; |
if (ref($domconfig{$action}{$itemid}{'crsconf'}) eq 'HASH') { |
if (ref($domconfig{$action}{$itemid}{'crsconf'}) eq 'HASH') { |
Line 9761 sub modify_ltitools {
|
Line 9950 sub modify_ltitools {
|
my $putresult = &Apache::lonnet::put_dom('configuration',\%ltitoolshash, |
my $putresult = &Apache::lonnet::put_dom('configuration',\%ltitoolshash, |
$dom); |
$dom); |
if ($putresult eq 'ok') { |
if ($putresult eq 'ok') { |
|
my %ltienchash = ( |
|
$action => { %encconfig } |
|
); |
|
&Apache::lonnet::put_dom('encconfig',\%ltienchash,$dom); |
if (keys(%changes) > 0) { |
if (keys(%changes) > 0) { |
my $cachetime = 24*60*60; |
my $cachetime = 24*60*60; |
&Apache::lonnet::do_cache_new('ltitools',$dom,\%confhash,$cachetime); |
my %ltiall = %confhash; |
|
foreach my $id (keys(%ltiall)) { |
|
if (ref($encconfig{$id}) eq 'HASH') { |
|
foreach my $item ('key','secret') { |
|
$ltiall{$id}{$item} = $encconfig{$id}{$item}; |
|
} |
|
} |
|
} |
|
&Apache::lonnet::do_cache_new('ltitools',$dom,\%ltiall,$cachetime); |
if (ref($lastactref) eq 'HASH') { |
if (ref($lastactref) eq 'HASH') { |
$lastactref->{'ltitools'} = 1; |
$lastactref->{'ltitools'} = 1; |
} |
} |
Line 9787 sub modify_ltitools {
|
Line 9988 sub modify_ltitools {
|
$resulttext .= '</li><ul>'; |
$resulttext .= '</li><ul>'; |
my $position = $pos + 1; |
my $position = $pos + 1; |
$resulttext .= '<li>'.&mt('Order: [_1]',$position).'</li>'; |
$resulttext .= '<li>'.&mt('Order: [_1]',$position).'</li>'; |
foreach my $item ('version','msgtype','url','key') { |
foreach my $item ('version','msgtype','url') { |
if ($confhash{$itemid}{$item} ne '') { |
if ($confhash{$itemid}{$item} ne '') { |
$resulttext .= '<li>'.$lt{$item}.': '.$confhash{$itemid}{$item}.'</li>'; |
$resulttext .= '<li>'.$lt{$item}.': '.$confhash{$itemid}{$item}.'</li>'; |
} |
} |
} |
} |
if ($confhash{$itemid}{'secret'} ne '') { |
if ($encconfig{$itemid}{'key'} ne '') { |
|
$resulttext .= '<li>'.$lt{'key'}.': '.$encconfig{$itemid}{'key'}.'</li>'; |
|
} |
|
if ($encconfig{$itemid}{'secret'} ne '') { |
$resulttext .= '<li>'.$lt{'secret'}.': '; |
$resulttext .= '<li>'.$lt{'secret'}.': '; |
my $num = length($confhash{$itemid}{'secret'}); |
my $num = length($encconfig{$itemid}{'secret'}); |
$resulttext .= ('*'x$num).'</li>'; |
$resulttext .= ('*'x$num).'</li>'; |
} |
} |
$resulttext .= '<li>'.&mt('Configurable in course:'); |
$resulttext .= '<li>'.&mt('Configurable in course:'); |
my @possconfig = ('label','title','target'); |
my @possconfig = ('label','title','target','linktext','explanation'); |
my $numconfig = 0; |
my $numconfig = 0; |
if (ref($confhash{$itemid}{'crsconf'}) eq 'HASH') { |
if (ref($confhash{$itemid}{'crsconf'}) eq 'HASH') { |
foreach my $item (@possconfig) { |
foreach my $item (@possconfig) { |
if ($confhash{$itemid}{'crsconf'}{$item}) { |
if ($confhash{$itemid}{'crsconf'}{$item}) { |
$numconfig ++; |
$numconfig ++; |
$resulttext .= ' '.$lt{'crs'.$item}; |
$resulttext .= ' "'.$lt{'crs'.$item}.'"'; |
} |
} |
} |
} |
} |
} |
Line 9837 sub modify_ltitools {
|
Line 10041 sub modify_ltitools {
|
$displaylist =~ s/,$//; |
$displaylist =~ s/,$//; |
$resulttext .= '<li>'.$displaylist.'</li>'; |
$resulttext .= '<li>'.$displaylist.'</li>'; |
} |
} |
} |
foreach my $item ('linktext','explanation') { |
|
if ($confhash{$itemid}{'display'}{$item}) { |
|
$resulttext .= '<li>'.$lt{$item}.': '.$confhash{$itemid}{'display'}{$item}.'</li>'; |
|
} |
|
} |
|
} |
if (ref($confhash{$itemid}{'fields'}) eq 'HASH') { |
if (ref($confhash{$itemid}{'fields'}) eq 'HASH') { |
my $fieldlist; |
my $fieldlist; |
foreach my $field (@allfields) { |
foreach my $field (@allfields) { |
Line 10052 sub modify_autoenroll {
|
Line 10261 sub modify_autoenroll {
|
} |
} |
if ($changes{'autofailsafe'}) { |
if ($changes{'autofailsafe'}) { |
if ($failsafe ne '') { |
if ($failsafe ne '') { |
$resulttext .= '<li>'.&mt("$title{'failsafe'} set to [_1]",$failsafe).'</li>'; |
$resulttext .= '<li>'.&mt('Failsafe for no drops if institutional data missing for a section set to: [_1]',$failsafe).'</li>'; |
} else { |
} else { |
$resulttext .= '<li>'.&mt("$title{'failsafe'} deleted"); |
$resulttext .= '<li>'.&mt('Failsafe for no drops if institutional data missing for a section: deleted'); |
} |
} |
&Apache::lonnet::get_domain_defaults($dom,1); |
&Apache::lonnet::get_domain_defaults($dom,1); |
if (ref($lastactref) eq 'HASH') { |
if (ref($lastactref) eq 'HASH') { |
Line 10333 sub modify_autocreate {
|
Line 10542 sub modify_autocreate {
|
} |
} |
|
|
sub modify_directorysrch { |
sub modify_directorysrch { |
my ($dom,%domconfig) = @_; |
my ($dom,$lastactref,%domconfig) = @_; |
my ($resulttext,%changes); |
my ($resulttext,%changes); |
my %currdirsrch; |
my %currdirsrch; |
if (ref($domconfig{'directorysrch'}) eq 'HASH') { |
if (ref($domconfig{'directorysrch'}) eq 'HASH') { |
Line 10527 sub modify_directorysrch {
|
Line 10736 sub modify_directorysrch {
|
$resulttext .= '<li>'.&mt($title{'searchtypes'}.' set to: "[_1]"',$chgtext).'</li>'; |
$resulttext .= '<li>'.&mt($title{'searchtypes'}.' set to: "[_1]"',$chgtext).'</li>'; |
} |
} |
$resulttext .= '</ul>'; |
$resulttext .= '</ul>'; |
|
&Apache::lonnet::do_cache_new('directorysrch',$dom,$dirsrch_hash{'directorysrch'},3600); |
|
if (ref($lastactref) eq 'HASH') { |
|
$lastactref->{'directorysrch'} = 1; |
|
} |
} else { |
} else { |
$resulttext = &mt('No changes made to directory search settings'); |
$resulttext = &mt('No changes made to directory search settings'); |
} |
} |
Line 10845 sub modify_usercreation {
|
Line 11058 sub modify_usercreation {
|
if ($key eq 'cancreate') { |
if ($key eq 'cancreate') { |
if (ref($domconfig{'usercreation'}{$key}) eq 'HASH') { |
if (ref($domconfig{'usercreation'}{$key}) eq 'HASH') { |
foreach my $item (keys(%{$domconfig{'usercreation'}{$key}})) { |
foreach my $item (keys(%{$domconfig{'usercreation'}{$key}})) { |
if (($item eq 'selfcreate') || ($item eq 'statustocreate') || |
if (($item eq 'requestcrs') || ($item eq 'course') || ($item eq 'author')) { |
($item eq 'captcha') || ($item eq 'recaptchakeys') || |
|
($item eq 'recaptchaversion')) { |
|
$save_usercreate{$key}{$item} = $domconfig{'usercreation'}{$key}{$item}; |
|
} else { |
|
$curr_usercreation{$key}{$item} = $domconfig{'usercreation'}{$key}{$item}; |
$curr_usercreation{$key}{$item} = $domconfig{'usercreation'}{$key}{$item}; |
|
} else { |
|
$save_usercreate{$key}{$item} = $domconfig{'usercreation'}{$key}{$item}; |
} |
} |
} |
} |
} |
} |
Line 11055 sub modify_usercreation {
|
Line 11266 sub modify_usercreation {
|
sub modify_selfcreation { |
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,@types,%usertypes); |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
my ($othertitle,$usertypesref,$typesref) = &Apache::loncommon::sorted_inst_types($dom); |
if (ref($types) eq 'ARRAY') { |
if (ref($typesref) eq 'ARRAY') { |
$usertypes->{'default'} = $othertitle; |
@types = @{$typesref}; |
push(@{$types},'default'); |
} |
|
unless (grep(/^default$/,@types)) { |
|
push(@types,'default'); |
} |
} |
|
if (ref($usertypesref) eq 'HASH') { |
|
%usertypes = %{$usertypesref}; |
|
} |
|
$usertypes{'default'} = $othertitle; |
# |
# |
# 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 11070 sub modify_selfcreation {
|
Line 11287 sub modify_selfcreation {
|
if (ref($domconfig{'usercreation'}{$key}) eq 'HASH') { |
if (ref($domconfig{'usercreation'}{$key}) eq 'HASH') { |
foreach my $item (keys(%{$domconfig{'usercreation'}{$key}})) { |
foreach my $item (keys(%{$domconfig{'usercreation'}{$key}})) { |
if (($item eq 'selfcreate') || ($item eq 'statustocreate') || |
if (($item eq 'selfcreate') || ($item eq 'statustocreate') || |
($item eq 'captcha') || ($item eq 'recaptchakeys') || |
($item eq 'captcha') || ($item eq 'recaptchakeys') || |
($item eq 'recaptchaversion') || |
($item eq 'recaptchaversion') || ($item eq 'notify') || |
($item eq 'emailusername') || ($item eq 'notify') || |
($item eq 'emailusername') || ($item eq 'shibenv') || |
($item eq 'selfcreateprocessing') || ($item eq 'shibenv')) { |
($item eq 'selfcreateprocessing') || ($item eq 'emailverified') || |
|
($item eq 'emaildomain')) { |
$curr_usercreation{$key}{$item} = $domconfig{'usercreation'}{$key}{$item}; |
$curr_usercreation{$key}{$item} = $domconfig{'usercreation'}{$key}{$item}; |
} else { |
} else { |
$save_usercreate{$key}{$item} = $domconfig{'usercreation'}{$key}{$item}; |
$save_usercreate{$key}{$item} = $domconfig{'usercreation'}{$key}{$item}; |
Line 11106 sub modify_selfcreation {
|
Line 11324 sub modify_selfcreation {
|
@{$cancreate{'statustocreate'}} = (); |
@{$cancreate{'statustocreate'}} = (); |
%{$cancreate{'selfcreateprocessing'}} = (); |
%{$cancreate{'selfcreateprocessing'}} = (); |
%{$cancreate{'shibenv'}} = (); |
%{$cancreate{'shibenv'}} = (); |
|
%{$cancreate{'emailverified'}} = (); |
|
%{$cancreate{'emaildomain'}} = (); |
my %selfcreatetypes = ( |
my %selfcreatetypes = ( |
sso => 'users authenticated by institutional single sign on', |
sso => 'users authenticated by institutional single sign on', |
login => 'users authenticated by institutional log-in', |
login => 'users authenticated by institutional log-in', |
email => 'users who provide a valid e-mail address for use as username', |
email => 'users verified by e-mail', |
); |
); |
# |
# |
# 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 |
Line 11128 sub modify_selfcreation {
|
Line 11348 sub modify_selfcreation {
|
if ($item eq 'email') { |
if ($item eq 'email') { |
if ($env{'form.cancreate_email'}) { |
if ($env{'form.cancreate_email'}) { |
push(@{$cancreate{'selfcreate'}},'email'); |
push(@{$cancreate{'selfcreate'}},'email'); |
push(@contexts,'selfcreateprocessing'); |
push(@contexts,('selfcreateprocessing','emailverified','emaildomain')); |
foreach my $type (@statuses) { |
foreach my $type (@statuses) { |
if ($type eq 'default') { |
if ($type eq 'default') { |
$cancreate{'selfcreateprocessing'}{$type} = $env{'form.cancreate_emailprocess'}; |
$cancreate{'selfcreateprocessing'}{$type} = $env{'form.cancreate_emailprocess'}; |
|
unless ($cancreate{'selfcreateprocessing'}{$type} eq 'notinuse') { |
|
$cancreate{'emailverified'}{$type} = $env{'form.cancreate_emailverified'}; |
|
if ($cancreate{'emailverified'}{$type} eq 'other') { |
|
$cancreate{'emaildomain'}{$type} =$env{'form.cancreate_emaildomain'}; |
|
} |
|
} |
} else { |
} else { |
$cancreate{'selfcreateprocessing'}{$type} = $env{'form.cancreate_emailprocess_'.$type}; |
$cancreate{'selfcreateprocessing'}{$type} = $env{'form.cancreate_emailprocess_'.$type}; |
|
$cancreate{'emailverified'}{$type} = $env{'form.cancreate_emailverified_'.$type}; |
|
if ($cancreate{'emailverified'}{$type} eq 'other') { |
|
$cancreate{'emaildomain'}{$type} =$env{'form.cancreate_emaildomain_'.$type}; |
|
} |
} |
} |
} |
} |
} |
} |
Line 11152 sub modify_selfcreation {
|
Line 11382 sub modify_selfcreation {
|
|
|
if ($env{'form.cancreate_email'}) { |
if ($env{'form.cancreate_email'}) { |
push(@contexts,'emailusername'); |
push(@contexts,'emailusername'); |
if (ref($types) eq 'ARRAY') { |
if (@types) { |
foreach my $type (@{$types}) { |
foreach my $type (@types) { |
if (ref($infofields) eq 'ARRAY') { |
if (ref($infofields) eq 'ARRAY') { |
foreach my $field (@{$infofields}) { |
foreach my $field (@{$infofields}) { |
if ($env{'form.canmodify_emailusername_'.$type.'_'.$field} =~ /^(required|optional)$/) { |
if ($env{'form.canmodify_emailusername_'.$type.'_'.$field} =~ /^(required|optional)$/) { |
Line 11165 sub modify_selfcreation {
|
Line 11395 sub modify_selfcreation {
|
} |
} |
# |
# |
# 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 verified by e-mail. |
# |
# |
|
|
my @approvalnotify = &Apache::loncommon::get_env_multiple('form.selfcreationnotifyapproval'); |
my @approvalnotify = &Apache::loncommon::get_env_multiple('form.selfcreationnotifyapproval'); |
Line 11186 sub modify_selfcreation {
|
Line 11416 sub modify_selfcreation {
|
} |
} |
|
|
# |
# |
# Retrieve rules (if any) governing types of e-mail address which may be used as a username |
# Retrieve rules (if any) governing types of e-mail address which may be used to verify a username. |
# |
# |
@email_rule = &Apache::loncommon::get_env_multiple('form.email_rule'); |
@email_rule = &Apache::loncommon::get_env_multiple('form.email_rule'); |
&process_captcha('cancreate',\%changes,\%savecaptcha,$curr_usercreation{'cancreate'}); |
&process_captcha('cancreate',\%changes,\%savecaptcha,$curr_usercreation{'cancreate'}); |
Line 11233 sub modify_selfcreation {
|
Line 11463 sub modify_selfcreation {
|
# which the user may supply, if institutional data is unavailable. |
# which the user may supply, if institutional data is unavailable. |
# |
# |
if (($env{'form.cancreate_login'}) || ($env{'form.cancreate_sso'})) { |
if (($env{'form.cancreate_login'}) || ($env{'form.cancreate_sso'})) { |
if (ref($types) eq 'ARRAY') { |
if (@types) { |
if (@{$types} > 1) { |
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'}); |
} |
} |
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) { |
if (grep(/^\Q$field\E$/,@modifiable)) { |
if (grep(/^\Q$field\E$/,@modifiable)) { |
Line 11251 sub modify_selfcreation {
|
Line 11481 sub modify_selfcreation {
|
} |
} |
} |
} |
if (ref($curr_usermodify{'selfcreate'}) eq 'HASH') { |
if (ref($curr_usermodify{'selfcreate'}) eq 'HASH') { |
foreach my $type (@{$types}) { |
foreach my $type (@types) { |
if (ref($curr_usermodify{'selfcreate'}{$type}) eq 'HASH') { |
if (ref($curr_usermodify{'selfcreate'}{$type}) eq 'HASH') { |
foreach my $field (@fields) { |
foreach my $field (@fields) { |
if ($save_usermodify{'selfcreate'}{$type}{$field} ne |
if ($save_usermodify{'selfcreate'}{$type}{$field} ne |
Line 11263 sub modify_selfcreation {
|
Line 11493 sub modify_selfcreation {
|
} |
} |
} |
} |
} else { |
} else { |
foreach my $type (@{$types}) { |
foreach my $type (@types) { |
push(@{$changes{'selfcreate'}},$type); |
push(@{$changes{'selfcreate'}},$type); |
} |
} |
} |
} |
Line 11321 sub modify_selfcreation {
|
Line 11551 sub modify_selfcreation {
|
} |
} |
} |
} |
} |
} |
} elsif ($item eq 'selfcreateprocessing') { |
} elsif (($item eq 'selfcreateprocessing') || ($item eq 'emailverified') || ($item eq 'emaildomain')) { |
if ($cancreate{$item}{$curr} ne $curr_usercreation{'cancreate'}{$item}{$curr}) { |
if ($cancreate{$item}{$curr} ne $curr_usercreation{'cancreate'}{$item}{$curr}) { |
if (!grep(/^$item$/,@{$changes{'cancreate'}})) { |
if (!grep(/^$item$/,@{$changes{'cancreate'}})) { |
push(@{$changes{'cancreate'}},$item); |
push(@{$changes{'cancreate'}},$item); |
Line 11409 sub modify_selfcreation {
|
Line 11639 sub modify_selfcreation {
|
if (ref($cancreate{'selfcreateprocessing'}) eq 'HASH') { |
if (ref($cancreate{'selfcreateprocessing'}) eq 'HASH') { |
$save_usercreate{'cancreate'}{'selfcreateprocessing'} = $cancreate{'selfcreateprocessing'}; |
$save_usercreate{'cancreate'}{'selfcreateprocessing'} = $cancreate{'selfcreateprocessing'}; |
} |
} |
|
if (ref($cancreate{'emailverified'}) eq 'HASH') { |
|
$save_usercreate{'cancreate'}{'emailverified'} = $cancreate{'emailverified'}; |
|
} |
|
if (ref($cancreate{'emaildomain'}) eq 'HASH') { |
|
$save_usercreate{'cancreate'}{'emaildomain'} = $cancreate{'emaildomain'}; |
|
} |
if (ref($cancreate{'statustocreate'}) eq 'ARRAY') { |
if (ref($cancreate{'statustocreate'}) eq 'ARRAY') { |
$save_usercreate{'cancreate'}{'statustocreate'} = $cancreate{'statustocreate'}; |
$save_usercreate{'cancreate'}{'statustocreate'} = $cancreate{'statustocreate'}; |
} |
} |
Line 11433 sub modify_selfcreation {
|
Line 11669 sub modify_selfcreation {
|
if (ref($changes{'cancreate'}) eq 'ARRAY') { |
if (ref($changes{'cancreate'}) eq 'ARRAY') { |
my %lt = &selfcreation_types(); |
my %lt = &selfcreation_types(); |
foreach my $type (@{$changes{'cancreate'}}) { |
foreach my $type (@{$changes{'cancreate'}}) { |
my $chgtext; |
my $chgtext = ''; |
if ($type eq 'selfcreate') { |
if ($type eq 'selfcreate') { |
if (@{$cancreate{$type}} == 0) { |
if (@{$cancreate{$type}} == 0) { |
$chgtext .= &mt('Self creation of a new user account is not permitted.'); |
$chgtext .= &mt('Self creation of a new user account is not permitted.'); |
Line 11448 sub modify_selfcreation {
|
Line 11684 sub modify_selfcreation {
|
if (grep(/^(login|sso)$/,@{$cancreate{$type}})) { |
if (grep(/^(login|sso)$/,@{$cancreate{$type}})) { |
if (ref($cancreate{'statustocreate'}) eq 'ARRAY') { |
if (ref($cancreate{'statustocreate'}) eq 'ARRAY') { |
if (@{$cancreate{'statustocreate'}} == 0) { |
if (@{$cancreate{'statustocreate'}} == 0) { |
$chgtext .= '<br />'. |
$chgtext .= '<span class="LC_warning">'. |
'<span class="LC_warning">'. |
&mt("However, no institutional affiliations (including 'other') are currently permitted to create accounts via log-in or single sign-on."). |
&mt("However, no institutional affiliations (including 'other') are currently permitted to create accounts."). |
'</span><br />'; |
'</span>'; |
} |
|
} |
|
} |
|
if (grep(/^email$/,@{$cancreate{$type}})) { |
|
if (@statuses > 1) { |
|
my $numtypes = 0; |
|
foreach my $type (@statuses) { |
|
unless ($cancreate{'selfcreateprocessing'}{$type} eq 'notinuse') { |
|
$numtypes ++; |
|
} |
|
} |
|
if (!$numtypes) { |
|
$chgtext .= '<span class="LC_warning">'. |
|
&mt("However, e-mail verification is currently set to 'unavailable' for all user types (including 'other'), so self-creation of accounts is not possible for non-institutional log-in."). |
|
'</span><br />'; |
|
|
} |
} |
} |
} |
} |
} |
Line 11459 sub modify_selfcreation {
|
Line 11710 sub modify_selfcreation {
|
} |
} |
} elsif ($type eq 'shibenv') { |
} elsif ($type eq 'shibenv') { |
if (keys(%{$cancreate{$type}}) == 0) { |
if (keys(%{$cancreate{$type}}) == 0) { |
$chgtext .= &mt('Shibboleth-autheticated user does not use environment variables to set user information'); |
$chgtext .= &mt('Shibboleth-autheticated user does not use environment variables to set user information').'<br />'; |
} else { |
} else { |
$chgtext .= &mt('Shibboleth-autheticated user information set from environment variables, as follows:'). |
$chgtext .= &mt('Shibboleth-autheticated user information set from environment variables, as follows:'). |
'<ul>'; |
'<ul>'; |
Line 11472 sub modify_selfcreation {
|
Line 11723 sub modify_selfcreation {
|
} |
} |
} |
} |
$chgtext .= '</ul>'; |
$chgtext .= '</ul>'; |
} |
} |
} elsif ($type eq 'statustocreate') { |
} elsif ($type eq 'statustocreate') { |
if ((ref($cancreate{'selfcreate'}) eq 'ARRAY') && |
if ((ref($cancreate{'selfcreate'}) eq 'ARRAY') && |
(ref($cancreate{'statustocreate'}) eq 'ARRAY')) { |
(ref($cancreate{'statustocreate'}) eq 'ARRAY')) { |
Line 11485 sub modify_selfcreation {
|
Line 11736 sub modify_selfcreation {
|
&mt("However, no institutional affiliations (including 'other') are currently permitted to create accounts."). |
&mt("However, no institutional affiliations (including 'other') are currently permitted to create accounts."). |
'</span>'; |
'</span>'; |
} |
} |
} elsif (ref($usertypes) eq 'HASH') { |
} elsif (keys(%usertypes) > 0) { |
if (grep(/^(login|sso)$/,@{$cancreate{'selfcreate'}})) { |
if (grep(/^(login|sso)$/,@{$cancreate{'selfcreate'}})) { |
$chgtext .= &mt('Creation of a new account for an institutional user is restricted to the following institutional affiliation(s):'); |
$chgtext .= &mt('Creation of a new account for an institutional user is restricted to the following institutional affiliation(s):'); |
} else { |
} else { |
Line 11496 sub modify_selfcreation {
|
Line 11747 sub modify_selfcreation {
|
if ($case eq 'default') { |
if ($case eq 'default') { |
$chgtext .= '<li>'.$othertitle.'</li>'; |
$chgtext .= '<li>'.$othertitle.'</li>'; |
} else { |
} else { |
$chgtext .= '<li>'.$usertypes->{$case}.'</li>'; |
$chgtext .= '<li>'.$usertypes{$case}.'</li>'; |
} |
} |
} |
} |
$chgtext .= '</ul>'; |
$chgtext .= '</ul>'; |
if (!grep(/^(login|sso)$/,@{$cancreate{'selfcreate'}})) { |
if (!grep(/^(login|sso)$/,@{$cancreate{'selfcreate'}})) { |
$chgtext .= '<br /><span class="LC_warning">'. |
$chgtext .= '<span class="LC_warning">'. |
&mt('However, users authenticated by institutional login/single sign on are not currently permitted to create accounts.'). |
&mt('However, users authenticated by institutional login/single sign on are not currently permitted to create accounts.'). |
'</span>'; |
'</span>'; |
} |
} |
Line 11513 sub modify_selfcreation {
|
Line 11764 sub modify_selfcreation {
|
$chgtext .= &mt('Although institutional affiliations permitted to create accounts were changed, self creation of accounts is not currently permitted for any authentication types.'); |
$chgtext .= &mt('Although institutional affiliations permitted to create accounts were changed, self creation of accounts is not currently permitted for any authentication types.'); |
} |
} |
} |
} |
|
$chgtext .= '<br />'; |
} |
} |
} elsif ($type eq 'selfcreateprocessing') { |
} elsif ($type eq 'selfcreateprocessing') { |
my %choices = &Apache::lonlocal::texthash ( |
my %choices = &Apache::lonlocal::texthash ( |
automatic => 'Automatic approval', |
automatic => 'Automatic approval', |
approval => 'Queued for approval', |
approval => 'Queued for approval', |
|
notinuse => 'Unavailable', |
); |
); |
if (@statuses > 1) { |
if (@statuses > 1) { |
$chgtext .= &mt('Processing of requests to create account with e-mail address as username set as follows:'). |
my $numtypes = 0; |
'<ul>'; |
foreach my $type (@statuses) { |
foreach my $type (@statuses) { |
unless ($cancreate{'selfcreateprocessing'}{$type} eq 'notinuse') { |
if ($type eq 'default') { |
$numtypes ++; |
$chgtext .= '<li>'.$othertitle.' -- '.$choices{$cancreate{'selfcreateprocessing'}{$type}}.'</li>'; |
} |
} else { |
} |
$chgtext .= '<li>'.$usertypes->{$type}.' -- '.$choices{$cancreate{'selfcreateprocessing'}{$type}}.'</li>'; |
if ($numtypes) { |
} |
$chgtext .= &mt('Processing of requests to create account with e-mail verification set as follows:'). |
} |
'<ul>'; |
$chgtext .= '</ul>'; |
foreach my $type (@statuses) { |
|
if ($type eq 'default') { |
|
$chgtext .= '<li>'.$othertitle.' -- '.$choices{$cancreate{'selfcreateprocessing'}{$type}}.'</li>'; |
|
} else { |
|
$chgtext .= '<li>'.$usertypes{$type}.' -- '.$choices{$cancreate{'selfcreateprocessing'}{$type}}.'</li>'; |
|
} |
|
} |
|
$chgtext .= '</ul>'; |
|
} |
|
} else { |
|
$chgtext .= &mt('Processing of requests to create account with e-mail verification set to: "[_1]"', |
|
$choices{$cancreate{'selfcreateprocessing'}{'default'}}); |
|
} |
|
} elsif ($type eq 'emailverified') { |
|
my %options = &Apache::lonlocal::texthash ( |
|
email => 'Username is e-mail', |
|
other => 'Username is chosen', |
|
); |
|
if (@statuses > 1) { |
|
my $numtypes = 0; |
|
foreach my $type (@statuses) { |
|
unless ($cancreate{'selfcreateprocessing'}{$type} eq 'notinuse') { |
|
$numtypes ++; |
|
} |
|
} |
|
if ($numtypes) { |
|
$chgtext .= &mt('For self-created accounts verified by e-mail address, username is set as follows:'). |
|
'<ul>'; |
|
foreach my $type (@statuses) { |
|
next if ($cancreate{'selfcreateprocessing'}{$type} eq 'notinuse'); |
|
if ($type eq 'default') { |
|
$chgtext .= '<li>'.$othertitle.' -- '.$options{$cancreate{'emailverified'}{$type}}.'</li>'; |
|
} else { |
|
$chgtext .= '<li>'.$usertypes{$type}.' -- '.$options{$cancreate{'emailverified'}{$type}}.'</li>'; |
|
} |
|
} |
|
$chgtext .= '</ul>'; |
|
} |
|
} else { |
|
$chgtext .= &mt('For self-created accounts verified by e-mail address: "[_1]"', |
|
$options{$cancreate{'emailverified'}{'default'}}); |
|
} |
|
} elsif ($type eq 'emaildomain') { |
|
if (@statuses > 1) { |
|
my $numtypes = 0; |
|
foreach my $type (@statuses) { |
|
unless ($cancreate{'selfcreateprocessing'}{$type} eq 'notinuse') { |
|
if ($cancreate{'emailverified'}{$type} eq 'other') { |
|
$numtypes ++; |
|
} |
|
} |
|
} |
|
if ($numtypes) { |
|
$chgtext .= &mt('For self-created accounts verified by e-mail address, with username chosen by user ...'). |
|
'<ul>'; |
|
foreach my $type (@statuses) { |
|
next if (($cancreate{'selfcreateprocessing'}{$type} eq 'notinuse') || |
|
($cancreate{'emailverified'}{$type} eq 'email')); |
|
if ($type eq 'default') { |
|
if ($cancreate{'emaildomain'}{$type} eq '') { |
|
$chgtext .= '<li>'.$othertitle.' -- '.&mt('No restriction on e-mail domain').'</li>'; |
|
} else { |
|
$chgtext .= '<li>'.$othertitle.' -- '.&mt("User's e-mail domain needs to be: [_1]", |
|
$cancreate{'emaildomain'}{$type}).'</li>'; |
|
} |
|
} else { |
|
if ($cancreate{'emaildomain'}{$type} eq '') { |
|
$chgtext .= '<li>'.$usertypes{$type}.' -- '.&mt('No restriction on e-mail domain').'</li>'; |
|
} else { |
|
$chgtext .= '<li>'.$usertypes{$type}.' -- '.&mt("User's e-mail domain needs to be: [_1]", |
|
$cancreate{'emaildomain'}{$type}).'</li>'; |
|
} |
|
} |
|
} |
|
$chgtext .= '</ul>'; |
|
} |
} else { |
} else { |
$chgtext .= &mt('Processing of requests to create account with e-mail address as username set to: "[_1]"', |
if ($cancreate{'emailverified'}{'default'} eq 'other') { |
$choices{$cancreate{'selfcreateprocessing'}{'default'}}); |
if ($cancreate{'emaildomain'}{'default'} eq '') { |
|
$chgtext .= &mt('No restriction on e-mail domain for self-created accounts verified by e-mail address, where username is chosen by user.'); |
|
} else { |
|
$chgtext .= &mt('For self-created accounts verified by e-mail address, where username is chosen by user, e-mail domain needs to be: [_1]', |
|
$cancreate{'selfcreateprocessing'}{'default'}); |
|
} |
|
} |
} |
} |
} elsif ($type eq 'captcha') { |
} elsif ($type eq 'captcha') { |
if ($savecaptcha{$type} eq 'notused') { |
if ($savecaptcha{$type} eq 'notused') { |
Line 11569 sub modify_selfcreation {
|
Line 11903 sub modify_selfcreation {
|
} |
} |
} elsif ($type eq 'emailusername') { |
} elsif ($type eq 'emailusername') { |
if (ref($cancreate{'emailusername'}) eq 'HASH') { |
if (ref($cancreate{'emailusername'}) eq 'HASH') { |
if (ref($types) eq 'ARRAY') { |
if (@types) { |
foreach my $type (@{$types}) { |
foreach my $type (@types) { |
if (ref($cancreate{'emailusername'}{$type}) eq 'HASH') { |
if (ref($cancreate{'emailusername'}{$type}) eq 'HASH') { |
if (keys(%{$cancreate{'emailusername'}{$type}}) > 0) { |
if (keys(%{$cancreate{'emailusername'}{$type}}) > 0) { |
$chgtext .= &mt('When self-creating account with e-mail as username, the following information will be provided by [_1]:',"'$usertypes->{$type}'"). |
$chgtext .= &mt('When self-creating account with e-mail verification, the following information will be provided by [_1]:',"'$usertypes{$type}'"). |
'<ul>'; |
'<ul>'; |
foreach my $field (@{$infofields}) { |
foreach my $field (@{$infofields}) { |
if ($cancreate{'emailusername'}{$type}{$field}) { |
if ($cancreate{'emailusername'}{$type}{$field}) { |
Line 11582 sub modify_selfcreation {
|
Line 11916 sub modify_selfcreation {
|
} |
} |
$chgtext .= '</ul>'; |
$chgtext .= '</ul>'; |
} else { |
} 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 .= &mt('When self creating account with e-mail verification, no information besides e-mail address will be provided by [_1].',"'$usertypes{$type}'").'<br />'; |
} |
} |
} else { |
} 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 .= &mt('When self creating account with e-mail verification, no information besides e-mail address will be provided by [_1].',"'$usertypes{$type}'").'<br />'; |
} |
} |
} |
} |
} |
} |
} |
} |
} elsif ($type eq 'notify') { |
} elsif ($type eq 'notify') { |
$chgtext = &mt('No Domain Coordinators will receive notification of username requests requiring approval.'); |
my $numapprove = 0; |
if (ref($changes{'cancreate'}) eq 'ARRAY') { |
if (ref($changes{'cancreate'}) eq 'ARRAY') { |
if ((grep(/^notify$/,@{$changes{'cancreate'}})) && (ref($cancreate{'notify'}) eq 'HASH')) { |
if ((grep(/^notify$/,@{$changes{'cancreate'}})) && (ref($cancreate{'notify'}) eq 'HASH')) { |
if ($cancreate{'notify'}{'approval'}) { |
if ($cancreate{'notify'}{'approval'}) { |
$chgtext = &mt('Notification of username requests requiring approval will be sent to: ').$cancreate{'notify'}{'approval'}; |
$chgtext .= &mt('Notification of username requests requiring approval will be sent to: ').$cancreate{'notify'}{'approval'}; |
|
$numapprove ++; |
} |
} |
} |
} |
} |
} |
|
unless ($numapprove) { |
|
$chgtext .= &mt('No Domain Coordinators will receive notification of username requests requiring approval.'); |
|
} |
} |
} |
if ($chgtext) { |
if ($chgtext) { |
$resulttext .= '<li>'.$chgtext.'</li>'; |
$resulttext .= '<li>'.$chgtext.'</li>'; |
Line 11617 sub modify_selfcreation {
|
Line 11955 sub modify_selfcreation {
|
$chgtext .= '</ul>'; |
$chgtext .= '</ul>'; |
if (@email_rule > 0) { |
if (@email_rule > 0) { |
$resulttext .= '<li>'. |
$resulttext .= '<li>'. |
&mt('Accounts may not be created by users self-enrolling with e-mail addresses of the following types: '). |
&mt('Accounts may not be created by users verified by e-mail, for e-mail addresses of the following types: '). |
$chgtext. |
$chgtext. |
'</li>'; |
'</li>'; |
} else { |
} else { |
$resulttext .= '<li>'. |
$resulttext .= '<li>'. |
&mt('There are now no restrictions on e-mail addresses which may be used as a username when self-enrolling.'). |
&mt('There are now no restrictions on e-mail addresses which may be used for verification when self-enrolling.'). |
'</li>'; |
'</li>'; |
} |
} |
} |
} |
Line 11631 sub modify_selfcreation {
|
Line 11969 sub modify_selfcreation {
|
my %fieldtitles = &Apache::loncommon::personal_data_fieldtitles(); |
my %fieldtitles = &Apache::loncommon::personal_data_fieldtitles(); |
foreach my $type (@{$changes{'selfcreate'}}) { |
foreach my $type (@{$changes{'selfcreate'}}) { |
my $typename = $type; |
my $typename = $type; |
if (ref($usertypes) eq 'HASH') { |
if (keys(%usertypes) > 0) { |
if ($usertypes->{$type} ne '') { |
if ($usertypes{$type} ne '') { |
$typename = $usertypes->{$type}; |
$typename = $usertypes{$type}; |
} |
} |
} |
} |
my @modifiable; |
my @modifiable; |
Line 12879 sub modify_helpsettings {
|
Line 13217 sub modify_helpsettings {
|
order => 'Order', |
order => 'Order', |
desc => 'Role description', |
desc => 'Role description', |
access => 'Role usage', |
access => 'Role usage', |
status => 'Allowed instituional types', |
status => 'Allowed institutional types', |
exc => 'Allowed personnel', |
exc => 'Allowed personnel', |
inc => 'Disallowed personnel', |
inc => 'Disallowed personnel', |
); |
); |
Line 13806 sub modify_usersessions {
|
Line 14144 sub modify_usersessions {
|
} |
} |
my $cachetime = 24*60*60; |
my $cachetime = 24*60*60; |
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
|
&Apache::lonnet::do_cache_new('usersessions',$dom,$defaultshash{'usersessions'},3600); |
if (ref($lastactref) eq 'HASH') { |
if (ref($lastactref) eq 'HASH') { |
$lastactref->{'domdefaults'} = 1; |
$lastactref->{'domdefaults'} = 1; |
|
$lastactref->{'usersessions'} = 1; |
} |
} |
if (keys(%changes) > 0) { |
if (keys(%changes) > 0) { |
my %lt = &usersession_titles(); |
my %lt = &usersession_titles(); |
Line 15132 function toggleDisplay(domForm,caller) {
|
Line 15472 function toggleDisplay(domForm,caller) {
|
var optionsElement = domForm.coursecredits; |
var optionsElement = domForm.coursecredits; |
var checkval = 1; |
var checkval = 1; |
var dispval = 'block'; |
var dispval = 'block'; |
|
var selfcreateRegExp = /^cancreate_emailverified/; |
if (caller == 'emailoptions') { |
if (caller == 'emailoptions') { |
optionsElement = domForm.cancreate_email; |
optionsElement = domForm.cancreate_email; |
} |
} |
Line 15142 function toggleDisplay(domForm,caller) {
|
Line 15483 function toggleDisplay(domForm,caller) {
|
optionsElement = domForm.canclone; |
optionsElement = domForm.canclone; |
checkval = 'instcode'; |
checkval = 'instcode'; |
} |
} |
|
if (selfcreateRegExp.test(caller)) { |
|
optionsElement = domForm.elements[caller]; |
|
checkval = 'other'; |
|
dispval = 'inline' |
|
} |
if (optionsElement.length) { |
if (optionsElement.length) { |
var currval; |
var currval; |
for (var i=0; i<optionsElement.length; i++) { |
for (var i=0; i<optionsElement.length; i++) { |
Line 15183 sub devalidate_remote_domconfs {
|
Line 15529 sub devalidate_remote_domconfs {
|
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
my %thismachine; |
my %thismachine; |
map { $thismachine{$_} = 1; } &Apache::lonnet::current_machine_ids(); |
map { $thismachine{$_} = 1; } &Apache::lonnet::current_machine_ids(); |
my @posscached = ('domainconfig','domdefaults','ltitools'); |
my @posscached = ('domainconfig','domdefaults','ltitools','usersessions','directorysrch'); |
if (keys(%servers)) { |
if (keys(%servers)) { |
foreach my $server (keys(%servers)) { |
foreach my $server (keys(%servers)) { |
next if ($thismachine{$server}); |
next if ($thismachine{$server}); |