version 1.58, 2010/09/10 20:25:51
|
version 1.60, 2011/01/05 18:47:46
|
Line 1322 sub print_request_form {
|
Line 1322 sub print_request_form {
|
} |
} |
if ($skipuser) { |
if ($skipuser) { |
push(@disallowed,$i); |
push(@disallowed,$i); |
$disallowmsg{$i} = &mt('[_1] was excluded because new users need be from the course domain','<tt>'.$personname.':'.$persondom.'</tt>'); |
$disallowmsg{$i} = &mt('[_1] was excluded because new users need to be from the course domain','<tt>'.$personname.':'.$persondom.'</tt>'); |
next; |
next; |
} |
} |
} |
} |
if (&get_cancreate_status($persondom,$personname,$dom)) { |
my $usertype = &get_usertype($persondom,$personname,\%curr_rules,\%got_rules); |
my ($allowed,$msg) = |
if (&Apache::lonuserutils::can_create_user($dom,'requestcrs',$usertype)) { |
|
my ($allowed,$msg,$authtype,$authparam) = |
&check_newuser_rules($persondom,$personname, |
&check_newuser_rules($persondom,$personname, |
\%alerts,\%rulematch,\%inst_results, |
\%alerts,\%rulematch,\%inst_results, |
\%curr_rules,\%got_rules); |
\%curr_rules,\%got_rules); |
if ($allowed) { |
if ($allowed) { |
|
my %domdefaults = &Apache::lonnet::get_domain_defaults($persondom); |
|
if ($usertype eq 'official') { |
|
if ($authtype eq '') { |
|
$authtype = $domdefaults{'auth_def'}; |
|
$authparam = $domdefaults{'auth_arg_def'}; |
|
} |
|
} elsif ($usertype eq 'unofficial') { |
|
if ($authtype eq '') { |
|
$authtype = 'internal'; |
|
$authparam = ''; |
|
} |
|
} else { |
|
$authtype = $domdefaults{'auth_def'}; |
|
$authparam = $domdefaults{'auth_arg_def'}; |
|
} |
|
if (($authtype eq '') || |
|
(($authtype =~/^krb/) && ($authparam eq ''))) { |
|
push(@disallowed,$i); |
|
$disallowmsg{$i} = &mt('[_1] was excluded because institutional information is incomplete for this new user.','<tt>'.$personname.':'.$persondom.'</tt>'); |
|
next; |
|
} |
if (ref($inst_results{$personname.':'.$persondom}) eq 'HASH') { |
if (ref($inst_results{$personname.':'.$persondom}) eq 'HASH') { |
if ($inst_results{$personname.':'.$persondom}{'lastname'} ne '') { |
if ($inst_results{$personname.':'.$persondom}{'lastname'} ne '') { |
$env{'form.person_'.$i.'_lastname'} = $inst_results{$personname.':'.$persondom}{'lastname'}; |
$env{'form.person_'.$i.'_lastname'} = $inst_results{$personname.':'.$persondom}{'lastname'}; |
Line 1454 sub print_request_form {
|
Line 1476 sub print_request_form {
|
return; |
return; |
} |
} |
|
|
sub get_cancreate_status { |
sub get_usertype { |
my ($persondom,$personname,$dom) = @_; |
my ($persondom,$personname,$curr_rules,$got_rules) = @_; |
my ($rules,$ruleorder) = |
my ($rules,$ruleorder) = |
&Apache::lonnet::inst_userrules($persondom,'username'); |
&Apache::lonnet::inst_userrules($persondom,'username'); |
my $usertype = &Apache::lonuserutils::check_usertype($persondom,$personname, |
my $usertype = &Apache::lonuserutils::check_usertype($persondom,$personname, |
$rules); |
$rules,$curr_rules,$got_rules); |
return &Apache::lonuserutils::can_create_user($dom,'requestcrs',$usertype); |
return $usertype; |
} |
} |
|
|
sub check_newuser_rules { |
sub check_newuser_rules { |
Line 1468 sub check_newuser_rules {
|
Line 1490 sub check_newuser_rules {
|
$got_rules) = @_; |
$got_rules) = @_; |
my $allowed = 1; |
my $allowed = 1; |
my $newuser = 1; |
my $newuser = 1; |
my ($checkhash,$userchkmsg); |
my ($checkhash,$userchkmsg,$authtype,$authparam); |
my $checks = { 'username' => 1 }; |
my $checks = { 'username' => 1 }; |
$checkhash->{$personname.':'.$persondom} = { 'newuser' => $newuser }; |
$checkhash->{$personname.':'.$persondom} = { 'newuser' => $newuser }; |
&Apache::loncommon::user_rule_check($checkhash,$checks,$alerts,$rulematch, |
&Apache::loncommon::user_rule_check($checkhash,$checks,$alerts,$rulematch, |
Line 1490 sub check_newuser_rules {
|
Line 1512 sub check_newuser_rules {
|
} |
} |
} |
} |
} |
} |
return ($allowed,$userchkmsg); |
if ($allowed) { |
|
if (ref($rulematch) eq 'HASH') { |
|
if (ref($rulematch->{$personname.':'.$persondom}) eq 'HASH') { |
|
my $matchedrule = $rulematch->{$personname.':'.$persondom}{'username'}; |
|
my ($rules,$ruleorder) = |
|
&Apache::lonnet::inst_userrules($persondom,'username'); |
|
if (ref($rules) eq 'HASH') { |
|
if (ref($rules->{$matchedrule}) eq 'HASH') { |
|
$authtype = $rules->{$matchedrule}{'authtype'}; |
|
$authparam = $rules->{$matchedrule}{'authparm'}; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
return ($allowed,$userchkmsg,$authtype,$authparam); |
} |
} |
|
|
sub get_excluded_elements { |
sub get_excluded_elements { |
Line 3065 sub print_request_outcome {
|
Line 3102 sub print_request_outcome {
|
$enrollstart = ''; |
$enrollstart = ''; |
$enrollend = ''; |
$enrollend = ''; |
} |
} |
|
my (%alerts,%rulematch,%inst_results,%curr_rules,%got_rules,%disallowmsg); |
for (my $i=0; $i<$env{'form.persontotal'}; $i++) { |
for (my $i=0; $i<$env{'form.persontotal'}; $i++) { |
my $uname = $env{'form.person_'.$i.'_uname'}; |
my $uname = $env{'form.person_'.$i.'_uname'}; |
my $udom = $env{'form.person_'.$i.'_dom'}; |
my $udom = $env{'form.person_'.$i.'_dom'}; |
Line 3076 sub print_request_outcome {
|
Line 3114 sub print_request_outcome {
|
lastname => $env{'form.person_'.$i.'_lastname'}, |
lastname => $env{'form.person_'.$i.'_lastname'}, |
emailaddr => $env{'form.person_'.$i.'_emailaddr'}, |
emailaddr => $env{'form.person_'.$i.'_emailaddr'}, |
}; |
}; |
|
my $usertype = &get_usertype($udom,$uname,\%curr_rules,\%got_rules); |
|
if (&Apache::lonuserutils::can_create_user($udom,'requestcrs',$usertype)) { |
|
my ($allowed,$msg,$authtype,$authparam) = |
|
&check_newuser_rules($udom,$uname,\%alerts,\%rulematch, |
|
\%inst_results,\%curr_rules,\%got_rules); |
|
if ($allowed) { |
|
my %domdefaults = &Apache::lonnet::get_domain_defaults($udom); |
|
if ($usertype eq 'official') { |
|
if ($authtype eq '') { |
|
$authtype = $domdefaults{'auth_def'}; |
|
$authparam = $domdefaults{'auth_arg_def'}; |
|
} else { |
|
if ($authtype eq 'loc') { |
|
$authtype = 'localauth'; |
|
} elsif ($authtype eq 'int') { |
|
$authtype = 'internal'; |
|
} |
|
if ($authtype !~ /^(krb4|krb5|internal|localauth)$/) { |
|
$authtype = $domdefaults{'auth_def'}; |
|
$authparam = $domdefaults{'auth_arg_def'}; |
|
} |
|
} |
|
} elsif ($usertype eq 'unofficial') { |
|
if ($authtype eq '') { |
|
$authtype = 'internal'; |
|
$authparam = ''; |
|
} |
|
} else { |
|
$authtype = $domdefaults{'auth_def'}; |
|
$authparam = $domdefaults{'auth_arg_def'}; |
|
} |
|
if (($authtype eq '') || |
|
(($authtype =~/^krb(4|5)$/) && ($authparam eq '')) || |
|
($authtype !~ /^(krb4|krb5|internal|localauth)$/)) { |
|
next; |
|
} else { |
|
$personnel{$uname.':'.$udom}{'authtype'} = $authtype; |
|
$personnel{$uname.':'.$udom}{'autharg'} = $authparam; |
|
} |
|
} else { |
|
next; |
|
} |
|
} else { |
|
next; |
|
} |
} |
} |
my $role = $env{'form.person_'.$i.'_role'}; |
my $role = $env{'form.person_'.$i.'_role'}; |
unless ($role eq '') { |
unless ($role eq '') { |
Line 3595 sub retrieve_settings {
|
Line 3678 sub retrieve_settings {
|
} |
} |
$env{'form.datemode'} = $reqinfo{'datemode'}; |
$env{'form.datemode'} = $reqinfo{'datemode'}; |
$env{'form.dateshift'} = $reqinfo{'dateshift'}; |
$env{'form.dateshift'} = $reqinfo{'dateshift'}; |
if (($reqinfo{'crstype'} eq 'official') && ($reqinfo{'instcode'} ne '')) { |
if ($reqinfo{'crstype'} eq 'official') { |
$env{'form.sectotal'} = $reqinfo{'sectotal'}; |
$env{'form.autoadds'} = $reqinfo{'autoadds'}; |
$env{'form.crosslisttotal'} = $reqinfo{'crosslisttotal'}; |
$env{'form.autodrops'} = $reqinfo{'autodrops'}; |
$env{'form.autoadds'} = $reqinfo{'autoadds'}; |
if ($reqinfo{'instcode'} ne '') { |
$env{'form.autdrops'} = $reqinfo{'autodrops'}; |
$env{'form.sectotal'} = $reqinfo{'sectotal'}; |
$env{'form.instcode'} = $reqinfo{'instcode'}; |
$env{'form.crosslisttotal'} = $reqinfo{'crosslisttotal'}; |
my $crscode = { |
$env{'form.instcode'} = $reqinfo{'instcode'}; |
$cnum => $reqinfo{'instcode'}, |
my $crscode = { |
}; |
$cnum => $reqinfo{'instcode'}, |
&extract_instcode($dom,'instcode',$crscode,$cnum); |
}; |
|
&extract_instcode($dom,'instcode',$crscode,$cnum); |
|
} |
} |
} |
my @currsec; |
my @currsec; |
if (ref($reqinfo{'sections'}) eq 'HASH') { |
if (ref($reqinfo{'sections'}) eq 'HASH') { |