version 1.383, 2013/12/17 06:41:44
|
version 1.396, 2014/03/03 17:11:41
|
Line 126 sub user_quotas {
|
Line 126 sub user_quotas {
|
my ($ccuname,$ccdomain) = @_; |
my ($ccuname,$ccdomain) = @_; |
my %lt = &Apache::lonlocal::texthash( |
my %lt = &Apache::lonlocal::texthash( |
'usrt' => "User Tools", |
'usrt' => "User Tools", |
'cuqu' => "Current quota", |
|
'cust' => "Custom quota", |
'cust' => "Custom quota", |
'defa' => "Default", |
|
'chqu' => "Change quota", |
'chqu' => "Change quota", |
); |
); |
|
|
Line 168 END_SCRIPT
|
Line 166 END_SCRIPT
|
|
|
my %titles = &Apache::lonlocal::texthash ( |
my %titles = &Apache::lonlocal::texthash ( |
portfolio => "Disk space allocated to user's portfolio files", |
portfolio => "Disk space allocated to user's portfolio files", |
author => "Disk space allocated to user's authoring space (if role assigned)", |
author => "Disk space allocated to user's Authoring Space (if role assigned)", |
); |
); |
foreach my $name ('portfolio','author') { |
foreach my $name ('portfolio','author') { |
my ($currquota,$quotatype,$inststatus,$defquota) = |
my ($currquota,$quotatype,$inststatus,$defquota) = |
Line 211 END_SCRIPT
|
Line 209 END_SCRIPT
|
' <td>'.$titles{$name}.'</td>'."\n". |
' <td>'.$titles{$name}.'</td>'."\n". |
' </tr>'."\n". |
' </tr>'."\n". |
&Apache::loncommon::start_data_table_row()."\n". |
&Apache::loncommon::start_data_table_row()."\n". |
' <td>'.$lt{'cuqu'}.': '. |
' <td><span class="LC_nobreak">'. |
$currquota.' MB. '. |
&mt('Current quota: [_1] MB',$currquota).'</span> '. |
$defaultinfo.'</td>'."\n". |
$defaultinfo.'</td>'."\n". |
&Apache::loncommon::end_data_table_row()."\n". |
&Apache::loncommon::end_data_table_row()."\n". |
&Apache::loncommon::start_data_table_row()."\n". |
&Apache::loncommon::start_data_table_row()."\n". |
Line 220 END_SCRIPT
|
Line 218 END_SCRIPT
|
': <label>'. |
': <label>'. |
'<input type="radio" name="custom_'.$name.'quota" id="custom_'.$name.'quota_off" '. |
'<input type="radio" name="custom_'.$name.'quota" id="custom_'.$name.'quota_off" '. |
'value="0" '.$custom_off.' onchange="javascript:quota_changes('."'custom','$name'".');"'. |
'value="0" '.$custom_off.' onchange="javascript:quota_changes('."'custom','$name'".');"'. |
' />'.$lt{'defa'}.' ('.$defquota.' MB).</label> '. |
' /><span class="LC_nobreak">'. |
|
&mt('Default ([_1] MB)',$defquota).'</span></label> '. |
' <label><input type="radio" name="custom_'.$name.'quota" id="custom_'.$name.'quota_on" '. |
' <label><input type="radio" name="custom_'.$name.'quota" id="custom_'.$name.'quota_on" '. |
'value="1" '.$custom_on.' onchange="javascript:quota_changes('."'custom','$name'".');"'. |
'value="1" '.$custom_on.' onchange="javascript:quota_changes('."'custom','$name'".');"'. |
' />'.$lt{'cust'}.':</label> '. |
' />'.$lt{'cust'}.':</label> '. |
'<input type="text" name="'.$name.'quota" id="'.$name.'quota" size ="5" '. |
'<input type="text" name="'.$name.'quota" id="'.$name.'quota" size ="5" '. |
'value="'.$showquota.'" onfocus="javascript:quota_changes('."'quota','$name'".');"'. |
'value="'.$showquota.'" onfocus="javascript:quota_changes('."'quota','$name'".');"'. |
' /> MB</span></td>'."\n". |
' /> '.&mt('MB').'</span></td>'."\n". |
&Apache::loncommon::end_data_table_row()."\n"; |
&Apache::loncommon::end_data_table_row()."\n"; |
} |
} |
} |
} |
Line 241 sub build_tools_display {
|
Line 240 sub build_tools_display {
|
my %lt = &Apache::lonlocal::texthash ( |
my %lt = &Apache::lonlocal::texthash ( |
'blog' => "Personal User Blog", |
'blog' => "Personal User Blog", |
'aboutme' => "Personal Information Page", |
'aboutme' => "Personal Information Page", |
'webdav' => "WebDAV access to authoring spaces (if SSL and author/co-author)", |
'webdav' => "WebDAV access to Authoring Spaces (if SSL and author/co-author)", |
'portfolio' => "Personal User Portfolio", |
'portfolio' => "Personal User Portfolio", |
'avai' => "Available", |
'avai' => "Available", |
'cusa' => "availability", |
'cusa' => "availability", |
Line 251 sub build_tools_display {
|
Line 250 sub build_tools_display {
|
'official' => 'Can request creation of official courses', |
'official' => 'Can request creation of official courses', |
'unofficial' => 'Can request creation of unofficial courses', |
'unofficial' => 'Can request creation of unofficial courses', |
'community' => 'Can request creation of communities', |
'community' => 'Can request creation of communities', |
|
'textbook' => 'Can request creation of textbook courses', |
'requestauthor' => 'Can request author space', |
'requestauthor' => 'Can request author space', |
); |
); |
if ($context eq 'requestcourses') { |
if ($context eq 'requestcourses') { |
%userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname, |
%userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname, |
'requestcourses.official','requestcourses.unofficial', |
'requestcourses.official','requestcourses.unofficial', |
'requestcourses.community'); |
'requestcourses.community','requestcourses.textbook'); |
@usertools = ('official','unofficial','community'); |
@usertools = ('official','unofficial','community','textbook'); |
@options =('norequest','approval','autolimit','validate'); |
@options =('norequest','approval','autolimit','validate'); |
%validations = &Apache::lonnet::auto_courserequest_checks($ccdomain); |
%validations = &Apache::lonnet::auto_courserequest_checks($ccdomain); |
%reqtitles = &courserequest_titles(); |
%reqtitles = &courserequest_titles(); |
Line 446 sub coursereq_externaluser {
|
Line 446 sub coursereq_externaluser {
|
'official' => 'Can request creation of official courses', |
'official' => 'Can request creation of official courses', |
'unofficial' => 'Can request creation of unofficial courses', |
'unofficial' => 'Can request creation of unofficial courses', |
'community' => 'Can request creation of communities', |
'community' => 'Can request creation of communities', |
|
'textbook' => 'Can request creation of textbook courses', |
); |
); |
|
|
%userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname, |
%userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname, |
'reqcrsotherdom.official','reqcrsotherdom.unofficial', |
'reqcrsotherdom.official','reqcrsotherdom.unofficial', |
'reqcrsotherdom.community'); |
'reqcrsotherdom.community','reqcrsotherdom.textbook'); |
@usertools = ('official','unofficial','community'); |
@usertools = ('official','unofficial','community','textbook'); |
@options = ('approval','validate','autolimit'); |
@options = ('approval','validate','autolimit'); |
%validations = &Apache::lonnet::auto_courserequest_checks($cdom); |
%validations = &Apache::lonnet::auto_courserequest_checks($cdom); |
my $optregex = join('|',@options); |
my $optregex = join('|',@options); |
Line 531 sub courserequest_titles {
|
Line 532 sub courserequest_titles {
|
official => 'Official', |
official => 'Official', |
unofficial => 'Unofficial', |
unofficial => 'Unofficial', |
community => 'Communities', |
community => 'Communities', |
|
textbook => 'Textbook', |
norequest => 'Not allowed', |
norequest => 'Not allowed', |
approval => 'Approval by Dom. Coord.', |
approval => 'Approval by Dom. Coord.', |
validate => 'With validation', |
validate => 'With validation', |
Line 1227 ENDFORMINFO
|
Line 1229 ENDFORMINFO
|
} |
} |
} |
} |
} |
} |
|
my $title = ''; |
if ($newuser) { |
if ($newuser) { |
my ($portfolioform,$domroleform); |
my ($portfolioform,$domroleform); |
if ((&Apache::lonnet::allowed('mpq',$env{'request.role.domain'})) || |
if ((&Apache::lonnet::allowed('mpq',$env{'request.role.domain'})) || |
Line 1240 ENDFORMINFO
|
Line 1243 ENDFORMINFO
|
} |
} |
&initialize_authen_forms($ccdomain,$formname); |
&initialize_authen_forms($ccdomain,$formname); |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'cnu' => 'Create New User', |
|
'ast' => 'as a student', |
|
'ame' => 'as a member', |
|
'ind' => 'in domain', |
|
'lg' => 'Login Data', |
'lg' => 'Login Data', |
'hs' => "Home Server", |
'hs' => "Home Server", |
); |
); |
Line 1257 $loginscript
|
Line 1256 $loginscript
|
// ]]> |
// ]]> |
</script> |
</script> |
<input type='hidden' name='makeuser' value='1' /> |
<input type='hidden' name='makeuser' value='1' /> |
<h2>$lt{'cnu'} "$ccuname" $lt{'ind'} $ccdomain |
|
ENDTITLE |
ENDTITLE |
if ($env{'form.action'} eq 'singlestudent') { |
if ($env{'form.action'} eq 'singlestudent') { |
if ($crstype eq 'Community') { |
if ($crstype eq 'Community') { |
$r->print(' ('.$lt{'ame'}.')'); |
$title = &mt('Create New User [_1] in domain [_2] as a member', |
|
'"'.$ccuname.'"','"'.$ccdomain.'"'); |
} else { |
} else { |
$r->print(' ('.$lt{'ast'}.')'); |
$title = &mt('Create New User [_1] in domain [_2] as a student', |
|
'"'.$ccuname.'"','"'.$ccdomain.'"'); |
} |
} |
|
} else { |
|
$title = &mt('Create New User [_1] in domain [_2]', |
|
'"'.$ccuname.'"','"'.$ccdomain.'"'); |
} |
} |
$r->print('</h2>'."\n".'<div class="LC_left_float">'); |
$r->print('<h2>'.$title.'</h2>'."\n"); |
my $personal_table = |
$r->print('<div class="LC_left_float">'); |
&personal_data_display($ccuname,$ccdomain,$newuser,$context, |
$r->print(&personal_data_display($ccuname,$ccdomain,$newuser,$context, |
$inst_results{$ccuname.':'.$ccdomain}); |
$inst_results{$ccuname.':'.$ccdomain})); |
$r->print($personal_table); |
# Option to disable student/employee ID conflict checking not offerred for new users. |
my ($home_server_pick,$numlib) = |
my ($home_server_pick,$numlib) = |
&Apache::loncommon::home_server_form_item($ccdomain,'hserver', |
&Apache::loncommon::home_server_form_item($ccdomain,'hserver', |
'default','hide'); |
'default','hide'); |
Line 1356 ENDAUTH
|
Line 1359 ENDAUTH
|
} |
} |
$r->print('</div><div class="LC_clear_float_footer"></div>'); |
$r->print('</div><div class="LC_clear_float_footer"></div>'); |
} else { # user already exists |
} else { # user already exists |
my %lt=&Apache::lonlocal::texthash( |
$r->print($start_page.$forminfo); |
'cup' => "Modify existing user: ", |
|
'ens' => "Enroll one student: ", |
|
'enm' => "Enroll one member: ", |
|
'id' => "in domain", |
|
); |
|
$r->print(<<ENDCHANGEUSER); |
|
$start_page |
|
$forminfo |
|
<h2> |
|
ENDCHANGEUSER |
|
if ($env{'form.action'} eq 'singlestudent') { |
if ($env{'form.action'} eq 'singlestudent') { |
if ($crstype eq 'Community') { |
if ($crstype eq 'Community') { |
$r->print($lt{'enm'}); |
$title = &mt('Enroll one member: [_1] in domain [_2]', |
|
'"'.$ccuname.'"','"'.$ccdomain.'"'); |
} else { |
} else { |
$r->print($lt{'ens'}); |
$title = &mt('Enroll one student: [_1] in domain [_2]', |
|
'"'.$ccuname.'"','"'.$ccdomain.'"'); |
} |
} |
} else { |
} else { |
$r->print($lt{'cup'}); |
$title = &mt('Modify existing user: [_1] in domain [_2]', |
} |
'"'.$ccuname.'"','"'.$ccdomain.'"'); |
$r->print(' "'.$ccuname.'" '.$lt{'id'}.' "'.$ccdomain.'"</h2>'. |
|
"\n".'<div class="LC_left_float">'); |
|
my ($personal_table,$showforceid) = |
|
&personal_data_display($ccuname,$ccdomain,$newuser,$context, |
|
$inst_results{$ccuname.':'.$ccdomain}); |
|
$r->print($personal_table); |
|
if ($showforceid) { |
|
$r->print('<table>'.&Apache::lonuserutils::forceid_change($context).'</table>'); |
|
} |
} |
|
$r->print('<h2>'.$title.'</h2>'."\n"); |
|
$r->print('<div class="LC_left_float">'); |
|
$r->print(&personal_data_display($ccuname,$ccdomain,$newuser,$context, |
|
$inst_results{$ccuname.':'.$ccdomain})); |
if (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) { |
if (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) { |
$r->print('<br /><h3>'.&mt('User Can Request Creation of Courses/Communities in this Domain?').'</h3>'. |
$r->print('<br /><h3>'.&mt('User Can Request Creation of Courses/Communities in this Domain?').'</h3>'. |
&Apache::loncommon::start_data_table()); |
&Apache::loncommon::start_data_table()); |
Line 1415 ENDCHANGEUSER
|
Line 1406 ENDCHANGEUSER
|
if (!&Apache::lonnet::allowed('mpq',$ccdomain)) { |
if (!&Apache::lonnet::allowed('mpq',$ccdomain)) { |
if (&Apache::lonnet::allowed('mpq',$env{'request.role.domain'})) { |
if (&Apache::lonnet::allowed('mpq',$env{'request.role.domain'})) { |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'dska' => "Disk quotas for user's portfolio and authoring space", |
'dska' => "Disk quotas for user's portfolio and Authoring Space", |
'youd' => "You do not have privileges to modify the portfolio and/or authoring space quotas for this user.", |
'youd' => "You do not have privileges to modify the portfolio and/or Authoring Space quotas for this user.", |
'ichr' => "If a change is required, contact a domain coordinator for the domain", |
'ichr' => "If a change is required, contact a domain coordinator for the domain", |
); |
); |
$user_text{'quota'} = <<ENDNOPORTPRIV; |
$user_text{'quota'} = <<ENDNOPORTPRIV; |
Line 1480 ENDNOTOOLSPRIV
|
Line 1471 ENDNOTOOLSPRIV
|
} |
} |
$r->print('<br /><input type="button" value="'.$btntxt.'" onclick="setSections(this.form)" />'."\n"); |
$r->print('<br /><input type="button" value="'.$btntxt.'" onclick="setSections(this.form)" />'."\n"); |
} else { |
} else { |
$r->print('<fieldset><legend>'.&mt('Add Roles').'</legend>'); |
$r->print('<div class="LC_left_float">'. |
|
'<fieldset><legend>'.&mt('Add Roles').'</legend>'); |
my $addrolesdisplay = 0; |
my $addrolesdisplay = 0; |
if ($context eq 'domain' || $context eq 'author') { |
if ($context eq 'domain' || $context eq 'author') { |
$addrolesdisplay = &new_coauthor_roles($r,$ccuname,$ccdomain); |
$addrolesdisplay = &new_coauthor_roles($r,$ccuname,$ccdomain); |
Line 1491 ENDNOTOOLSPRIV
|
Line 1483 ENDNOTOOLSPRIV
|
$addrolesdisplay = $add_domainroles; |
$addrolesdisplay = $add_domainroles; |
} |
} |
$r->print(&course_level_dc($env{'request.role.domain'},$showcredits)); |
$r->print(&course_level_dc($env{'request.role.domain'},$showcredits)); |
$r->print('</fieldset><br /><input type="button" value="'.&mt('Save').'" onclick="setCourse()" />'."\n"); |
$r->print('</fieldset></div><div class="LC_clear_float_footer"></div>'. |
|
'<br /><input type="button" value="'.&mt('Save').'" onclick="setCourse()" />'."\n"); |
} elsif ($context eq 'author') { |
} elsif ($context eq 'author') { |
if ($addrolesdisplay) { |
if ($addrolesdisplay) { |
$r->print('</fieldset><br /><input type="button" value="'.&mt('Save').'"'); |
$r->print('</fieldset></div><div class="LC_clear_float_footer"></div>'. |
|
'<br /><input type="button" value="'.&mt('Save').'"'); |
if ($newuser) { |
if ($newuser) { |
$r->print(' onclick="auth_check()" \>'."\n"); |
$r->print(' onclick="auth_check()" \>'."\n"); |
} else { |
} else { |
$r->print('onclick="this.form.submit()" \>'."\n"); |
$r->print('onclick="this.form.submit()" \>'."\n"); |
} |
} |
} else { |
} else { |
$r->print('</fieldset><br /><a href="javascript:backPage(document.cu)">'. |
$r->print('</fieldset></div>'. |
|
'<div class="LC_clear_float_footer"></div>'. |
|
'<br /><a href="javascript:backPage(document.cu)">'. |
&mt('Back to previous page').'</a>'); |
&mt('Back to previous page').'</a>'); |
} |
} |
} else { |
} else { |
$r->print(&course_level_table(\%inccourses,$showcredits,$defaultcredits)); |
$r->print(&course_level_table(\%inccourses,$showcredits,$defaultcredits)); |
$r->print('</fieldset><br /><input type="button" value="'.&mt('Save').'" onclick="setSections(this.form)" />'."\n"); |
$r->print('</fieldset></div><div class="LC_clear_float_footer"></div>'. |
|
'<br /><input type="button" value="'.&mt('Save').'" 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'}.'" /></form>'); |
$r->print('<input type="hidden" name="prevphase" value="'.$env{'form.phase'}.'" /></form><br /><br />'); |
return; |
return; |
} |
} |
|
|
Line 1816 sub display_existing_roles {
|
Line 1813 sub display_existing_roles {
|
} |
} |
} else { |
} else { |
$plaintext= |
$plaintext= |
&mt('Customrole [_1][_2]defined by [_3]', |
&mt('Custom role [_1][_2]defined by [_3]', |
'"'.$croletitle.'"', |
'"'.$croletitle.'"', |
'<br />', |
'<br />', |
$croleuname.':'.$croleudom); |
$croleuname.':'.$croleudom); |
Line 1866 sub display_existing_roles {
|
Line 1863 sub display_existing_roles {
|
} else { |
} else { |
$contextrole = &mt('Existing Roles in this Domain'); |
$contextrole = &mt('Existing Roles in this Domain'); |
} |
} |
$r->print('<div>'. |
$r->print('<div class="LC_left_float">'. |
'<fieldset><legend>'.$contextrole.'</legend>'. |
'<fieldset><legend>'.$contextrole.'</legend>'. |
&Apache::loncommon::start_data_table("LC_createuser"). |
&Apache::loncommon::start_data_table("LC_createuser"). |
&Apache::loncommon::start_data_table_header_row(). |
&Apache::loncommon::start_data_table_header_row(). |
Line 2166 sub modify_login_block {
|
Line 2163 sub modify_login_block {
|
} |
} |
|
|
sub personal_data_display { |
sub personal_data_display { |
my ($ccuname,$ccdomain,$newuser,$context,$inst_results,$rolesarray) = @_; |
my ($ccuname,$ccdomain,$newuser,$context,$inst_results,$rolesarray, |
my ($output,$showforceid,%userenv,%canmodify,%canmodify_status); |
$now,$captchaform,$emailusername,$usertype) = @_; |
|
my ($output,%userenv,%canmodify,%canmodify_status); |
my @userinfo = ('firstname','middlename','lastname','generation', |
my @userinfo = ('firstname','middlename','lastname','generation', |
'permanentemail','id'); |
'permanentemail','id'); |
my $rowcount = 0; |
my $rowcount = 0; |
my $editable = 0; |
my $editable = 0; |
%canmodify_status = |
my %textboxsize = ( |
|
firstname => '15', |
|
middlename => '15', |
|
lastname => '15', |
|
generation => '5', |
|
permanentemail => '25', |
|
id => '15', |
|
); |
|
|
|
my %lt=&Apache::lonlocal::texthash( |
|
'pd' => "Personal Data", |
|
'firstname' => "First Name", |
|
'middlename' => "Middle Name", |
|
'lastname' => "Last Name", |
|
'generation' => "Generation", |
|
'permanentemail' => "Permanent e-mail address", |
|
'id' => "Student/Employee ID", |
|
'lg' => "Login Data", |
|
'inststatus' => "Affiliation", |
|
'email' => 'E-mail address', |
|
'valid' => 'Validation', |
|
); |
|
|
|
%canmodify_status = |
&Apache::lonuserutils::can_modify_userinfo($context,$ccdomain, |
&Apache::lonuserutils::can_modify_userinfo($context,$ccdomain, |
['inststatus'],$rolesarray); |
['inststatus'],$rolesarray); |
if (!$newuser) { |
if (!$newuser) { |
Line 2184 sub personal_data_display {
|
Line 2205 sub personal_data_display {
|
&Apache::lonuserutils::can_modify_userinfo($context,$ccdomain, |
&Apache::lonuserutils::can_modify_userinfo($context,$ccdomain, |
\@userinfo,$rolesarray); |
\@userinfo,$rolesarray); |
} elsif ($context eq 'selfcreate') { |
} elsif ($context eq 'selfcreate') { |
%canmodify = &selfcreate_canmodify($context,$ccdomain,\@userinfo, |
if ($newuser eq 'email') { |
$inst_results,$rolesarray); |
if (ref($emailusername) eq 'HASH') { |
|
if (ref($emailusername->{$usertype}) eq 'HASH') { |
|
my ($infofields,$infotitles) = &Apache::loncommon::emailusername_info(); |
|
@userinfo = (); |
|
if ((ref($infofields) eq 'ARRAY') && (ref($infotitles) eq 'HASH')) { |
|
foreach my $field (@{$infofields}) { |
|
if ($emailusername->{$usertype}->{$field}) { |
|
push(@userinfo,$field); |
|
$canmodify{$field} = 1; |
|
unless ($textboxsize{$field}) { |
|
$textboxsize{$field} = 25; |
|
} |
|
unless ($lt{$field}) { |
|
$lt{$field} = $infotitles->{$field}; |
|
} |
|
if ($emailusername->{$usertype}->{$field} eq 'required') { |
|
$lt{$field} .= '<b>*</b>'; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} else { |
|
%canmodify = &selfcreate_canmodify($context,$ccdomain,\@userinfo, |
|
$inst_results,$rolesarray); |
|
} |
} |
} |
my %lt=&Apache::lonlocal::texthash( |
|
'pd' => "Personal Data", |
|
'firstname' => "First Name", |
|
'middlename' => "Middle Name", |
|
'lastname' => "Last Name", |
|
'generation' => "Generation", |
|
'permanentemail' => "Permanent e-mail address", |
|
'id' => "Student/Employee ID", |
|
'lg' => "Login Data", |
|
'inststatus' => "Affiliation", |
|
); |
|
my %textboxsize = ( |
|
firstname => '15', |
|
middlename => '15', |
|
lastname => '15', |
|
generation => '5', |
|
permanentemail => '25', |
|
id => '15', |
|
); |
|
my $genhelp=&Apache::loncommon::help_open_topic('Generation'); |
my $genhelp=&Apache::loncommon::help_open_topic('Generation'); |
$output = '<h3>'.$lt{'pd'}.'</h3>'. |
$output = '<h3>'.$lt{'pd'}.'</h3>'. |
&Apache::lonhtmlcommon::start_pick_box(); |
&Apache::lonhtmlcommon::start_pick_box(); |
|
if (($context eq 'selfcreate') && ($newuser eq 'email')) { |
|
$output .= &Apache::lonhtmlcommon::row_title($lt{'email'}.'<b>*</b>',undef, |
|
'LC_oddrow_value')."\n". |
|
'<input type="text" name="uname" size="25" value="" autocomplete="off" />'; |
|
$rowcount ++; |
|
$output .= &Apache::lonhtmlcommon::row_closure(1); |
|
my $upassone = '<input type="password" name="upass'.$now.'" size="10" autocomplete="off" />'; |
|
my $upasstwo = '<input type="password" name="upasscheck'.$now.'" size="10" autocomplete="off" />'; |
|
$output .= &Apache::lonhtmlcommon::row_title(&mt('Password').'<b>*</b>', |
|
'LC_pick_box_title', |
|
'LC_oddrow_value')."\n". |
|
$upassone."\n". |
|
&Apache::lonhtmlcommon::row_closure(1)."\n". |
|
&Apache::lonhtmlcommon::row_title(&mt('Confirm password').'<b>*</b>', |
|
'LC_pick_box_title', |
|
'LC_oddrow_value')."\n". |
|
$upasstwo. |
|
&Apache::lonhtmlcommon::row_closure()."\n"; |
|
} |
foreach my $item (@userinfo) { |
foreach my $item (@userinfo) { |
my $rowtitle = $lt{$item}; |
my $rowtitle = $lt{$item}; |
my $hiderow = 0; |
my $hiderow = 0; |
Line 2222 sub personal_data_display {
|
Line 2270 sub personal_data_display {
|
$row .= '<input type="hidden" name="c'.$item.'" value="'.$inst_results->{$item}.'" />'.$inst_results->{$item}; |
$row .= '<input type="hidden" name="c'.$item.'" value="'.$inst_results->{$item}.'" />'.$inst_results->{$item}; |
} else { |
} else { |
if ($context eq 'selfcreate') { |
if ($context eq 'selfcreate') { |
if ($canmodify{$item}) { |
if ($canmodify{$item}) { |
$row .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />'; |
$row .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" autocomplete="off" />'; |
$editable ++; |
$editable ++; |
} else { |
} else { |
$hiderow = 1; |
$hiderow = 1; |
Line 2238 sub personal_data_display {
|
Line 2286 sub personal_data_display {
|
$row .= $ccuname; |
$row .= $ccuname; |
} else { |
} else { |
if ($canmodify{$item}) { |
if ($canmodify{$item}) { |
$row .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />'; |
if ($newuser eq 'email') { |
|
$row .= '<input type="text" name="'.$item.'" size="'.$textboxsize{$item}.'" value="" autocomplete="off" />'; |
|
} else { |
|
$row .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" autocomplete="off" />'; |
|
} |
$editable ++; |
$editable ++; |
} else { |
} else { |
$hiderow = 1; |
$hiderow = 1; |
Line 2251 sub personal_data_display {
|
Line 2303 sub personal_data_display {
|
} else { |
} else { |
if ($canmodify{$item}) { |
if ($canmodify{$item}) { |
$row .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="'.$userenv{$item}.'" />'; |
$row .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="'.$userenv{$item}.'" />'; |
|
if (($item eq 'id') && (!$newuser)) { |
|
$row .= '<br />'.&Apache::lonuserutils::forceid_change($context); |
|
} |
} else { |
} else { |
$row .= $userenv{$item}; |
$row .= $userenv{$item}; |
} |
} |
if ($item eq 'id') { |
|
$showforceid = $canmodify{$item}; |
|
} |
|
} |
} |
$row .= &Apache::lonhtmlcommon::row_closure(1); |
$row .= &Apache::lonhtmlcommon::row_closure(1); |
if (!$hiderow) { |
if (!$hiderow) { |
Line 2291 sub personal_data_display {
|
Line 2343 sub personal_data_display {
|
} |
} |
} |
} |
if (!$hiderow) { |
if (!$hiderow) { |
my $row = &Apache::lonhtmlcommon::row_title(&mt('Affliations'),undef,'LC_oddrow_value')."\n". |
my $row = &Apache::lonhtmlcommon::row_title(&mt('Affiliations'),undef,'LC_oddrow_value')."\n". |
$shown.&Apache::lonhtmlcommon::row_closure(1); |
$shown.&Apache::lonhtmlcommon::row_closure(1); |
if ($context eq 'selfcreate') { |
if ($context eq 'selfcreate') { |
$rowcount ++; |
$rowcount ++; |
Line 2301 sub personal_data_display {
|
Line 2353 sub personal_data_display {
|
} |
} |
} |
} |
} |
} |
|
if (($context eq 'selfcreate') && ($newuser eq 'email')) { |
|
if ($captchaform) { |
|
$output .= &Apache::lonhtmlcommon::row_title($lt{'valid'}, |
|
'LC_pick_box_title')."\n". |
|
$captchaform."\n".'<br /><br />'. |
|
&Apache::lonhtmlcommon::row_closure(1); |
|
$rowcount ++; |
|
} |
|
my $submit_text = &mt('Create account'); |
|
$output .= &Apache::lonhtmlcommon::row_title()."\n". |
|
'<br /><input type="submit" name="createaccount" value="'. |
|
$submit_text.'" />'. |
|
'<input type="hidden" name="type" value="'.$usertype.'" />'. |
|
&Apache::lonhtmlcommon::row_closure(1); |
|
} |
$output .= &Apache::lonhtmlcommon::end_pick_box(); |
$output .= &Apache::lonhtmlcommon::end_pick_box(); |
if (wantarray) { |
if (wantarray) { |
if ($context eq 'selfcreate') { |
if ($context eq 'selfcreate') { |
return($output,$rowcount,$editable); |
return($output,$rowcount,$editable); |
} else { |
} else { |
return ($output,$showforceid); |
return $output; |
} |
} |
} else { |
} else { |
return $output; |
return $output; |
Line 2471 sub update_user_data {
|
Line 2538 sub update_user_data {
|
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') { |
$r->print($error.&mt('Unable to determine home server for '). |
$r->print( |
$env{'form.ccuname'}.&mt(' in domain '). |
$error |
$env{'form.ccdomain'}.'.'); |
.'<p class="LC_error">' |
|
.&mt('Unable to determine home server for [_1] in domain [_2].', |
|
'"'.$env{'form.ccuname'}.'"','"'.$env{'form.ccdomain'}.'"') |
|
.'</p>'); |
return; |
return; |
} |
} |
} |
} |
Line 2513 sub update_user_data {
|
Line 2583 sub update_user_data {
|
my (%alerts,%rulematch,%inst_results,%curr_rules); |
my (%alerts,%rulematch,%inst_results,%curr_rules); |
my @userinfo = ('firstname','middlename','lastname','generation','permanentemail','id'); |
my @userinfo = ('firstname','middlename','lastname','generation','permanentemail','id'); |
my @usertools = ('aboutme','blog','webdav','portfolio'); |
my @usertools = ('aboutme','blog','webdav','portfolio'); |
my @requestcourses = ('official','unofficial','community'); |
my @requestcourses = ('official','unofficial','community','textbook'); |
my @requestauthor = ('requestauthor'); |
my @requestauthor = ('requestauthor'); |
my ($othertitle,$usertypes,$types) = |
my ($othertitle,$usertypes,$types) = |
&Apache::loncommon::sorted_inst_types($env{'form.ccdomain'}); |
&Apache::loncommon::sorted_inst_types($env{'form.ccdomain'}); |
Line 2651 sub update_user_data {
|
Line 2721 sub update_user_data {
|
$r->print($error.'Invalid login mode or password'.$end.$rtnlink); |
$r->print($error.'Invalid login mode or password'.$end.$rtnlink); |
return; |
return; |
} |
} |
# Only allow authentification modification if the person has authority |
# Only allow authentication modification if the person has authority |
if (&Apache::lonnet::allowed('mau',$env{'form.ccdomain'})) { |
if (&Apache::lonnet::allowed('mau',$env{'form.ccdomain'})) { |
$r->print('Modifying authentication: '. |
$r->print('Modifying authentication: '. |
&Apache::lonnet::modifyuserauth( |
&Apache::lonnet::modifyuserauth( |
Line 2661 sub update_user_data {
|
Line 2731 sub update_user_data {
|
($env{'form.ccuname'},$env{'form.ccdomain'})); |
($env{'form.ccuname'},$env{'form.ccdomain'})); |
} else { |
} else { |
# Okay, this is a non-fatal error. |
# Okay, this is a non-fatal error. |
$r->print($error.&mt('You do not have the authority to modify this users authentification information').'.'.$end); |
$r->print($error.&mt('You do not have the authority to modify this users authentication information.').$end); |
} |
} |
} |
} |
$r->rflush(); # Finish display of header before time consuming actions start |
$r->rflush(); # Finish display of header before time consuming actions start |
Line 2683 sub update_user_data {
|
Line 2753 sub update_user_data {
|
'id','permanentemail','portfolioquota','authorquota','inststatus', |
'id','permanentemail','portfolioquota','authorquota','inststatus', |
'tools.aboutme','tools.blog','tools.webdav','tools.portfolio', |
'tools.aboutme','tools.blog','tools.webdav','tools.portfolio', |
'requestcourses.official','requestcourses.unofficial', |
'requestcourses.official','requestcourses.unofficial', |
'requestcourses.community','reqcrsotherdom.official', |
'requestcourses.community','requestcourses.textbook', |
'reqcrsotherdom.unofficial','reqcrsotherdom.community', |
'reqcrsotherdom.official','reqcrsotherdom.unofficial', |
|
'reqcrsotherdom.community','reqcrsotherdom.textbook', |
'requestauthor'], |
'requestauthor'], |
$env{'form.ccdomain'},$env{'form.ccuname'}); |
$env{'form.ccdomain'},$env{'form.ccuname'}); |
my ($tmp) = keys(%userenv); |
my ($tmp) = keys(%userenv); |
Line 2949 sub update_user_data {
|
Line 3020 sub update_user_data {
|
if ($env{'form.ccdomain'} eq $env{'request.role.domain'}) { |
if ($env{'form.ccdomain'} eq $env{'request.role.domain'}) { |
&tool_changes('requestcourses',\@requestcourses,\%oldsettings,\%oldsettingstext, |
&tool_changes('requestcourses',\@requestcourses,\%oldsettings,\%oldsettingstext, |
\%userenv,\%changeHash,\%changed,\%newsettings,\%newsettingstext); |
\%userenv,\%changeHash,\%changed,\%newsettings,\%newsettingstext); |
&tool_changes('requestauthor',\@requestauthor,\%oldsettings,\%oldsettingstext,\%userenv,\%changeHash,\%changed,\%newsettings,\%newsettingstext); |
&tool_changes('requestauthor',\@requestauthor,\%oldsettings,\%oldsettingstext, |
|
\%userenv,\%changeHash,\%changed,\%newsettings,\%newsettingstext); |
} else { |
} else { |
&tool_changes('reqcrsotherdom',\@requestcourses,\%oldsettings,\%oldsettingstext, |
&tool_changes('reqcrsotherdom',\@requestcourses,\%oldsettings,\%oldsettingstext, |
\%userenv,\%changeHash,\%changed,\%newsettings,\%newsettingstext); |
\%userenv,\%changeHash,\%changed,\%newsettings,\%newsettingstext); |
Line 2961 sub update_user_data {
|
Line 3033 sub update_user_data {
|
} |
} |
} |
} |
foreach my $name ('portfolio','author') { |
foreach my $name ('portfolio','author') { |
$oldsettings{'quota'}{$name} = $oldquota{$name}.' MB'; |
$oldsettings{'quota'}{$name} = &mt('[_1] MB',$oldquota{$name}); |
$newsettings{'quota'}{$name} = $newquota{$name}.' MB'; |
$newsettings{'quota'}{$name} = &mt('[_1] MB',$newquota{$name}); |
} |
} |
if ((keys(%namechanged) > 0) || (keys(%changed) > 0)) { |
if ((keys(%namechanged) > 0) || (keys(%changed) > 0)) { |
my ($chgresult,$namechgresult); |
my ($chgresult,$namechgresult); |
Line 3061 sub update_user_data {
|
Line 3133 sub update_user_data {
|
&Apache::lonnet::appenv(\%newenvhash); |
&Apache::lonnet::appenv(\%newenvhash); |
} |
} |
} else { # error occurred |
} else { # error occurred |
$r->print('<span class="LC_error">'.&mt('Unable to successfully change environment for').' '. |
$r->print( |
$env{'form.ccuname'}.' '.&mt('in domain').' '. |
'<p class="LC_error">' |
$env{'form.ccdomain'}.'</span><br />'); |
.&mt('Unable to successfully change environment for [_1] in domain [_2].', |
|
'"'.$env{'form.ccuname'}.'"', |
|
'"'.$env{'form.ccdomain'}.'"') |
|
.'</p>'); |
} |
} |
} else { # End of if ($env ... ) logic |
} else { # End of if ($env ... ) logic |
# They did not want to change the users name, quota, tool availability, |
# They did not want to change the users name, quota, tool availability, |
Line 3111 sub update_user_data {
|
Line 3186 sub update_user_data {
|
if ($env{'form.action'} eq 'singlestudent') { |
if ($env{'form.action'} eq 'singlestudent') { |
&enroll_single_student($r,$uhome,$amode,$genpwd,$now,$newuser,$context, |
&enroll_single_student($r,$uhome,$amode,$genpwd,$now,$newuser,$context, |
$crstype,$showcredits,$defaultcredits); |
$crstype,$showcredits,$defaultcredits); |
$r->print('<p><a href="javascript:backPage(document.userupdate)">'); |
my $linktext = ($crstype eq 'Community' ? |
if ($crstype eq 'Community') { |
&mt('Enroll Another Member') : &mt('Enroll Another Student')); |
$r->print(&mt('Enroll Another Member')); |
$r->print( |
} else { |
&Apache::lonhtmlcommon::actionbox([ |
$r->print(&mt('Enroll Another Student')); |
'<a href="javascript:backPage(document.userupdate)">' |
} |
.($crstype eq 'Community' ? |
$r->print('</a></p>'); |
&mt('Enroll Another Member') : &mt('Enroll Another Student')) |
|
.'</a>'])); |
} else { |
} else { |
my @rolechanges = &update_roles($r,$context,$showcredits); |
my @rolechanges = &update_roles($r,$context,$showcredits); |
if (keys(%namechanged) > 0) { |
if (keys(%namechanged) > 0) { |
Line 3172 sub display_userinfo {
|
Line 3248 sub display_userinfo {
|
'id' => 'Student/Employee ID', |
'id' => 'Student/Employee ID', |
'permanentemail' => 'Permanent e-mail address', |
'permanentemail' => 'Permanent e-mail address', |
'portfolioquota' => 'Disk space allocated to portfolio files', |
'portfolioquota' => 'Disk space allocated to portfolio files', |
'authorquota' => 'Disk space allocated to authoring space', |
'authorquota' => 'Disk space allocated to Authoring Space', |
'blog' => 'Blog Availability', |
'blog' => 'Blog Availability', |
'webdav' => 'WebDAV Availability', |
'webdav' => 'WebDAV Availability', |
'aboutme' => 'Personal Information Page Availability', |
'aboutme' => 'Personal Information Page Availability', |
Line 3180 sub display_userinfo {
|
Line 3256 sub display_userinfo {
|
'official' => 'Can Request Official Courses', |
'official' => 'Can Request Official Courses', |
'unofficial' => 'Can Request Unofficial Courses', |
'unofficial' => 'Can Request Unofficial Courses', |
'community' => 'Can Request Communities', |
'community' => 'Can Request Communities', |
|
'textbook' => 'Can Request Textbook Courses', |
'requestauthor' => 'Can Request Author Role', |
'requestauthor' => 'Can Request Author Role', |
'inststatus' => "Affiliation", |
'inststatus' => "Affiliation", |
'prvs' => 'Previous Value:', |
'prvs' => 'Previous Value:', |
Line 3214 sub display_userinfo {
|
Line 3291 sub display_userinfo {
|
@items = ($entry); |
@items = ($entry); |
} else { |
} else { |
@items = @{$requestcourses}; |
@items = @{$requestcourses}; |
} |
} |
foreach my $item (@items) { |
foreach my $item (@items) { |
if (($newsetting->{$item} ne $oldsetting->{$item}) || |
if (($newsetting->{$item} ne $oldsetting->{$item}) || |
($newsettingtext->{$item} ne $oldsettingtext->{$item})) { |
($newsettingtext->{$item} ne $oldsettingtext->{$item})) { |
Line 3938 sub enroll_single_student {
|
Line 4015 sub enroll_single_student {
|
} |
} |
$r->print('.<br />'.$showstart.'; '.$showend); |
$r->print('.<br />'.$showstart.'; '.$showend); |
if ($startdate <= $now && !$newuser) { |
if ($startdate <= $now && !$newuser) { |
$r->print('<p> '); |
$r->print('<p class="LC_info">'); |
if ($crstype eq 'Community') { |
if ($crstype eq 'Community') { |
$r->print(&mt('If the member is currently logged-in to LON-CAPA, the new role will be available when the member next logs in.')); |
$r->print(&mt('If the member is currently logged-in to LON-CAPA, the new role can be displayed by using the "Check for changes" link on the Roles/Courses page.')); |
} else { |
} else { |
$r->print(&mt('If the student is currently logged-in to LON-CAPA, the new role will be available when the student next logs in.')); |
$r->print(&mt('If the student is currently logged-in to LON-CAPA, the new role can be displayed by using the "Check for changes" link on the Roles/Courses page.')); |
} |
} |
$r->print('</p>'); |
$r->print('</p>'); |
} |
} |
Line 4108 sub custom_role_editor {
|
Line 4185 sub custom_role_editor {
|
my $dompriv=''; |
my $dompriv=''; |
my $coursepriv=''; |
my $coursepriv=''; |
my $body_top; |
my $body_top; |
|
my $newrole; |
my ($rdummy,$roledef)= |
my ($rdummy,$roledef)= |
&Apache::lonnet::get('roles',["rolesdef_$rolename"]); |
&Apache::lonnet::get('roles',["rolesdef_$rolename"]); |
# ------------------------------------------------------- Does this role exist? |
# ------------------------------------------------------- Does this role exist? |
Line 4120 sub custom_role_editor {
|
Line 4198 sub custom_role_editor {
|
$syspriv =~ s/bre\&S//; |
$syspriv =~ s/bre\&S//; |
} |
} |
} else { |
} else { |
|
$newrole = 1; |
$body_top .= &mt('New Role').' "'; |
$body_top .= &mt('New Role').' "'; |
$roledef=''; |
$roledef=''; |
} |
} |
Line 4389 sub set_custom_role {
|
Line 4468 sub set_custom_role {
|
bread_crumbs_component => 'User Management'}; |
bread_crumbs_component => 'User Management'}; |
$r->print(&Apache::loncommon::start_page('Save Custom Role',$jscript,$args)); |
$r->print(&Apache::loncommon::start_page('Save Custom Role',$jscript,$args)); |
|
|
|
my $newrole; |
my ($rdummy,$roledef)= |
my ($rdummy,$roledef)= |
&Apache::lonnet::get('roles',["rolesdef_$rolename"]); |
&Apache::lonnet::get('roles',["rolesdef_$rolename"]); |
|
|
Line 4399 sub set_custom_role {
|
Line 4479 sub set_custom_role {
|
} else { |
} else { |
$r->print(&mt('New Role').' "'); |
$r->print(&mt('New Role').' "'); |
$roledef=''; |
$roledef=''; |
|
$newrole = 1; |
} |
} |
$r->print($rolename.'"</h3>'); |
$r->print($rolename.'"</h3>'); |
# ------------------------------------------------------- What can be assigned? |
# ------------------------------------------------------- What can be assigned? |
Line 4429 sub set_custom_role {
|
Line 4510 sub set_custom_role {
|
$sysrole.=':'.$item; |
$sysrole.=':'.$item; |
} |
} |
} |
} |
$r->print('<br />Defining Role: '. |
# Assign role; Compile and show result |
&Apache::lonnet::definerole($rolename,$sysrole,$domrole,$courole)); |
my $errmsg; |
|
my $result = |
|
&Apache::lonnet::definerole($rolename,$sysrole,$domrole,$courole); |
|
if ($result ne 'ok') { |
|
$errmsg = ': '.$result; |
|
} |
|
my $message = |
|
&Apache::lonhtmlcommon::confirm_success( |
|
&mt('Defining Role').$errmsg, ($result eq 'ok' ? 0 : 1)); |
if ($env{'request.course.id'}) { |
if ($env{'request.course.id'}) { |
my $url='/'.$env{'request.course.id'}; |
my $url='/'.$env{'request.course.id'}; |
$url=~s/\_/\//g; |
$url=~s/\_/\//g; |
$r->print('<br />'.&mt('Assigning Role to Self').': '. |
$result = |
&Apache::lonnet::assigncustomrole($env{'user.domain'}, |
&Apache::lonnet::assigncustomrole( |
$env{'user.name'}, |
$env{'user.domain'},$env{'user.name'}, |
$url, |
$url, |
$env{'user.domain'}, |
$env{'user.domain'},$env{'user.name'}, |
$env{'user.name'}, |
$rolename,undef,undef,undef,$context); |
$rolename,undef,undef,undef,$context)); |
if ($result ne 'ok') { |
|
$errmsg = ': '.$result; |
|
} |
|
$message .= |
|
'<br />' |
|
.&Apache::lonhtmlcommon::confirm_success( |
|
&mt('Assigning Role to Self').$errmsg, ($result eq 'ok' ? 0 : 1)); |
} |
} |
$r->print( |
$r->print( |
'<p><a href="javascript:backPage(document.customresult,'."'pickrole'".')">' |
&Apache::loncommon::confirmwrapper($message) |
.&mt('Create or edit another custom role') |
.'<br />' |
.'</a></p>' |
.&Apache::lonhtmlcommon::actionbox([ |
|
'<a href="javascript:backPage(document.customresult,'."'pickrole'".')">' |
|
.&mt('Create or edit another custom role') |
|
.'</a>']) |
.'<form name="customresult" method="post" action="">' |
.'<form name="customresult" method="post" action="">' |
.&Apache::lonhtmlcommon::echo_form_input([]).'</form>' |
.&Apache::lonhtmlcommon::echo_form_input([]) |
|
.'</form>' |
); |
); |
} |
} |
|
|
Line 4471 sub handler {
|
Line 4570 sub handler {
|
|
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['action','state','callingform','roletype','showrole','bulkaction','popup','phase', |
['action','state','callingform','roletype','showrole','bulkaction','popup','phase', |
'username','domain','srchterm','srchdomain','srchin','srchby','srchtype']); |
'username','domain','srchterm','srchdomain','srchin','srchby','srchtype','queue']); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
my $args; |
my $args; |
my $brcrum = []; |
my $brcrum = []; |
my $bread_crumbs_component = 'User Management'; |
my $bread_crumbs_component = 'User Management'; |
if ($env{'form.action'} ne 'dateselect') { |
if (($env{'form.action'} ne 'dateselect') && ($env{'form.action'} ne 'displayuserreq')) { |
$brcrum = [{href=>"/adm/createuser", |
$brcrum = [{href=>"/adm/createuser", |
text=>"User Management", |
text=>"User Management", |
help=>'Course_Create_Class_List,Course_Change_Privileges,Course_View_Class_List,Course_Editing_Custom_Roles,Course_Add_Student,Course_Drop_Student,Course_Automated_Enrollment,Course_Self_Enrollment,Course_Manage_Group'} |
help=>'Course_Create_Class_List,Course_Change_Privileges,Course_View_Class_List,Course_Editing_Custom_Roles,Course_Add_Student,Course_Drop_Student,Course_Automated_Enrollment,Course_Self_Enrollment,Course_Manage_Group'} |
Line 4631 sub handler {
|
Line 4730 sub handler {
|
(&Apache::lonnet::allowed('cau',$env{'request.role.domain'}))) { |
(&Apache::lonnet::allowed('cau',$env{'request.role.domain'}))) { |
push(@{$brcrum}, |
push(@{$brcrum}, |
{href => '/adm/createuser?action=processauthorreq', |
{href => '/adm/createuser?action=processauthorreq', |
text => 'Authoring space requests', |
text => 'Authoring Space requests', |
help => 'Domain_Role_Approvals'}); |
help => 'Domain_Role_Approvals'}); |
$bread_crumbs_component = 'Authoring requests'; |
$bread_crumbs_component = 'Authoring requests'; |
if ($env{'form.state'} eq 'done') { |
if ($env{'form.state'} eq 'done') { |
Line 4643 sub handler {
|
Line 4742 sub handler {
|
} |
} |
$args = { bread_crumbs => $brcrum, |
$args = { bread_crumbs => $brcrum, |
bread_crumbs_component => $bread_crumbs_component}; |
bread_crumbs_component => $bread_crumbs_component}; |
$r->print(&header(undef,$args)); |
my $js = &usernamerequest_javascript(); |
|
$r->print(&header(&add_script($js),$args)); |
if (!exists($env{'form.state'})) { |
if (!exists($env{'form.state'})) { |
$r->print(&Apache::loncoursequeueadmin::display_queued_requests('requestauthor', |
$r->print(&Apache::loncoursequeueadmin::display_queued_requests('requestauthor', |
$env{'request.role.domain'})); |
$env{'request.role.domain'})); |
Line 4652 sub handler {
|
Line 4752 sub handler {
|
$r->print(&Apache::loncoursequeueadmin::update_request_queue('requestauthor', |
$r->print(&Apache::loncoursequeueadmin::update_request_queue('requestauthor', |
$env{'request.role.domain'})); |
$env{'request.role.domain'})); |
} |
} |
|
} elsif (($env{'form.action'} eq 'processusernamereq') && |
|
($permission->{'cusr'}) && |
|
(&Apache::lonnet::allowed('cau',$env{'request.role.domain'}))) { |
|
push(@{$brcrum}, |
|
{href => '/adm/createuser?action=processusernamereq', |
|
text => 'LON-CAPA account requests', |
|
help => 'Domain_Username_Approvals'}); |
|
$bread_crumbs_component = 'Account requests'; |
|
if ($env{'form.state'} eq 'done') { |
|
push(@{$brcrum}, |
|
{href => '/adm/createuser?action=usernamereqqueue', |
|
text => 'Result', |
|
help => 'Domain_Username_Approvals'}); |
|
$bread_crumbs_component = 'LON-CAPA account request result'; |
|
} |
|
$args = { bread_crumbs => $brcrum, |
|
bread_crumbs_component => $bread_crumbs_component}; |
|
my $js = &usernamerequest_javascript(); |
|
$r->print(&header(&add_script($js),$args)); |
|
if (!exists($env{'form.state'})) { |
|
$r->print(&Apache::loncoursequeueadmin::display_queued_requests('requestusername', |
|
$env{'request.role.domain'})); |
|
} elsif ($env{'form.state'} eq 'done') { |
|
$r->print('<h3>'.&mt('LON-CAPA account request processing').'</h3>'."\n"); |
|
$r->print(&Apache::loncoursequeueadmin::update_request_queue('requestusername', |
|
$env{'request.role.domain'})); |
|
} |
|
} elsif (($env{'form.action'} eq 'displayuserreq') && |
|
($permission->{'cusr'})) { |
|
my $dom = $env{'form.domain'}; |
|
my $uname = $env{'form.username'}; |
|
my $warning; |
|
if (($dom =~ /^$match_domain$/) && (&Apache::lonnet::domain($dom) ne '')) { |
|
if (($dom eq $env{'request.role.domain'}) && (&Apache::lonnet::allowed('ccc',$dom))) { |
|
if (($uname =~ /^$match_username$/) && ($env{'form.queue'} eq 'approval')) { |
|
my $uhome = &Apache::lonnet::homeserver($uname,$dom); |
|
if ($uhome eq 'no_host') { |
|
my $queue = $env{'form.queue'}; |
|
my $reqkey = &escape($uname).'_'.$queue; |
|
my $namespace = 'usernamequeue'; |
|
my $domconfig = &Apache::lonnet::get_domainconfiguser($dom); |
|
my %queued = |
|
&Apache::lonnet::get($namespace,[$reqkey],$dom,$domconfig); |
|
unless ($queued{$reqkey}) { |
|
$warning = &mt('No information was found for this LON-CAPA account request.'); |
|
} |
|
} else { |
|
$warning = &mt('A LON-CAPA account already exists for the requested username and domain.'); |
|
} |
|
} else { |
|
$warning = &mt('LON-CAPA account request status check is for an invalid username.'); |
|
} |
|
} else { |
|
$warning = &mt('You do not have rights to view LON-CAPA account requests in the domain specified.'); |
|
} |
|
} else { |
|
$warning = &mt('LON-CAPA account request status check is for an invalid domain.'); |
|
} |
|
my $args = { only_body => 1 }; |
|
$r->print(&header(undef,$args). |
|
'<h3>'.&mt('LON-CAPA Account Request Details').'</h3>'); |
|
if ($warning ne '') { |
|
$r->print('<div class="LC_warning">'.$warning.'</div>'); |
|
} else { |
|
my ($infofields,$infotitles) = &Apache::loncommon::emailusername_info(); |
|
my $domconfiguser = &Apache::lonnet::get_domainconfiguser($dom); |
|
my %domconfig = &Apache::lonnet::get_dom('configuration',['usercreation'],$dom); |
|
if (ref($domconfig{'usercreation'}) eq 'HASH') { |
|
if (ref($domconfig{'usercreation'}{'cancreate'}) eq 'HASH') { |
|
if (ref($domconfig{'usercreation'}{'cancreate'}{'emailusername'}) eq 'HASH') { |
|
my %info = |
|
&Apache::lonnet::get('nohist_requestedusernames',[$uname],$dom,$domconfiguser); |
|
if (ref($info{$uname}) eq 'HASH') { |
|
my $usertype = $info{$uname}{'inststatus'}; |
|
unless ($usertype) { |
|
$usertype = 'default'; |
|
} |
|
if (ref($domconfig{'usercreation'}{'cancreate'}{'emailusername'}{$usertype}) eq 'HASH') { |
|
if ((ref($infofields) eq 'ARRAY') && (ref($infotitles) eq 'HASH')) { |
|
$r->print('<div>'.&Apache::lonhtmlcommon::start_pick_box()); |
|
my ($num,$count,$showstatus); |
|
$count = scalar(keys(%{$domconfig{'usercreation'}{'cancreate'}{'emailusername'}{$usertype}})); |
|
unless ($usertype eq 'default') { |
|
my ($othertitle,$usertypes,$types) = |
|
&Apache::loncommon::sorted_inst_types($dom); |
|
if (ref($usertypes) eq 'HASH') { |
|
if ($usertypes->{$usertype}) { |
|
$showstatus = $usertypes->{$usertype}; |
|
$count ++; |
|
} |
|
} |
|
} |
|
foreach my $field (@{$infofields}) { |
|
next unless ($domconfig{'usercreation'}{'cancreate'}{'emailusername'}{$usertype}{$field}); |
|
next unless ($infotitles->{$field}); |
|
$r->print(&Apache::lonhtmlcommon::row_title($infotitles->{$field}). |
|
$info{$uname}{$field}); |
|
$num ++; |
|
if ($count == $num) { |
|
$r->print(&Apache::lonhtmlcommon::row_closure(1)); |
|
} else { |
|
$r->print(&Apache::lonhtmlcommon::row_closure()); |
|
} |
|
} |
|
if ($showstatus) { |
|
$r->print(&Apache::lonhtmlcommon::row_title(&mt('Status type (self-reported)')). |
|
$showstatus. |
|
&Apache::lonhtmlcommon::row_closure(1)); |
|
} |
|
$r->print(&Apache::lonhtmlcommon::end_pick_box().'</div>'); |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
$r->print(&close_popup_form()); |
|
} |
} elsif (($env{'form.action'} eq 'listusers') && |
} elsif (($env{'form.action'} eq 'listusers') && |
($permission->{'view'} || $permission->{'cusr'})) { |
($permission->{'view'} || $permission->{'cusr'})) { |
if ($env{'form.phase'} eq 'bulkchange') { |
if ($env{'form.phase'} eq 'bulkchange') { |
Line 4851 sub add_script {
|
Line 5069 sub add_script {
|
.'</script>'."\n"; |
.'</script>'."\n"; |
} |
} |
|
|
|
sub usernamerequest_javascript { |
|
my $js = <<ENDJS; |
|
|
|
function openusernamereqdisplay(dom,uname,queue) { |
|
var url = '/adm/createuser?action=displayuserreq'; |
|
url += '&domain='+dom+'&username='+uname+'&queue='+queue; |
|
var title = 'Account_Request_Browser'; |
|
var options = 'scrollbars=1,resizable=1,menubar=0'; |
|
options += ',width=700,height=600'; |
|
var stdeditbrowser = open(url,title,options,'1'); |
|
stdeditbrowser.focus(); |
|
return; |
|
} |
|
|
|
ENDJS |
|
} |
|
|
|
sub close_popup_form { |
|
my $close= &mt('Close Window'); |
|
return << "END"; |
|
<p><form name="displayreq" action="" method="post"> |
|
<input type="button" name="closeme" value="$close" onclick="javascript:self.close();" /> |
|
</form></p> |
|
END |
|
} |
|
|
sub verify_user_display { |
sub verify_user_display { |
my ($context) = @_; |
my ($context) = @_; |
my %lt = &Apache::lonlocal::texthash ( |
my %lt = &Apache::lonlocal::texthash ( |
Line 5104 sub print_main_menu {
|
Line 5348 sub print_main_menu {
|
linktitle => 'Approve or reject author role requests', |
linktitle => 'Approve or reject author role requests', |
}, |
}, |
{ |
{ |
|
linktext => 'LON-CAPA Account Requests', |
|
icon => 'list-add.png', |
|
#help => 'Domain_Username_Approvals', |
|
url => '/adm/createuser?action=processusernamereq', |
|
permission => $permission->{'cusr'}, |
|
linktitle => 'Approve or reject LON-CAPA account requests', |
|
}, |
|
{ |
linktext => 'Change Log', |
linktext => 'Change Log', |
icon => 'document-properties.png', |
icon => 'document-properties.png', |
#help => 'Course_User_Logs', |
#help => 'Course_User_Logs', |
Line 6971 sub course_level_dc {
|
Line 7223 sub course_level_dc {
|
my $otheritems = &Apache::loncommon::start_data_table_row()."\n". |
my $otheritems = &Apache::loncommon::start_data_table_row()."\n". |
'<td><br /><span class="LC_nobreak"><input type="text" name="coursedesc" value="" onfocus="this.blur();opencrsbrowser('."'cu','dccourse','dcdomain','coursedesc','','','','crstype'".')" />'. |
'<td><br /><span class="LC_nobreak"><input type="text" name="coursedesc" value="" onfocus="this.blur();opencrsbrowser('."'cu','dccourse','dcdomain','coursedesc','','','','crstype'".')" />'. |
$courseform.(' ' x4).'</span></td>'."\n". |
$courseform.(' ' x4).'</span></td>'."\n". |
'<td valign><br /><select name="role">'."\n"; |
'<td valign="top"><br /><select name="role">'."\n"; |
foreach my $role (@roles) { |
foreach my $role (@roles) { |
my $plrole=&Apache::lonnet::plaintext($role); |
my $plrole=&Apache::lonnet::plaintext($role); |
$otheritems .= ' <option value="'.$role.'">'.$plrole; |
$otheritems .= ' <option value="'.$role.'">'.$plrole.'</option>'; |
} |
} |
if ( keys %customroles > 0) { |
if ( keys %customroles > 0) { |
foreach my $cust (sort keys %customroles) { |
foreach my $cust (sort keys %customroles) { |
my $custrole='cr_cr_'.$env{'user.domain'}. |
my $custrole='cr_cr_'.$env{'user.domain'}. |
'_'.$env{'user.name'}.'_'.$cust; |
'_'.$env{'user.name'}.'_'.$cust; |
$otheritems .= ' <option value="'.$custrole.'">'.$cust; |
$otheritems .= ' <option value="'.$custrole.'">'.$cust.'</option>'; |
} |
} |
} |
} |
$otheritems .= '</select></td><td>'. |
$otheritems .= '</select></td><td>'. |
'<table border="0" cellspacing="0" cellpadding="0">'. |
'<table border="0" cellspacing="0" cellpadding="0">'. |
'<tr><td valign="top"><b>'.$lt{'exs'}.'</b><br /><select name="currsec">'. |
'<tr><td valign="top"><b>'.$lt{'exs'}.'</b><br /><select name="currsec">'. |
' <option value=""><--'.&mt('Pick course first').'</select></td>'. |
' <option value=""><--'.&mt('Pick course first').'</option></select></td>'. |
'<td> </td>'. |
'<td> </td>'. |
'<td valign="top"> <b>'.$lt{'new'}.'</b><br />'. |
'<td valign="top"> <b>'.$lt{'new'}.'</b><br />'. |
'<input type="text" name="newsec" value="" />'. |
'<input type="text" name="newsec" value="" />'. |