version 1.183, 2007/09/07 19:51:41
|
version 1.186, 2007/09/18 23:57:15
|
Line 420 sub print_user_query_page {
|
Line 420 sub print_user_query_page {
|
|
|
sub print_user_modification_page { |
sub print_user_modification_page { |
my ($r,$ccuname,$ccdomain,$srch,$response) = @_; |
my ($r,$ccuname,$ccdomain,$srch,$response) = @_; |
unless (($ccuname) && ($ccdomain)) { |
if (($ccuname eq '') || ($ccdomain eq '')) { |
&print_username_entry_form($r); |
my $usermsg = &mt('No username and/or domain provided.'); |
|
&print_username_entry_form($r,$usermsg); |
return; |
return; |
} |
} |
|
my ($instsrch,$rulematch,$rules,%inst_results); |
|
my $uhome=&Apache::lonnet::homeserver($ccuname,$ccdomain); |
|
if ($uhome eq 'no_host') { |
|
$instsrch = |
|
{ |
|
srchin => 'instd', |
|
srchby => 'uname', |
|
srchtype => 'exact', |
|
srchterm => $ccuname, |
|
srchdomain => $ccdomain, |
|
}; |
|
(my $usercheckmsg,$rulematch,$rules,%inst_results) = |
|
&Apache::loncommon::username_rule_check($instsrch,'new'); |
|
if ($usercheckmsg) { |
|
&print_username_entry_form($r,$usercheckmsg); |
|
return; |
|
} |
|
} |
if ($response) { |
if ($response) { |
$response = '<br />'.$response |
$response = '<br />'.$response |
} |
} |
Line 675 ENDSECCODE
|
Line 694 ENDSECCODE
|
<input type="hidden" name="pres_type" value="" /> |
<input type="hidden" name="pres_type" value="" /> |
<input type="hidden" name="pres_marker" value="" /> |
<input type="hidden" name="pres_marker" value="" /> |
ENDFORMINFO |
ENDFORMINFO |
my $uhome=&Apache::lonnet::homeserver($ccuname,$ccdomain); |
|
my %inccourses; |
my %inccourses; |
foreach my $key (keys(%env)) { |
foreach my $key (keys(%env)) { |
if ($key=~/^user\.priv\.cm\.\/($match_domain)\/($match_username)/) { |
if ($key=~/^user\.priv\.cm\.\/($match_domain)\/($match_username)/) { |
Line 683 ENDFORMINFO
|
Line 701 ENDFORMINFO
|
} |
} |
} |
} |
if ($uhome eq 'no_host') { |
if ($uhome eq 'no_host') { |
my $newuser; |
|
my $instsrch = { |
|
srchin => 'instd', |
|
srchby => 'uname', |
|
srchtype => 'exact', |
|
}; |
|
if ($env{'form.phase'} eq 'userpicked') { |
|
$instsrch->{'srchterm'} = $env{'form.seluname'}; |
|
$instsrch->{'srchdomain'} = $env{'form.seludom'}; |
|
} else { |
|
$instsrch->{'srchterm'} = $ccuname; |
|
$instsrch->{'srchdomain'} = $ccdomain, |
|
} |
|
if (($instsrch->{'srchterm'} ne '') && ($instsrch->{'srchdomain'} ne '')) { |
|
$newuser = $instsrch->{'srchterm'}.':'.$instsrch->{'srchdomain'}; |
|
} |
|
my (%dirsrch_results,%inst_results,$dirsrchres); |
|
if ($newuser) { |
|
if (&directorysrch_check($instsrch) eq 'ok') { |
|
($dirsrchres,%dirsrch_results) = &Apache::lonnet::inst_directory_query($instsrch); |
|
if ($dirsrchres eq 'ok') { |
|
if (ref($dirsrch_results{$newuser}) eq 'HASH') { |
|
%inst_results = %{$dirsrch_results{$newuser}}; |
|
} |
|
} |
|
} |
|
} |
|
my $home_server_list= |
my $home_server_list= |
'<option value="default" selected>default</option>'."\n". |
'<option value="default" selected>default</option>'."\n". |
&Apache::loncommon::home_server_option_list($ccdomain); |
&Apache::loncommon::home_server_option_list($ccdomain); |
|
|
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'cnu' => "Create New User", |
'cnu' => "Create New User", |
'nu' => "New User", |
'nu' => "New User", |
'id' => "in domain", |
'ind' => "in domain", |
'pd' => "Personal Data", |
'pd' => "Personal Data", |
'fn' => "First Name", |
'firstname' => "First Name", |
'mn' => "Middle Name", |
'middlename' => "Middle Name", |
'ln' => "Last Name", |
'lastname' => "Last Name", |
'gen' => "Generation", |
'generation' => "Generation", |
'mail' => "Permanent e-mail address", |
'permanentemail' => "Permanent e-mail address", |
'idsn' => "ID/Student Number", |
'id' => "ID/Student Number", |
'hs' => "Home Server", |
'hs' => "Home Server", |
'lg' => "Login Data" |
'lg' => "Login Data" |
); |
); |
|
my @userinfo = ('firstname','middlename','lastname','generation','permanentemail','id'); |
|
my %textboxsize = ( |
|
firstname => '15', |
|
middlename => '15', |
|
lastname => '15', |
|
generation => '5', |
|
permanentemail => '25', |
|
id => '15', |
|
); |
|
my %element = ( |
|
firstname => 'cfirst', |
|
middlename => 'cmiddle', |
|
lastname => 'clast', |
|
generation => 'cgen', |
|
permanentemail => 'cemail', |
|
id => 'cstid', |
|
); |
my $portfolioform; |
my $portfolioform; |
if (&Apache::lonnet::allowed('mpq',$env{'request.role.domain'})) { |
if (&Apache::lonnet::allowed('mpq',$env{'request.role.domain'})) { |
# Current user has quota modification privileges |
# Current user has quota modification privileges |
Line 735 ENDFORMINFO
|
Line 743 ENDFORMINFO
|
} |
} |
my $genhelp=&Apache::loncommon::help_open_topic('Generation'); |
my $genhelp=&Apache::loncommon::help_open_topic('Generation'); |
&initialize_authen_forms(); |
&initialize_authen_forms(); |
$r->print(<<ENDNEWUSER); |
$r->print(<<ENDTITLE); |
$start_page |
$start_page |
$crumbs |
$crumbs |
<h1>$lt{'cnu'}</h1> |
<h1>$lt{'cnu'}</h1> |
$response |
$response |
$forminfo |
$forminfo |
<h2>$lt{'nu'} "$ccuname" $lt{'id'} $ccdomain</h2> |
<h2>$lt{'nu'} "$ccuname" $lt{'ind'} $ccdomain</h2> |
<script type="text/javascript" language="Javascript"> |
<script type="text/javascript" language="Javascript"> |
$loginscript |
$loginscript |
</script> |
</script> |
<input type='hidden' name='makeuser' value='1' /> |
<input type='hidden' name='makeuser' value='1' /> |
<h3>$lt{'pd'}</h3> |
<h3>$lt{'pd'}</h3> |
<p> |
<p> |
<table> |
ENDTITLE |
<tr><td>$lt{'fn'} </td> |
$r->print(&Apache::lonhtmlcommon::start_pick_box()); |
<td><input type="text" name="cfirst" size="15" value="$inst_results{'firstname'}" /></td></tr> |
foreach my $item (@userinfo) { |
<tr><td>$lt{'mn'} </td> |
my $rowtitle = $lt{$item}; |
<td><input type="text" name="cmiddle" size="15" value="$inst_results{'middlename'}" /></td></tr> |
if ($item eq 'generation') { |
<tr><td>$lt{'ln'} </td> |
$rowtitle = $genhelp.$rowtitle; |
<td><input type="text" name="clast" size="15" value="$inst_results{'lastname'}" /></td></tr> |
} |
<tr><td>$lt{'gen'}$genhelp</td> |
$r->print(&Apache::lonhtmlcommon::row_title($rowtitle,undef,'LC_oddrow_value')."\n"); |
<td><input type="text" name="cgen" size="5" value="$inst_results{'generation'}" /></td></tr> |
if ($inst_results{$item} ne '') { |
<tr><td>$lt{'mail'}</td> |
$r->print('<input type="hidden" name="'.$element{$item}.'" value="'.$inst_results{$item}.'" />'.$inst_results{$item}); |
<td><input type="text" name="cemail" size="20" value="$inst_results{'permanentemail'}" /></td></tr> |
} else { |
</table> |
$r->print('<input type="text" name="'.$element{$item}.'" size="'.$textboxsize{$item}.'" value="" />'); |
$lt{'idsn'} <input type="text" name="cstid" size="15" value="$inst_results{'id'}" /></p> |
} |
|
$r->print(&Apache::lonhtmlcommon::row_closure(1)); |
|
} |
|
$r->print(&Apache::lonhtmlcommon::end_pick_box()); |
|
$r->print(<<ENDNEWUSER); |
|
<br /> |
$lt{'hs'}: <select name="hserver" size="1"> $home_server_list </select> |
$lt{'hs'}: <select name="hserver" size="1"> $home_server_list </select> |
|
<br /> |
<hr /> |
<hr /> |
<h3>$lt{'lg'}</h3> |
<h3>$lt{'lg'}</h3> |
<p>$generalrule </p> |
ENDNEWUSER |
<p>$authformkrb </p> |
my ($fixedauth,$varauth,$authmsg); |
<p>$authformint </p> |
if ($rulematch) { |
<p>$authformfsys</p> |
if (ref($rules) eq 'HASH') { |
<p>$authformloc </p> |
if (ref($rules->{$rulematch}) eq 'HASH') { |
|
my $authtype = $rules->{$rulematch}{'authtype'}; |
|
if ($authtype !~ /^(krb4|krb5|int|fsys|loc)$/) { |
|
$r->print(&set_login()); |
|
} else { |
|
my $authparm = $rules->{$rulematch}{'authparm'}; |
|
if ($authtype =~ /^krb(4|5)$/) { |
|
my $ver = $1; |
|
if ($authparm ne '') { |
|
$fixedauth = <<"KERB"; |
|
<input type="hidden" name="login" value="krb" /> |
|
<input type="hidden" name="krbver" value="$ver" /> |
|
<input type="hidden" name="krbarg" value="$authparm" /> |
|
KERB |
|
$authmsg = $rules->{$rulematch}{'authmsg'}; |
|
} |
|
} else { |
|
$fixedauth = |
|
'<input type="hidden" name="login" value="'.$authtype.'" />'."\n"; |
|
if ($rules->{$rulematch}{'authparmfixed'}) { |
|
$fixedauth .= |
|
'<input type="hidden" name="'.$authtype.'arg" value="'.$authparm.'" />'."\n"; |
|
} else { |
|
$varauth = |
|
'<input type="text" name="'.$authtype.'arg" value="" />'."\n"; |
|
} |
|
} |
|
} |
|
} else { |
|
$r->print(&set_login()); |
|
} |
|
} |
|
if ($authmsg) { |
|
$r->print(<<ENDAUTH); |
|
$fixedauth |
|
$authmsg |
|
$varauth |
|
ENDAUTH |
|
} |
|
} else { |
|
$r->print(&set_login()); |
|
} |
|
$r->print(<<ENDPORT); |
<hr /> |
<hr /> |
$portfolioform |
$portfolioform |
ENDNEWUSER |
ENDPORT |
} else { # user already exists |
} else { # user already exists |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'cup' => "Change User Privileges", |
'cup' => "Change User Privileges", |
Line 1014 END
|
Line 1070 END
|
$loginscript = &Apache::loncommon::authform_header(%param); |
$loginscript = &Apache::loncommon::authform_header(%param); |
} |
} |
# Check for a bad authentication type |
# Check for a bad authentication type |
unless ($currentauth=~/^krb(4|5):/ or |
if ($currentauth !~ /^(krb4|krb5|unix|internal|localauth):/) { |
$currentauth=~/^unix:/ or |
# bad authentication scheme |
$currentauth=~/^internal:/ or |
|
$currentauth=~/^localauth:/ |
|
) { # bad authentication scheme |
|
if (&Apache::lonnet::allowed('mau',$ccdomain)) { |
if (&Apache::lonnet::allowed('mau',$ccdomain)) { |
&initialize_authen_forms(); |
&initialize_authen_forms(); |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
Line 1113 $lt{'yodo'} $lt{'ifch'}: $ccdomain
|
Line 1166 $lt{'yodo'} $lt{'ifch'}: $ccdomain
|
ENDNOPRIV |
ENDNOPRIV |
} |
} |
} |
} |
if (&Apache::lonnet::allowed('mpq',$env{'request.role.domain'})) { |
|
# Current user has quota modification privileges |
|
$r->print(&portfolio_quota($ccuname,$ccdomain)); |
|
} |
|
} ## End of "check for bad authentication type" logic |
} ## End of "check for bad authentication type" logic |
|
if (&Apache::lonnet::allowed('mpq',$ccdomain)) { |
|
# Current user has quota modification privileges |
|
$r->print(&portfolio_quota($ccuname,$ccdomain)); |
|
} elsif (&Apache::lonnet::allowed('mpq',$env{'request.role.domain'})) { |
|
my %lt=&Apache::lonlocal::texthash( |
|
'dska' => "Disk space allocated to user's portfolio files", |
|
'youd' => "You do not have privileges to modify the portfolio quota for this user.", |
|
'ichr' => "If a change is required, contact a domain coordinator for the domain", |
|
); |
|
$r->print(<<ENDNOPORTPRIV); |
|
<hr /> |
|
<h3>$lt{'dska'}</h3> |
|
$lt{'youd'} $lt{'ichr'}: $ccdomain |
|
ENDNOPORTPRIV |
|
} |
} ## End of new user/old user logic |
} ## End of new user/old user logic |
$r->print('<hr /><h3>'.&mt('Add Roles').'</h3>'); |
$r->print('<hr /><h3>'.&mt('Add Roles').'</h3>'); |
# |
# |
Line 1230 ENDNOPRIV
|
Line 1294 ENDNOPRIV
|
$r->print("</form>".&Apache::loncommon::end_page()); |
$r->print("</form>".&Apache::loncommon::end_page()); |
} |
} |
|
|
|
sub set_login { |
|
my $response = (<<ENDAUTH); |
|
<p>$generalrule </p> |
|
<p>$authformkrb </p> |
|
<p>$authformint </p> |
|
<p>$authformfsys</p> |
|
<p>$authformloc </p> |
|
ENDAUTH |
|
return $response; |
|
} |
|
|
# ================================================================= Phase Three |
# ================================================================= Phase Three |
sub update_user_data { |
sub update_user_data { |
my ($r) = @_; |
my ($r) = @_; |
Line 1359 sub update_user_data {
|
Line 1434 sub update_user_data {
|
($env{'form.ccdomain'},$env{'form.ccuname'},$env{'form.cstid'}, |
($env{'form.ccdomain'},$env{'form.ccuname'},$env{'form.cstid'}, |
$amode,$genpwd,$env{'form.cfirst'}, |
$amode,$genpwd,$env{'form.cfirst'}, |
$env{'form.cmiddle'},$env{'form.clast'},$env{'form.cgen'}, |
$env{'form.cmiddle'},$env{'form.clast'},$env{'form.cgen'}, |
undef,$desiredhost |
undef,$desiredhost,$env{'form.cemail'} |
); |
); |
$r->print(&mt('Generating user').': '.$result); |
$r->print(&mt('Generating user').': '.$result); |
my $home = &Apache::lonnet::homeserver($env{'form.ccuname'}, |
my $home = &Apache::lonnet::homeserver($env{'form.ccuname'}, |
Line 2494 sub directorysrch_check {
|
Line 2569 sub directorysrch_check {
|
} |
} |
} |
} |
|
|
|
|
sub get_courseusers { |
sub get_courseusers { |
my %advhash; |
my %advhash; |
my $classlist = &Apache::loncoursedata::get_classlist(); |
my $classlist = &Apache::loncoursedata::get_classlist(); |