version 1.217, 2007/12/21 15:33:32
|
version 1.219, 2007/12/21 17:27:57
|
Line 809 ENDNOPORTPRIV
|
Line 809 ENDNOPORTPRIV
|
&display_existing_roles($r,$ccuname,$ccdomain,\%inccourses); |
&display_existing_roles($r,$ccuname,$ccdomain,\%inccourses); |
} |
} |
} ## End of new user/old user logic |
} ## End of new user/old user logic |
my $addrolesdisplay = 0; |
|
$r->print('<h3>'.&mt('Add Roles').'</h3>'); |
if ($env{'form.action'} eq 'singlestudent') { |
# |
$r->print('<br /><input type="button" value="'.&mt('Enroll Student').'" onClick="setSections(this.form)" />'."\n"); |
# Co-Author |
} else { |
# |
$r->print('<h3>'.&mt('Add Roles').'</h3>'); |
if (&Apache::lonuserutils::authorpriv($env{'user.name'}, |
my $addrolesdisplay = 0; |
$env{'request.role.domain'}) && |
if ($context eq 'domain' || $context eq 'author') { |
($env{'user.name'} ne $ccuname || $env{'user.domain'} ne $ccdomain)) { |
$addrolesdisplay = &new_coauthor_roles($r,$ccuname,$ccdomain); |
# No sense in assigning co-author role to yourself |
} |
$addrolesdisplay = 1; |
if ($context eq 'domain') { |
my $cuname=$env{'user.name'}; |
my $add_domainroles = &new_domain_roles($r); |
my $cudom=$env{'request.role.domain'}; |
if (!$addrolesdisplay) { |
my %lt=&Apache::lonlocal::texthash( |
$addrolesdisplay = $add_domainroles; |
'cs' => "Construction Space", |
|
'act' => "Activate", |
|
'rol' => "Role", |
|
'ext' => "Extent", |
|
'sta' => "Start", |
|
'end' => "End", |
|
'cau' => "Co-Author", |
|
'caa' => "Assistant Co-Author", |
|
'ssd' => "Set Start Date", |
|
'sed' => "Set End Date" |
|
); |
|
$r->print('<h4>'.$lt{'cs'}.'</h4>'."\n". |
|
&Apache::loncommon::start_data_table()."\n". |
|
&Apache::loncommon::start_data_table_header_row()."\n". |
|
'<th>'.$lt{'act'}.'</th><th>'.$lt{'rol'}.'</th>'. |
|
'<th>'.$lt{'ext'}.'</th><th>'.$lt{'sta'}.'</th>'. |
|
'<th>'.$lt{'end'}.'</th>'."\n". |
|
&Apache::loncommon::end_data_table_header_row()."\n". |
|
&Apache::loncommon::start_data_table_row()."\n". |
|
'<td> |
|
<input type=checkbox name="act_'.$cudom.'_'.$cuname.'_ca" /> |
|
</td> |
|
<td>'.$lt{'cau'}.'</td> |
|
<td>'.$cudom.'_'.$cuname.'</td> |
|
<td><input type="hidden" name="start_'.$cudom.'_'.$cuname.'_ca" value="" /> |
|
<a href= |
|
"javascript:pjump('."'date_start','Start Date Co-Author',document.cu.start_$cudom\_$cuname\_ca.value,'start_$cudom\_$cuname\_ca','cu.pres','dateset'".')">'.$lt{'ssd'}.'</a></td> |
|
<td><input type="hidden" name="end_'.$cudom.'_'.$cuname.'_ca" value="" /> |
|
<a href= |
|
"javascript:pjump('."'date_end','End Date Co-Author',document.cu.end_$cudom\_$cuname\_ca.value,'end_$cudom\_$cuname\_ca','cu.pres','dateset'".')">'.$lt{'sed'}.'</a></td>'."\n". |
|
&Apache::loncommon::end_data_table_row()."\n". |
|
&Apache::loncommon::start_data_table_row()."\n". |
|
'<td><input type=checkbox name="act_'.$cudom.'_'.$cuname.'_aa" /></td> |
|
<td>'.$lt{'caa'}.'</td> |
|
<td>'.$cudom.'_'.$cuname.'</td> |
|
<td><input type="hidden" name="start_'.$cudom.'_'.$cuname.'_aa" value="" /> |
|
<a href= |
|
"javascript:pjump('."'date_start','Start Date Assistant Co-Author',document.cu.start_$cudom\_$cuname\_aa.value,'start_$cudom\_$cuname\_aa','cu.pres','dateset'".')">'.$lt{'ssd'}.'</a></td> |
|
<td><input type="hidden" name="end_'.$cudom.'_'.$cuname.'_aa" value="" /> |
|
<a href= |
|
"javascript:pjump('."'date_end','End Date Assistant Co-Author',document.cu.end_$cudom\_$cuname\_aa.value,'end_$cudom\_$cuname\_aa','cu.pres','dateset'".')">'.$lt{'sed'}.'</a></td>'."\n". |
|
&Apache::loncommon::end_data_table_row()."\n". |
|
&Apache::loncommon::end_data_table()); |
|
} elsif ($env{'request.role'} =~ /^au\./) { |
|
if (!(&Apache::lonuserutils::authorpriv($env{'user.name'}, |
|
$env{'request.role.domain'}))) { |
|
$r->print('<span class="LC_error">'. |
|
&mt('You do not have privileges to assign co-author roles.'). |
|
'</span>'); |
|
} elsif (($env{'user.name'} eq $ccuname) && |
|
($env{'user.domain'} eq $ccdomain)) { |
|
$r->print(&mt('Assigning yourself a co-author or assistant co-author role in your own author area in Construction Space is not permitted')); |
|
} |
|
} |
|
# |
|
# Domain level |
|
# |
|
my $num_domain_level = 0; |
|
my $domaintext = |
|
'<h4>'.&mt('Domain Level').'</h4>'. |
|
&Apache::loncommon::start_data_table(). |
|
&Apache::loncommon::start_data_table_header_row(). |
|
'<th>'.&mt('Activate').'</th><th>'.&mt('Role').'</th><th>'. |
|
&mt('Extent').'</th>'. |
|
'<th>'.&mt('Start').'</th><th>'.&mt('End').'</th>'. |
|
&Apache::loncommon::end_data_table_header_row(); |
|
foreach my $thisdomain (sort(&Apache::lonnet::all_domains())) { |
|
foreach my $role ('dc','li','dg','au','sc') { |
|
if (&Apache::lonnet::allowed('c'.$role,$thisdomain)) { |
|
my $plrole=&Apache::lonnet::plaintext($role); |
|
my %lt=&Apache::lonlocal::texthash( |
|
'ssd' => "Set Start Date", |
|
'sed' => "Set End Date" |
|
); |
|
$num_domain_level ++; |
|
$domaintext .= |
|
&Apache::loncommon::start_data_table_row(). |
|
'<td><input type=checkbox name="act_'.$thisdomain.'_'.$role.'" /></td> |
|
<td>'.$plrole.'</td> |
|
<td>'.$thisdomain.'</td> |
|
<td><input type="hidden" name="start_'.$thisdomain.'_'.$role.'" value="" /> |
|
<a href= |
|
"javascript:pjump('."'date_start','Start Date $plrole',document.cu.start_$thisdomain\_$role.value,'start_$thisdomain\_$role','cu.pres','dateset'".')">'.$lt{'ssd'}.'</a></td> |
|
<td><input type="hidden" name="end_'.$thisdomain.'_'.$role.'" value="" /> |
|
<a href= |
|
"javascript:pjump('."'date_end','End Date $plrole',document.cu.end_$thisdomain\_$role.value,'end_$thisdomain\_$role','cu.pres','dateset'".')">'.$lt{'sed'}.'</a></td>'. |
|
&Apache::loncommon::end_data_table_row(); |
|
} |
} |
} |
$r->print(&course_level_dc($env{'request.role.domain'},'Course')); |
} |
$r->print('<br /><input type="button" value="'.&mt('Modify User').'" onClick="setCourse()" />'."\n"); |
$domaintext.= &Apache::loncommon::end_data_table(); |
} elsif ($context eq 'author') { |
if ($num_domain_level > 0) { |
if ($addrolesdisplay) { |
$r->print($domaintext); |
$r->print('<br /><input type="button" value="'.&mt('Modify User').'"'); |
$addrolesdisplay = 1; |
if ($newuser) { |
} |
$r->print(' onClick="verify_message(this.form)" \>'."\n"); |
# |
} else { |
# Course level |
$r->print('onClick="this.form.submit()" \>'."\n"); |
# |
} |
|
|
if ($env{'request.role'} =~ m{^dc\./($match_domain)/$}) { |
|
$r->print(&course_level_dc($1,'Course')); |
|
$r->print('<br /><input type="button" value="'.&mt('Modify User').'" onClick="setCourse()" />'."\n"); |
|
} elsif ($env{'request.role'} =~ m{^au\./($match_domain)/$}) { |
|
if ($addrolesdisplay) { |
|
$r->print('<br /><input type="button" value="'.&mt('Modify User').'"'); |
|
if ($newuser) { |
|
$r->print(' onClick="verify_message(this.form)" \>'."\n"); |
|
} else { |
} else { |
$r->print('onClick="this.form.submit()" \>'."\n"); |
$r->print('<br /><a href="javascript:backPage(document.cu)">'. |
|
&mt('Back to previous page').'</a>'); |
} |
} |
} else { |
} else { |
$r->print('<br /><a href="javascript:backPage(document.cu)">'. |
$r->print(&course_level_table(%inccourses)); |
&mt('Back to previous page').'</a>'); |
$r->print('<br /><input type="button" value="'.&mt('Modify User').'" onClick="setSections(this.form)" />'."\n"); |
} |
} |
} else { |
|
$r->print(&course_level_table(%inccourses)); |
|
$r->print('<br /><input type="button" value="'.&mt('Modify User').'" onClick="setSections(this.form)" />'."\n"); |
|
} |
} |
$r->print(&Apache::lonhtmlcommon::echo_form_input(['phase','userrole','ccdomain','prevphase','currstate','ccuname','ccdomain'])); |
$r->print(&Apache::lonhtmlcommon::echo_form_input(['phase','userrole','ccdomain','prevphase','currstate','ccuname','ccdomain'])); |
$r->print('<input type="hidden" name="currstate" value="" />'); |
$r->print('<input type="hidden" name="currstate" value="" />'); |
$r->print('<input type="hidden" name="prevphase" value="'.$env{'form.phase'}.'" />'); |
$r->print('<input type="hidden" name="prevphase" value="'.$env{'form.phase'}.'" />'); |
$r->print("</form>".&Apache::loncommon::end_page()); |
$r->print("</form>".&Apache::loncommon::end_page()); |
|
return; |
} |
} |
|
|
sub singleuser_breadcrumb { |
sub singleuser_breadcrumb { |
Line 1208 sub display_existing_roles {
|
Line 1111 sub display_existing_roles {
|
return; |
return; |
} |
} |
|
|
|
sub new_coauthor_roles { |
|
my ($r,$ccuname,$ccdomain) = @_; |
|
my $addrolesdisplay = 0; |
|
# |
|
# Co-Author |
|
# |
|
if (&Apache::lonuserutils::authorpriv($env{'user.name'}, |
|
$env{'request.role.domain'}) && |
|
($env{'user.name'} ne $ccuname || $env{'user.domain'} ne $ccdomain)) { |
|
# No sense in assigning co-author role to yourself |
|
$addrolesdisplay = 1; |
|
my $cuname=$env{'user.name'}; |
|
my $cudom=$env{'request.role.domain'}; |
|
my %lt=&Apache::lonlocal::texthash( |
|
'cs' => "Construction Space", |
|
'act' => "Activate", |
|
'rol' => "Role", |
|
'ext' => "Extent", |
|
'sta' => "Start", |
|
'end' => "End", |
|
'cau' => "Co-Author", |
|
'caa' => "Assistant Co-Author", |
|
'ssd' => "Set Start Date", |
|
'sed' => "Set End Date" |
|
); |
|
$r->print('<h4>'.$lt{'cs'}.'</h4>'."\n". |
|
&Apache::loncommon::start_data_table()."\n". |
|
&Apache::loncommon::start_data_table_header_row()."\n". |
|
'<th>'.$lt{'act'}.'</th><th>'.$lt{'rol'}.'</th>'. |
|
'<th>'.$lt{'ext'}.'</th><th>'.$lt{'sta'}.'</th>'. |
|
'<th>'.$lt{'end'}.'</th>'."\n". |
|
&Apache::loncommon::end_data_table_header_row()."\n". |
|
&Apache::loncommon::start_data_table_row().' |
|
<td> |
|
<input type=checkbox name="act_'.$cudom.'_'.$cuname.'_ca" /> |
|
</td> |
|
<td>'.$lt{'cau'}.'</td> |
|
<td>'.$cudom.'_'.$cuname.'</td> |
|
<td><input type="hidden" name="start_'.$cudom.'_'.$cuname.'_ca" value="" /> |
|
<a href= |
|
"javascript:pjump('."'date_start','Start Date Co-Author',document.cu.start_$cudom\_$cuname\_ca.value,'start_$cudom\_$cuname\_ca','cu.pres','dateset'".')">'.$lt{'ssd'}.'</a></td> |
|
<td><input type="hidden" name="end_'.$cudom.'_'.$cuname.'_ca" value="" /> |
|
<a href= |
|
"javascript:pjump('."'date_end','End Date Co-Author',document.cu.end_$cudom\_$cuname\_ca.value,'end_$cudom\_$cuname\_ca','cu.pres','dateset'".')">'.$lt{'sed'}.'</a></td>'."\n". |
|
&Apache::loncommon::end_data_table_row()."\n". |
|
&Apache::loncommon::start_data_table_row()."\n". |
|
'<td><input type=checkbox name="act_'.$cudom.'_'.$cuname.'_aa" /></td> |
|
<td>'.$lt{'caa'}.'</td> |
|
<td>'.$cudom.'_'.$cuname.'</td> |
|
<td><input type="hidden" name="start_'.$cudom.'_'.$cuname.'_aa" value="" /> |
|
<a href= |
|
"javascript:pjump('."'date_start','Start Date Assistant Co-Author',document.cu.start_$cudom\_$cuname\_aa.value,'start_$cudom\_$cuname\_aa','cu.pres','dateset'".')">'.$lt{'ssd'}.'</a></td> |
|
<td><input type="hidden" name="end_'.$cudom.'_'.$cuname.'_aa" value="" /> |
|
<a href= |
|
"javascript:pjump('."'date_end','End Date Assistant Co-Author',document.cu.end_$cudom\_$cuname\_aa.value,'end_$cudom\_$cuname\_aa','cu.pres','dateset'".')">'.$lt{'sed'}.'</a></td>'."\n". |
|
&Apache::loncommon::end_data_table_row()."\n". |
|
&Apache::loncommon::end_data_table()); |
|
} elsif ($env{'request.role'} =~ /^au\./) { |
|
if (!(&Apache::lonuserutils::authorpriv($env{'user.name'}, |
|
$env{'request.role.domain'}))) { |
|
$r->print('<span class="LC_error">'. |
|
&mt('You do not have privileges to assign co-author roles.'). |
|
'</span>'); |
|
} elsif (($env{'user.name'} eq $ccuname) && |
|
($env{'user.domain'} eq $ccdomain)) { |
|
$r->print(&mt('Assigning yourself a co-author or assistant co-author role in your own author area in Construction Space is not permitted')); |
|
} |
|
} |
|
return $addrolesdisplay;; |
|
} |
|
|
|
sub new_domain_roles { |
|
my ($r) = @_; |
|
my $addrolesdisplay = 0; |
|
# |
|
# Domain level |
|
# |
|
my $num_domain_level = 0; |
|
my $domaintext = |
|
'<h4>'.&mt('Domain Level').'</h4>'. |
|
&Apache::loncommon::start_data_table(). |
|
&Apache::loncommon::start_data_table_header_row(). |
|
'<th>'.&mt('Activate').'</th><th>'.&mt('Role').'</th><th>'. |
|
&mt('Extent').'</th>'. |
|
'<th>'.&mt('Start').'</th><th>'.&mt('End').'</th>'. |
|
&Apache::loncommon::end_data_table_header_row(); |
|
foreach my $thisdomain (sort(&Apache::lonnet::all_domains())) { |
|
foreach my $role ('dc','li','dg','au','sc') { |
|
if (&Apache::lonnet::allowed('c'.$role,$thisdomain)) { |
|
my $plrole=&Apache::lonnet::plaintext($role); |
|
my %lt=&Apache::lonlocal::texthash( |
|
'ssd' => "Set Start Date", |
|
'sed' => "Set End Date" |
|
); |
|
$num_domain_level ++; |
|
$domaintext .= |
|
&Apache::loncommon::start_data_table_row(). |
|
'<td><input type=checkbox name="act_'.$thisdomain.'_'.$role.'" /></td> |
|
<td>'.$plrole.'</td> |
|
<td>'.$thisdomain.'</td> |
|
<td><input type="hidden" name="start_'.$thisdomain.'_'.$role.'" value="" /> |
|
<a href= |
|
"javascript:pjump('."'date_start','Start Date $plrole',document.cu.start_$thisdomain\_$role.value,'start_$thisdomain\_$role','cu.pres','dateset'".')">'.$lt{'ssd'}.'</a></td> |
|
<td><input type="hidden" name="end_'.$thisdomain.'_'.$role.'" value="" /> |
|
<a href= |
|
"javascript:pjump('."'date_end','End Date $plrole',document.cu.end_$thisdomain\_$role.value,'end_$thisdomain\_$role','cu.pres','dateset'".')">'.$lt{'sed'}.'</a></td>'. |
|
&Apache::loncommon::end_data_table_row(); |
|
} |
|
} |
|
} |
|
$domaintext.= &Apache::loncommon::end_data_table(); |
|
if ($num_domain_level > 0) { |
|
$r->print($domaintext); |
|
$addrolesdisplay = 1; |
|
} |
|
return $addrolesdisplay; |
|
} |
|
|
sub user_authentication { |
sub user_authentication { |
my ($ccuname,$ccdomain,$krbdefdom,$abv_auth) = @_; |
my ($ccuname,$ccdomain,$krbdefdom,$abv_auth) = @_; |
my $currentauth=&Apache::lonnet::queryauthenticate($ccuname,$ccdomain); |
my $currentauth=&Apache::lonnet::queryauthenticate($ccuname,$ccdomain); |
Line 1376 sub modify_login_block {
|
Line 1397 sub modify_login_block {
|
|
|
sub personal_data_display { |
sub personal_data_display { |
my ($ccuname,$ccdomain,$newuser,$context,$inst_results) = @_; |
my ($ccuname,$ccdomain,$newuser,$context,$inst_results) = @_; |
my ($output,$showforceid,%userenv,%domconfig); |
my ($output,$showforceid,%userenv,%canmodify); |
|
my @userinfo = ('firstname','middlename','lastname','generation', |
|
'permanentemail','id'); |
if (!$newuser) { |
if (!$newuser) { |
# Get the users information |
# Get the users information |
%userenv = &Apache::lonnet::get('environment', |
%userenv = &Apache::lonnet::get('environment', |
['firstname','middlename','lastname','generation', |
['firstname','middlename','lastname','generation', |
'permanentemail','id'],$ccdomain,$ccuname); |
'permanentemail','id'],$ccdomain,$ccuname); |
%domconfig = |
%canmodify = |
&Apache::lonnet::get_dom('configuration',['usermodification'], |
&Apache::lonuserutils::can_modify_userinfo($context,$ccdomain, |
$ccdomain); |
\@userinfo); |
} |
} |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'pd' => "Personal Data", |
'pd' => "Personal Data", |
Line 1396 sub personal_data_display {
|
Line 1419 sub personal_data_display {
|
'id' => "ID/Student Number", |
'id' => "ID/Student Number", |
'lg' => "Login Data" |
'lg' => "Login Data" |
); |
); |
my @userinfo = ('firstname','middlename','lastname','generation', |
|
'permanentemail','id'); |
|
my %textboxsize = ( |
my %textboxsize = ( |
firstname => '15', |
firstname => '15', |
middlename => '15', |
middlename => '15', |
Line 1426 sub personal_data_display {
|
Line 1447 sub personal_data_display {
|
$output .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />'; |
$output .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />'; |
} |
} |
} else { |
} else { |
my $canmodify = 0; |
if ($canmodify{$item}) { |
if (&Apache::lonnet::allowed('mau',$ccdomain)) { |
|
$canmodify = 1; |
|
} else { |
|
if (ref($domconfig{'usermodification'}) eq 'HASH') { |
|
if (ref($domconfig{'usermodification'}{$context}) eq 'HASH') { |
|
foreach my $key (keys(%{$domconfig{'usermodification'}{$context}})) { |
|
if (ref($domconfig{'usermodification'}{$context}{$key}) eq 'HASH') { |
|
if ($domconfig{'usermodification'}{$context}{$key}{$item}) { |
|
$canmodify = 1; |
|
last; |
|
} |
|
} |
|
} |
|
} |
|
} elsif ($context eq 'course') { |
|
$canmodify = 1; |
|
} |
|
} |
|
if ($canmodify) { |
|
$output .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="'.$userenv{$item}.'" />'; |
$output .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="'.$userenv{$item}.'" />'; |
} else { |
} else { |
$output .= $userenv{$item}; |
$output .= $userenv{$item}; |
} |
} |
if ($item eq 'id') { |
if ($item eq 'id') { |
$showforceid = $canmodify; |
$showforceid = $canmodify{$item}; |
} |
} |
} |
} |
$output .= &Apache::lonhtmlcommon::row_closure(1); |
$output .= &Apache::lonhtmlcommon::row_closure(1); |
} |
} |
Line 1474 sub update_user_data {
|
Line 1476 sub update_user_data {
|
my $end = '</span><br /><br />'; |
my $end = '</span><br /><br />'; |
my $rtnlink = '<a href="javascript:backPage(document.userupdate,'. |
my $rtnlink = '<a href="javascript:backPage(document.userupdate,'. |
"'$env{'form.prevphase'}','modify')".'" />'. |
"'$env{'form.prevphase'}','modify')".'" />'. |
&mt('Return to previous page').'</a>'.&Apache::loncommon::end_page(); |
&mt('Return to previous page').'</a>'. |
|
&Apache::loncommon::end_page(); |
|
my $now = time; |
my $title; |
my $title; |
if (exists($env{'form.makeuser'})) { |
if (exists($env{'form.makeuser'})) { |
$title='Set Privileges for New User'; |
$title='Set Privileges for New User'; |
Line 1499 sub update_user_data {
|
Line 1503 sub update_user_data {
|
} |
} |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"javascript:backPage(document.userupdate,'$env{'form.prevphase'}','modify')", |
({href=>"javascript:backPage(document.userupdate,'$env{'form.prevphase'}','modify')", |
text=>"Set user role", |
text=>$breadcrumb_text{'modify'}, |
faq=>282,bug=>'Instructor Interface',}, |
faq=>282,bug=>'Instructor Interface',}, |
{href=>"/adm/createuser", |
{href=>"/adm/createuser", |
text=>"Result", |
text=>"Result", |
faq=>282,bug=>'Instructor Interface',}); |
faq=>282,bug=>'Instructor Interface',}); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('User Management')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('User Management')); |
|
|
my %disallowed; |
my %disallowed; |
$r->print(&update_result_form($uhome)); |
$r->print(&update_result_form($uhome)); |
# Check Inputs |
# Check Inputs |
Line 1531 sub update_user_data {
|
Line 1534 sub update_user_data {
|
$end.$rtnlink); |
$end.$rtnlink); |
return; |
return; |
} |
} |
|
if ($uhome eq 'no_host') { |
|
$newuser = 1; |
|
} |
if (! exists($env{'form.makeuser'})) { |
if (! exists($env{'form.makeuser'})) { |
# Modifying an existing user, so check the validity of the name |
# Modifying an existing user, so check the validity of the name |
if ($uhome eq 'no_host') { |
if ($uhome eq 'no_host') { |
Line 1568 sub update_user_data {
|
Line 1574 sub update_user_data {
|
return; |
return; |
} |
} |
|
|
|
|
$r->print('<h3>'.&mt('User [_1] in domain [_2]', |
$r->print('<h3>'.&mt('User [_1] in domain [_2]', |
$env{'form.ccuname'}, $env{'form.ccdomain'}).'</h3>'); |
$env{'form.ccuname'}, $env{'form.ccdomain'}).'</h3>'); |
my (%alerts,%rulematch,%inst_results,%curr_rules); |
my (%alerts,%rulematch,%inst_results,%curr_rules); |
Line 1595 sub update_user_data {
|
Line 1600 sub update_user_data {
|
my %checkhash; |
my %checkhash; |
my %checks = ('id' => 1); |
my %checks = ('id' => 1); |
%{$checkhash{$env{'form.ccuname'}.':'.$env{'form.ccdomain'}}} = ( |
%{$checkhash{$env{'form.ccuname'}.':'.$env{'form.ccdomain'}}} = ( |
'newuser' => 1, |
'newuser' => $newuser, |
'id' => $env{'form.cid'}, |
'id' => $env{'form.cid'}, |
); |
); |
if ($env{'form.cid'} ne '') { |
if ($env{'form.cid'} ne '') { |
Line 1629 sub update_user_data {
|
Line 1634 sub update_user_data {
|
$env{'form.cgeneration'},undef,$desiredhost, |
$env{'form.cgeneration'},undef,$desiredhost, |
$env{'form.cpermanentemail'}); |
$env{'form.cpermanentemail'}); |
$r->print(&mt('Generating user').': '.$result); |
$r->print(&mt('Generating user').': '.$result); |
my $home = &Apache::lonnet::homeserver($env{'form.ccuname'}, |
$uhome = &Apache::lonnet::homeserver($env{'form.ccuname'}, |
$env{'form.ccdomain'}); |
$env{'form.ccdomain'}); |
$r->print('<br />'.&mt('Home server').': '.$home.' '. |
$r->print('<br />'.&mt('Home server').': '.$uhome.' '. |
&Apache::lonnet::hostname($home)); |
&Apache::lonnet::hostname($uhome)); |
} elsif (($env{'form.login'} ne 'nochange') && |
} elsif (($env{'form.login'} ne 'nochange') && |
($env{'form.login'} ne '' )) { |
($env{'form.login'} ne '' )) { |
# Modify user privileges |
# Modify user privileges |
Line 1743 sub update_user_data {
|
Line 1748 sub update_user_data {
|
push(@longroles,&Apache::lonnet::plaintext($role)); |
push(@longroles,&Apache::lonnet::plaintext($role)); |
} |
} |
} |
} |
foreach my $item ('firstname','middlename','lastname','generation','permanentemail','id') { |
my @userinfo = ('firstname','middlename','lastname','generation','permanentemail','id'); |
my $canmodify = 0; |
my %canmodify = &Apache::lonuserutils::can_modify_userinfo($context,$env{'form.ccdomain'},\@userinfo,\@userroles); |
if (&Apache::lonnet::allowed('mau',$env{'form.ccdomain'})) { |
foreach my $item (@userinfo) { |
$canmodify = 1; |
|
} else { |
|
if ($context eq 'course' || $context eq 'author') { |
|
if (ref($domconfig{'usermodification'}) eq 'HASH') { |
|
if (ref($domconfig{'usermodification'}{$context}) eq 'HASH') { |
|
foreach my $role (@userroles) { |
|
if (ref($domconfig{'usermodification'}{$context}{$role}) eq 'HASH') { |
|
if ($domconfig{'usermodification'}{$context}{$role}{$item}) { |
|
$canmodify = 1; |
|
last; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} elsif ($context eq 'course') { |
|
if (grep(/^st$/,@userroles)) { |
|
$canmodify = 1; |
|
} |
|
} |
|
} |
|
# Strip leading and trailing whitespace |
# Strip leading and trailing whitespace |
$env{'form.c'.$item} =~ s/(\s+$|^\s+)//g; |
$env{'form.c'.$item} =~ s/(\s+$|^\s+)//g; |
if (!$canmodify) { |
if (!$canmodify{$item}) { |
if (defined($env{'form.c'.$item})) { |
if (defined($env{'form.c'.$item})) { |
if ($env{'form.c'.$item} ne $userenv{$item}) { |
if ($env{'form.c'.$item} ne $userenv{$item}) { |
push(@mod_disallowed,$item); |
push(@mod_disallowed,$item); |