version 1.64, 2014/04/23 10:11:26
|
version 1.65, 2014/05/05 21:28:10
|
Line 170 sub handler {
|
Line 170 sub handler {
|
if (grep(/^sso$/,@{$cancreate})) { |
if (grep(/^sso$/,@{$cancreate})) { |
$msg = '<h3>'.&mt('Account creation').'</h3>'. |
$msg = '<h3>'.&mt('Account creation').'</h3>'. |
&mt("Although your username and password were authenticated by your institution's Single Sign On system, you do not currently have a LON-CAPA account at this institution.").'<br />'; |
&mt("Although your username and password were authenticated by your institution's Single Sign On system, you do not currently have a LON-CAPA account at this institution.").'<br />'; |
|
my $shibenv; |
|
if (($r->dir_config('lonOtherAuthen') eq 'yes') && |
|
($r->dir_config('lonOtherAuthenType') eq 'Shibboleth')) { |
|
if (ref($domconfig{'usercreation'}) eq 'HASH') { |
|
if (ref($domconfig{'usercreation'}{'cancreate'}) eq 'HASH') { |
|
if (ref($domconfig{'usercreation'}{'cancreate'}{'shibenv'}) eq 'HASH') { |
|
my @possfields = ('firstname','middlename','lastname','generation', |
|
'permanentemail','id'); |
|
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($domain); |
|
$shibenv= {}; |
|
foreach my $key (keys(%{$domconfig{'usercreation'}{'cancreate'}{'shibenv'}})) { |
|
if ($key eq 'inststatus') { |
|
if (ref($usertypes) eq 'HASH') { |
|
if ($domconfig{'usercreation'}{'cancreate'}{'shibenv'}{$key} ne '') { |
|
if (exists($usertypes->{$domconfig{'usercreation'}{'cancreate'}{'shibenv'}{$key}})) { |
|
$shibenv->{$key} = $domconfig{'usercreation'}{'cancreate'}{'shibenv'}{$key}; |
|
} |
|
} |
|
} |
|
} elsif (grep(/^\Q$key\E/,@possfields)) { |
|
if ($domconfig{'usercreation'}{'cancreate'}{'shibenv'}{$key} ne '') { |
|
$shibenv->{$key} = $domconfig{'usercreation'}{'cancreate'}{'shibenv'}{$key}; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
$msg .= &username_check($sso_username,$domain,$domdesc,$courseid, |
$msg .= &username_check($sso_username,$domain,$domdesc,$courseid, |
$lonhost,$contact_email,$contact_name, |
$lonhost,$contact_email,$contact_name, |
$sso_logout,$statustocreate); |
$sso_logout,$statustocreate,$shibenv); |
} else { |
} else { |
$msg = '<h3>'.&mt('Account creation unavailable').'</h3>'. |
$msg = '<h3>'.&mt('Account creation unavailable').'</h3>'. |
'<span class="LC_warning">'.&mt("Although your username and password were authenticated by your institution's Single Sign On system, you do not currently have a LON-CAPA account at this institution, and you are not permitted to create one.").'</span><br /><br />'.&mt('Please contact the [_1] ([_2]) for assistance.',$contact_name,$contact_email).'<hr />'. |
'<span class="LC_warning">'.&mt("Although your username and password were authenticated by your institution's Single Sign On system, you do not currently have a LON-CAPA account at this institution, and you are not permitted to create one.").'</span><br /><br />'.&mt('Please contact the [_1] ([_2]) for assistance.',$contact_name,$contact_email).'<hr />'. |
Line 1164 sub login_failure_msg {
|
Line 1192 sub login_failure_msg {
|
|
|
sub username_check { |
sub username_check { |
my ($username,$domain,$domdesc,$courseid,$lonhost,$contact_email, |
my ($username,$domain,$domdesc,$courseid,$lonhost,$contact_email, |
$contact_name,$sso_logout,$statustocreate) = @_; |
$contact_name,$sso_logout,$statustocreate,$shibenv) = @_; |
my (%rulematch,%inst_results,$checkfail,$rowcount,$editable,$output,$msg, |
my (%rulematch,%inst_results,$checkfail,$rowcount,$editable,$output,$msg, |
%alerts,%curr_rules,%got_rules); |
%alerts,%curr_rules,%got_rules); |
&call_rulecheck($username,$domain,\%alerts,\%rulematch, |
&call_rulecheck($username,$domain,\%alerts,\%rulematch, |
Line 1200 sub username_check {
|
Line 1228 sub username_check {
|
} |
} |
if (!$checkfail) { |
if (!$checkfail) { |
$output = '<form method="post" action="/adm/createaccount">'; |
$output = '<form method="post" action="/adm/createaccount">'; |
|
if (ref($shibenv) eq 'HASH') { |
|
foreach my $key (keys(%{$shibenv})) { |
|
$inst_results{$username.':'.$domain}{$key} = $shibenv->{$key}; |
|
} |
|
} |
(my $datatable,$rowcount,$editable) = |
(my $datatable,$rowcount,$editable) = |
&Apache::loncreateuser::personal_data_display($username,$domain,1,'selfcreate', |
&Apache::loncreateuser::personal_data_display($username,$domain,1,'selfcreate', |
$inst_results{$username.':'.$domain}); |
$inst_results{$username.':'.$domain}); |