--- loncom/interface/loncreateuser.pm 2022/09/19 19:36:29 1.406.2.20.2.1
+++ loncom/interface/loncreateuser.pm 2017/03/26 22:19:24 1.437
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.406.2.20.2.1 2022/09/19 19:36:29 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.437 2017/03/26 22:19:24 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -71,7 +71,6 @@ use Apache::longroup;
use Apache::lonuserutils;
use Apache::loncoursequeueadmin;
use LONCAPA qw(:DEFAULT :match);
-use HTML::Entities;
my $loginscript; # piece of javascript used in two separate instances
my $authformnop;
@@ -244,7 +243,6 @@ sub build_tools_display {
'aboutme' => "Personal Information Page",
'webdav' => "WebDAV access to Authoring Spaces (if SSL and author/co-author)",
'portfolio' => "Personal User Portfolio",
- 'timezone' => "Can set Time Zone",
'avai' => "Available",
'cusa' => "availability",
'chse' => "Change setting",
@@ -254,13 +252,15 @@ sub build_tools_display {
'unofficial' => 'Can request creation of unofficial courses',
'community' => 'Can request creation of communities',
'textbook' => 'Can request creation of textbook courses',
+ 'placement' => 'Can request creation of placement tests',
'requestauthor' => 'Can request author space',
);
if ($context eq 'requestcourses') {
%userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname,
'requestcourses.official','requestcourses.unofficial',
- 'requestcourses.community','requestcourses.textbook');
- @usertools = ('official','unofficial','community','textbook');
+ 'requestcourses.community','requestcourses.textbook',
+ 'requestcourses.placement');
+ @usertools = ('official','unofficial','community','textbook','placement');
@options =('norequest','approval','autolimit','validate');
%validations = &Apache::lonnet::auto_courserequest_checks($ccdomain);
%reqtitles = &courserequest_titles();
@@ -282,8 +282,8 @@ sub build_tools_display {
} else {
%userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname,
'tools.aboutme','tools.portfolio','tools.blog',
- 'tools.webdav','tools.timezone');
- @usertools = ('aboutme','blog','webdav','portfolio','timezone');
+ 'tools.webdav');
+ @usertools = ('aboutme','blog','webdav','portfolio');
}
foreach my $item (@usertools) {
my ($custom_access,$curr_access,$cust_on,$cust_off,$tool_on,$tool_off,
@@ -335,6 +335,7 @@ sub build_tools_display {
'
'.$lt{$item}.' | '."\n".
' '."\n".
&Apache::loncommon::start_data_table_row()."\n";
+
if (($context eq 'requestcourses') || ($context eq 'requestauthor')) {
my ($curroption,$currlimit);
my $envkey = $context.'.'.$item;
@@ -453,12 +454,14 @@ sub coursereq_externaluser {
'unofficial' => 'Can request creation of unofficial courses',
'community' => 'Can request creation of communities',
'textbook' => 'Can request creation of textbook courses',
+ 'placement' => 'Can request creation of placement tests',
);
%userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname,
'reqcrsotherdom.official','reqcrsotherdom.unofficial',
- 'reqcrsotherdom.community','reqcrsotherdom.textbook');
- @usertools = ('official','unofficial','community','textbook');
+ 'reqcrsotherdom.community','reqcrsotherdom.textbook',
+ 'reqcrsotherdom.placement');
+ @usertools = ('official','unofficial','community','textbook','placement');
@options = ('approval','validate','autolimit');
%validations = &Apache::lonnet::auto_courserequest_checks($cdom);
my $optregex = join('|',@options);
@@ -539,6 +542,7 @@ sub courserequest_titles {
unofficial => 'Unofficial',
community => 'Communities',
textbook => 'Textbook',
+ placement => 'Placement Tests',
norequest => 'Not allowed',
approval => 'Approval by Dom. Coord.',
validate => 'With validation',
@@ -643,8 +647,7 @@ sub curr_requestauthor {
# =================================================================== Phase one
sub print_username_entry_form {
- my ($r,$context,$response,$srch,$forcenewuser,$crstype,$brcrum,
- $permission) = @_;
+ my ($r,$context,$response,$srch,$forcenewuser,$crstype,$brcrum) = @_;
my $defdom=$env{'request.role.domain'};
my $formtoset = 'crtuser';
if (exists($env{'form.startrolename'})) {
@@ -670,25 +673,11 @@ sub print_username_entry_form {
}
my $helpitem = 'Course_Change_Privileges';
if ($env{'form.action'} eq 'custom') {
- if ($context eq 'course') {
- $helpitem = 'Course_Editing_Custom_Roles';
- } elsif ($context eq 'domain') {
- $helpitem = 'Domain_Editing_Custom_Roles';
- }
+ $helpitem = 'Course_Editing_Custom_Roles';
} elsif ($env{'form.action'} eq 'singlestudent') {
$helpitem = 'Course_Add_Student';
} elsif ($env{'form.action'} eq 'accesslogs') {
$helpitem = 'Domain_User_Access_Logs';
- } elsif ($context eq 'author') {
- $helpitem = 'Author_Change_Privileges';
- } elsif ($context eq 'domain') {
- if ($permission->{'cusr'}) {
- $helpitem = 'Domain_Change_Privileges';
- } elsif ($permission->{'view'}) {
- $helpitem = 'Domain_View_Privileges';
- } else {
- undef($helpitem);
- }
}
my %breadcrumb_text = &singleuser_breadcrumb($crstype,$context,$defdom);
if ($env{'form.action'} eq 'custom') {
@@ -779,7 +768,6 @@ sub print_username_entry_form {
} elsif (($env{'form.action'} eq 'singleuser') &&
($context eq 'domain') && (!&Apache::lonnet::allowed('mau',$defdom))) {
$actiontext = $lt{'srvu'};
- $fixeddom = 1;
}
$r->print("$actiontext
");
if ($env{'form.origform'} ne 'crtusername') {
@@ -847,16 +835,11 @@ sub entry_form {
$inexact = 1;
}
}
- my ($cancreate,$noinstd);
- if ($env{'form.action'} eq 'accesslogs') {
- $noinstd = 1;
- } else {
- $cancreate =
- &Apache::lonuserutils::can_create_user($dom,$context,$usertype);
- }
+ my $cancreate =
+ &Apache::lonuserutils::can_create_user($dom,$context,$usertype);
my ($userpicker,$cansearch) =
&Apache::loncommon::user_picker($dom,$srch,$forcenewuser,
- 'document.crtuser',$cancreate,$usertype,$context,$fixeddom,$noinstd);
+ 'document.crtuser',$cancreate,$usertype,$context,$fixeddom);
my $srchbutton = &mt('Search');
if ($env{'form.action'} eq 'singlestudent') {
$srchbutton = &mt('Search and Enroll');
@@ -1018,10 +1001,6 @@ ENDSCRIPT
$helpitem = 'Course_Change_Privileges';
} elsif ($env{'form.action'} eq 'singlestudent') {
$helpitem = 'Course_Add_Student';
- } elsif ($context eq 'author') {
- $helpitem = 'Author_Change_Privileges';
- } elsif ($context eq 'domain') {
- $helpitem = 'Domain_Change_Privileges';
}
push (@{$brcrum},
{href => "javascript:backPage(document.usersrchform,'','')",
@@ -1067,7 +1046,7 @@ ENDSCRIPT
$r->print('');
} elsif ($env{'form.action'} eq 'accesslogs') {
$r->print("$lt{'srcva'}
");
- $r->print(&entry_form($srch->{'srchdomain'},$srch,undef,$context,undef,undef,1));
+ $r->print(&entry_form($srch->{'srchdomain'},$srch,undef,'accesslogs',undef,undef,1));
$r->print(''.$lt{'vacsel'}.'
');
}
}
@@ -1148,8 +1127,7 @@ sub print_user_modification_page {
if (($ccuname eq '') || ($ccdomain eq '')) {
my $usermsg = &mt('No username and/or domain provided.');
$env{'form.phase'} = '';
- &print_username_entry_form($r,$context,$usermsg,'','',$crstype,$brcrum,
- $permission);
+ &print_username_entry_form($r,$context,$usermsg,'','',$crstype,$brcrum);
return;
}
my ($form,$formname);
@@ -1198,8 +1176,7 @@ sub print_user_modification_page {
}
$response .= '
';
$env{'form.phase'} = '';
- &print_username_entry_form($r,$context,$response,undef,undef,$crstype,$brcrum,
- $permission);
+ &print_username_entry_form($r,$context,$response,undef,undef,$crstype,$brcrum);
return;
}
$newuser = 1;
@@ -1223,8 +1200,7 @@ sub print_user_modification_page {
'username');
}
$env{'form.phase'} = '';
- &print_username_entry_form($r,$context,$userchkmsg,undef,undef,$crstype,$brcrum,
- $permission);
+ &print_username_entry_form($r,$context,$userchkmsg,undef,undef,$crstype,$brcrum);
return;
}
}
@@ -1249,10 +1225,6 @@ sub print_user_modification_page {
my $helpitem = 'Course_Change_Privileges';
if ($env{'form.action'} eq 'singlestudent') {
$helpitem = 'Course_Add_Student';
- } elsif ($context eq 'author') {
- $helpitem = 'Author_Change_Privileges';
- } elsif ($context eq 'domain') {
- $helpitem = 'Domain_Change_Privileges';
}
push (@{$brcrum},
{href => "javascript:backPage($form)",
@@ -1488,7 +1460,7 @@ ENDAUTH
($env{'request.role.domain'} eq $ccdomain)) {
$user_text{'requestauthor'} = &domainrole_req($ccuname,$ccdomain);
}
- $user_text{'auth'} = &user_authentication($ccuname,$ccdomain,$formname,$crstype,$permission);
+ $user_text{'auth'} = &user_authentication($ccuname,$ccdomain,$formname);
if ((&Apache::lonnet::allowed('mpq',$ccdomain)) ||
(&Apache::lonnet::allowed('mut',$ccdomain)) ||
(&Apache::lonnet::allowed('udp',$ccdomain))) {
@@ -2166,7 +2138,7 @@ sub new_domain_roles {
}
sub user_authentication {
- my ($ccuname,$ccdomain,$formname,$crstype,$permission) = @_;
+ my ($ccuname,$ccdomain,$formname) = @_;
my $currentauth=&Apache::lonnet::queryauthenticate($ccuname,$ccdomain);
my $outcome;
my %lt=&Apache::lonlocal::texthash(
@@ -2204,6 +2176,7 @@ $lt{'uuas'} ($currentauth). $lt{'adcs'}.
ENDBADAUTH
}
} else { # Authentication type is valid
+
&initialize_authen_forms($ccdomain,$formname,$currentauth,'modifyuser');
my ($authformcurrent,$can_modify,@authform_others) =
&modify_login_block($ccdomain,$currentauth);
@@ -2238,43 +2211,6 @@ ENDBADAUTH
}
$outcome .= &Apache::loncommon::end_data_table();
} else {
- if (($currentauth =~ /^internal:/) &&
- (&Apache::lonuserutils::can_change_internalpass($ccuname,$ccdomain,$crstype,$permission))) {
- $outcome = <<"ENDJS";
-
-ENDJS
-
- $outcome .= ''.$lt{'ld'}.'
'.
- &Apache::loncommon::start_data_table().
- &Apache::loncommon::start_data_table_row().
- ''.&mt('Internally authenticated').' '.&mt("Change user's password?").
- ''.(' 'x2).
- ''.
- ''.
- ' '.&mt('Password').' '.
- ' | '.
- &Apache::loncommon::end_data_table_row().
- &Apache::loncommon::end_data_table();
- }
if (&Apache::lonnet::allowed('udp',$ccdomain)) {
# Current user has rights to view domain preferences for user's domain
my $result;
@@ -2383,8 +2319,8 @@ sub modify_login_block {
}
sub personal_data_display {
- my ($ccuname,$ccdomain,$newuser,$context,$inst_results,$rolesarray,$now,
- $captchaform,$emailusername,$usertype,$usernameset,$condition,$excluded,$showsubmit) = @_;
+ my ($ccuname,$ccdomain,$newuser,$context,$inst_results,$rolesarray,
+ $now,$captchaform,$emailusername,$usertype) = @_;
my ($output,%userenv,%canmodify,%canmodify_status);
my @userinfo = ('firstname','middlename','lastname','generation',
'permanentemail','id');
@@ -2411,7 +2347,6 @@ sub personal_data_display {
'inststatus' => "Affiliation",
'email' => 'E-mail address',
'valid' => 'Validation',
- 'username' => 'Username',
);
%canmodify_status =
@@ -2430,7 +2365,7 @@ sub personal_data_display {
if (ref($emailusername) eq 'HASH') {
if (ref($emailusername->{$usertype}) eq 'HASH') {
my ($infofields,$infotitles) = &Apache::loncommon::emailusername_info();
- @userinfo = ();
+ @userinfo = ();
if ((ref($infofields) eq 'ARRAY') && (ref($infotitles) eq 'HASH')) {
foreach my $field (@{$infofields}) {
if ($emailusername->{$usertype}->{$field}) {
@@ -2460,38 +2395,9 @@ sub personal_data_display {
$output = ''.$lt{'pd'}.'
'.
&Apache::lonhtmlcommon::start_pick_box();
if (($context eq 'selfcreate') && ($newuser eq 'email')) {
- my $size = 25;
- if ($condition) {
- if ($condition =~ /^\@[^\@]+$/) {
- $size = 10;
- } else {
- undef($condition);
- }
- }
- if ($excluded) {
- unless ($excluded =~ /^\@[^\@]+$/) {
- undef($condition);
- }
- }
$output .= &Apache::lonhtmlcommon::row_title($lt{'email'}.'*',undef,
'LC_oddrow_value')."\n".
- '';
- if ($condition) {
- $output .= $condition;
- } elsif ($excluded) {
- $output .= '
'.&mt('You must use an e-mail address that does not end with [_1]',
- $excluded).'';
- }
- if ($usernameset eq 'first') {
- $output .= '
';
- if ($condition) {
- $output .= &mt('Your username in LON-CAPA will be the part of your e-mail address before [_1]',
- $condition);
- } else {
- $output .= &mt('Your username in LON-CAPA will be the part of your e-mail address before the @');
- }
- $output .= '';
- }
+ '';
$rowcount ++;
$output .= &Apache::lonhtmlcommon::row_closure(1);
my $upassone = '';
@@ -2506,20 +2412,6 @@ sub personal_data_display {
'LC_oddrow_value')."\n".
$upasstwo.
&Apache::lonhtmlcommon::row_closure()."\n";
- if ($usernameset eq 'free') {
- my $onclick = "toggleUsernameDisp(this,'selfcreateusername');";
- $output .= &Apache::lonhtmlcommon::row_title($lt{'username'},undef,'LC_oddrow_value')."\n".
- ''.&mt('Use e-mail address: ').
- ''.(' 'x2).
- ''."\n".
- ''.
- '
'.&mt('Preferred username').
- ' '.
- '
'."\n".&Apache::lonhtmlcommon::row_closure(1);
- $rowcount ++;
- }
}
foreach my $item (@userinfo) {
my $rowtitle = $lt{$item};
@@ -2621,16 +2513,12 @@ sub personal_data_display {
&Apache::lonhtmlcommon::row_closure(1);
$rowcount ++;
}
- if ($showsubmit) {
- my $submit_text = &mt('Create account');
- $output .= &Apache::lonhtmlcommon::row_title()."\n".
- '
';
- if ($usertype ne '') {
- $output .= ''.
- &Apache::lonhtmlcommon::row_closure(1);
- }
- }
+ my $submit_text = &mt('Create account');
+ $output .= &Apache::lonhtmlcommon::row_title()."\n".
+ '
'.
+ ''.
+ &Apache::lonhtmlcommon::row_closure(1);
}
$output .= &Apache::lonhtmlcommon::end_pick_box();
if (wantarray) {
@@ -2714,7 +2602,7 @@ sub get_inststatuses {
# ================================================================= Phase Three
sub update_user_data {
- my ($r,$context,$crstype,$brcrum,$showcredits,$permission) = @_;
+ my ($r,$context,$crstype,$brcrum,$showcredits) = @_;
my $uhome=&Apache::lonnet::homeserver($env{'form.ccuname'},
$env{'form.ccdomain'});
# Error messages
@@ -2755,10 +2643,6 @@ sub update_user_data {
my $helpitem = 'Course_Change_Privileges';
if ($env{'form.action'} eq 'singlestudent') {
$helpitem = 'Course_Add_Student';
- } elsif ($context eq 'author') {
- $helpitem = 'Author_Change_Privileges';
- } elsif ($context eq 'domain') {
- $helpitem = 'Domain_Change_Privileges';
}
push(@{$brcrum},
{href => "javascript:backPage(document.userupdate,'$env{'form.prevphase'}','modify')",
@@ -2850,8 +2734,8 @@ sub update_user_data {
my (%alerts,%rulematch,%inst_results,%curr_rules);
my @userinfo = ('firstname','middlename','lastname','generation','permanentemail','id');
- my @usertools = ('aboutme','blog','webdav','portfolio','timezone');
- my @requestcourses = ('official','unofficial','community','textbook');
+ my @usertools = ('aboutme','blog','webdav','portfolio');
+ my @requestcourses = ('official','unofficial','community','textbook','placement');
my @requestauthor = ('requestauthor');
my ($othertitle,$usertypes,$types) =
&Apache::loncommon::sorted_inst_types($env{'form.ccdomain'});
@@ -2980,7 +2864,7 @@ sub update_user_data {
$env{'form.ccdomain'},$env{'form.ccuname'});
}
}
- $r->print('
'.&mt('Home Server').': '.$uhome.' '.
+ $r->print('
'.&mt('Home server').': '.$uhome.' '.
&Apache::lonnet::hostname($uhome));
} elsif (($env{'form.login'} ne 'nochange') &&
($env{'form.login'} ne '' )) {
@@ -2995,19 +2879,12 @@ sub update_user_data {
&Apache::lonnet::modifyuserauth(
$env{'form.ccdomain'},$env{'form.ccuname'},
$amode,$genpwd));
- $r->print('
'.&mt('Home Server').': '.&Apache::lonnet::homeserver
+ $r->print('
'.&mt('Home server').': '.&Apache::lonnet::homeserver
($env{'form.ccuname'},$env{'form.ccdomain'}));
} else {
# Okay, this is a non-fatal error.
- $r->print($error.&mt('You do not have privileges to modify the authentication configuration for this user.').$end);
+ $r->print($error.&mt('You do not have the authority to modify this users authentication information.').$end);
}
- } elsif (($env{'form.intarg'} ne '') &&
- (&Apache::lonnet::queryauthenticate($env{'form.ccuname'},$env{'form.ccdomain'}) =~ /^internal:/) &&
- (&Apache::lonuserutils::can_change_internalpass($env{'form.ccuname'},$env{'form.ccdomain'},$crstype,$permission))) {
- $r->print('Modifying authentication: '.
- &Apache::lonnet::modifyuserauth(
- $env{'form.ccdomain'},$env{'form.ccuname'},
- 'internal',$env{'form.intarg'}));
}
$r->rflush(); # Finish display of header before time consuming actions start
&Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state);
@@ -3026,13 +2903,12 @@ sub update_user_data {
my %userenv = &Apache::lonnet::get
('environment',['firstname','middlename','lastname','generation',
'id','permanentemail','portfolioquota','authorquota','inststatus',
- 'tools.aboutme','tools.blog','tools.webdav',
- 'tools.portfolio','tools.timezone',
+ 'tools.aboutme','tools.blog','tools.webdav','tools.portfolio',
'requestcourses.official','requestcourses.unofficial',
'requestcourses.community','requestcourses.textbook',
'reqcrsotherdom.official','reqcrsotherdom.unofficial',
'reqcrsotherdom.community','reqcrsotherdom.textbook',
- 'requestauthor'],
+ 'reqcrsotherdom.placement','requestauthor'],
$env{'form.ccdomain'},$env{'form.ccuname'});
my ($tmp) = keys(%userenv);
if ($tmp =~ /^(con_lost|error)/i) {
@@ -3323,8 +3199,9 @@ sub update_user_data {
($env{'user.domain'} eq $env{'form.ccdomain'})) {
my %newenvhash;
foreach my $key (keys(%changed)) {
- if (($key eq 'official') || ($key eq 'unofficial')
- || ($key eq 'community') || ($key eq 'textbook')) {
+ if (($key eq 'official') || ($key eq 'unofficial') ||
+ ($key eq 'community') || ($key eq 'textbook') ||
+ ($key eq 'placement')) {
$newenvhash{'environment.requestcourses.'.$key} =
$changeHash{'requestcourses.'.$key};
if ($changeHash{'requestcourses.'.$key}) {
@@ -3390,7 +3267,7 @@ sub update_user_data {
\%newsettingstext);
if ($env{'form.cid'} ne $userenv{'id'}) {
&Apache::lonnet::idput($env{'form.ccdomain'},
- {$env{'form.ccuname'} => $env{'form.cid'}});
+ {$env{'form.ccuname'} => $env{'form.cid'}},$uhome,'ids');
if (($recurseid) &&
(&Apache::lonnet::allowed('mau',$env{'form.ccdomain'}))) {
my $idresult =
@@ -3529,11 +3406,11 @@ sub display_userinfo {
'webdav' => 'WebDAV Availability',
'aboutme' => 'Personal Information Page Availability',
'portfolio' => 'Portfolio Availability',
- 'timezone' => 'Can set own Time Zone',
'official' => 'Can Request Official Courses',
'unofficial' => 'Can Request Unofficial Courses',
'community' => 'Can Request Communities',
'textbook' => 'Can Request Textbook Courses',
+ 'placement' => 'Can Request Placement Tests',
'requestauthor' => 'Can Request Author Role',
'inststatus' => "Affiliation",
'prvs' => 'Previous Value:',
@@ -4430,9 +4307,9 @@ sub build_roles {
# ========================================================== Custom Role Editor
sub custom_role_editor {
- my ($r,$context,$brcrum,$prefix,$permission) = @_;
+ my ($r,$brcrum,$prefix) = @_;
my $action = $env{'form.customroleaction'};
- my ($rolename,$helpitem);
+ my $rolename;
if ($action eq 'new') {
$rolename=$env{'form.newrolename'};
} else {
@@ -4443,17 +4320,14 @@ sub custom_role_editor {
if ($env{'request.course.id'}) {
$crstype = &Apache::loncommon::course_type();
$context = 'course';
- $helpitem = 'Course_Editing_Custom_Roles';
} else {
$context = 'domain';
$crstype = 'course';
- $helpitem = 'Domain_Editing_Custom_Roles';
}
$rolename=~s/[^A-Za-z0-9]//gs;
if (!$rolename || $env{'form.phase'} eq 'pickrole') {
- &print_username_entry_form($r,$context,undef,undef,undef,$crstype,$brcrum,
- $permission);
+ &print_username_entry_form($r,undef,undef,undef,undef,$crstype,$brcrum);
return;
}
@@ -4508,7 +4382,7 @@ sub custom_role_editor {
text => "Edit custom role",
faq => 282,
bug => 'Instructor Interface',
- help => $helpitem}
+ help => 'Course_Editing_Custom_Roles'}
);
my $args = { bread_crumbs => $brcrum,
bread_crumbs_component => 'User Management'};
@@ -4535,11 +4409,11 @@ ENDCCF
# ---------------------------------------------------------- Call to definerole
sub set_custom_role {
- my ($r,$context,$brcrum,$prefix,$permission) = @_;
+ my ($r,$context,$brcrum,$prefix) = @_;
my $rolename=$env{'form.rolename'};
$rolename=~s/[^A-Za-z0-9]//gs;
if (!$rolename) {
- &custom_role_editor($r,$context,$brcrum,$prefix,$permission);
+ &custom_role_editor($r,$brcrum,$prefix);
return;
}
my ($jsback,$elements) = &crumb_utilities();
@@ -4548,10 +4422,6 @@ sub set_custom_role {
.$jsback."\n"
.'// ]]>'."\n"
.''."\n";
- my $helpitem = 'Course_Editing_Custom_Roles';
- if ($context eq 'domain') {
- $helpitem = 'Domain_Editing_Custom_Roles';
- }
push(@{$brcrum},
{href => "javascript:backPage(document.customresult,'pickrole','')",
text => "Pick custom role",
@@ -4565,7 +4435,7 @@ sub set_custom_role {
text => "Result",
faq => 282,
bug => 'Instructor Interface',
- help => $helpitem,}
+ help => 'Course_Editing_Custom_Roles'},
);
my $args = { bread_crumbs => $brcrum,
bread_crumbs_component => 'User Management'};
@@ -4636,8 +4506,7 @@ sub handler {
$r->send_http_header;
return OK;
}
- my ($context,$crstype,$cid,$cnum,$cdom,$allhelpitems);
-
+ my ($context,$crstype);
if ($env{'request.course.id'}) {
$context = 'course';
$crstype = &Apache::loncommon::course_type();
@@ -4647,69 +4516,6 @@ sub handler {
$context = 'domain';
}
- my ($permission,$allowed) =
- &Apache::lonuserutils::get_permission($context,$crstype);
-
- if ($allowed) {
- my @allhelp;
- if ($context eq 'course') {
- $cid = $env{'request.course.id'};
- $cdom = $env{'course.'.$cid.'.domain'};
- $cnum = $env{'course.'.$cid.'.num'};
-
- if ($permission->{'cusr'}) {
- push(@allhelp,'Course_Create_Class_List');
- }
- if ($permission->{'view'} || $permission->{'cusr'}) {
- push(@allhelp,('Course_Change_Privileges','Course_View_Class_List'));
- }
- if ($permission->{'custom'}) {
- push(@allhelp,'Course_Editing_Custom_Roles');
- }
- if ($permission->{'cusr'}) {
- push(@allhelp,('Course_Add_Student','Course_Drop_Student'));
- }
- unless ($permission->{'cusr_section'}) {
- if (&Apache::lonnet::auto_run($cnum,$cdom) && (($permission->{'cusr'}) || ($permission->{'view'}))) {
- push(@allhelp,'Course_Automated_Enrollment');
- }
- if ($permission->{'selfenrolladmin'}) {
- push(@allhelp,'Course_Approve_Selfenroll');
- }
- }
- if ($permission->{'grp_manage'}) {
- push(@allhelp,'Course_Manage_Group');
- }
- if ($permission->{'view'} || $permission->{'cusr'}) {
- push(@allhelp,'Course_User_Logs');
- }
- } elsif ($context eq 'author') {
- push(@allhelp,('Author_Change_Privileges','Author_Create_Coauthor_List',
- 'Author_View_Coauthor_List','Author_User_Logs'));
- } else {
- if ($permission->{'cusr'}) {
- push(@allhelp,'Domain_Change_Privileges');
- if ($permission->{'activity'}) {
- push(@allhelp,'Domain_User_Access_Logs');
- }
- push(@allhelp,('Domain_Create_Users','Domain_View_Users_List'));
- if ($permission->{'custom'}) {
- push(@allhelp,'Domain_Editing_Custom_Roles');
- }
- push(@allhelp,('Domain_Role_Approvals','Domain_Username_Approvals','Domain_Change_Logs'));
- } elsif ($permission->{'view'}) {
- push(@allhelp,'Domain_View_Privileges');
- if ($permission->{'activity'}) {
- push(@allhelp,'Domain_User_Access_Logs');
- }
- push(@allhelp,('Domain_View_Users_List','Domain_Change_Logs'));
- }
- }
- if (@allhelp) {
- $allhelpitems = join(',',@allhelp);
- }
- }
-
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
['action','state','callingform','roletype','showrole','bulkaction','popup','phase',
'username','domain','srchterm','srchdomain','srchin','srchby','srchtype','queue']);
@@ -4720,9 +4526,13 @@ sub handler {
if (($env{'form.action'} ne 'dateselect') && ($env{'form.action'} ne 'displayuserreq')) {
$brcrum = [{href=>"/adm/createuser",
text=>"User Management",
- help=>$allhelpitems}
+ 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'}
];
}
+ #SD Following files not added to help, because the corresponding .tex-files seem to
+ #be missing: Course_Approve_Selfenroll,Course_User_Logs,
+ my ($permission,$allowed) =
+ &Apache::lonuserutils::get_permission($context,$crstype);
if (!$allowed) {
if ($context eq 'course') {
$r->internal_redirect('/adm/viewclasslist');
@@ -4754,16 +4564,10 @@ sub handler {
$r->print(&header(undef,$args));
$r->print(&print_main_menu($permission,$context,$crstype));
} elsif ($env{'form.action'} eq 'upload' && $permission->{'cusr'}) {
- my $helpitem = 'Course_Create_Class_List';
- if ($context eq 'author') {
- $helpitem = 'Author_Create_Coauthor_List';
- } elsif ($context eq 'domain') {
- $helpitem = 'Domain_Create_Users';
- }
push(@{$brcrum},
{ href => '/adm/createuser?action=upload&state=',
text => 'Upload Users List',
- help => $helpitem,
+ help => 'Course_Create_Class_List',
});
$bread_crumbs_component = 'Upload Users List';
$args = {bread_crumbs => $brcrum,
@@ -4775,41 +4579,16 @@ sub handler {
if (! exists($env{'form.state'})) {
&Apache::lonuserutils::print_first_users_upload_form($r,$context);
} elsif ($env{'form.state'} eq 'got_file') {
- my $result =
- &Apache::lonuserutils::print_upload_manager_form($r,$context,
- $permission,
- $crstype,$showcredits);
- if ($result eq 'missingdata') {
- delete($env{'form.state'});
- &Apache::lonuserutils::print_first_users_upload_form($r,$context);
- }
+ &Apache::lonuserutils::print_upload_manager_form($r,$context,$permission,
+ $crstype,$showcredits);
} elsif ($env{'form.state'} eq 'enrolling') {
if ($env{'form.datatoken'}) {
- my $result = &Apache::lonuserutils::upfile_drop_add($r,$context,
- $permission,
- $showcredits);
- if ($result eq 'missingdata') {
- delete($env{'form.state'});
- &Apache::lonuserutils::print_first_users_upload_form($r,$context);
- } elsif ($result eq 'invalidhome') {
- $env{'form.state'} = 'got_file';
- delete($env{'form.lcserver'});
- my $result =
- &Apache::lonuserutils::print_upload_manager_form($r,$context,$permission,
- $crstype,$showcredits);
- if ($result eq 'missingdata') {
- delete($env{'form.state'});
- &Apache::lonuserutils::print_first_users_upload_form($r,$context);
- }
- }
- } else {
- delete($env{'form.state'});
- &Apache::lonuserutils::print_first_users_upload_form($r,$context);
+ &Apache::lonuserutils::upfile_drop_add($r,$context,$permission,
+ $showcredits);
}
} else {
&Apache::lonuserutils::print_first_users_upload_form($r,$context);
}
- $r->print('');
} elsif (((($env{'form.action'} eq 'singleuser') || ($env{'form.action'}
eq 'singlestudent')) && ($permission->{'cusr'})) ||
(($env{'form.action'} eq 'singleuser') && ($permission->{'view'})) ||
@@ -4833,7 +4612,7 @@ sub handler {
.'';
$env{'form.phase'} = '';
&print_username_entry_form($r,$context,$response,$srch,undef,
- $crstype,$brcrum,$permission);
+ $crstype,$brcrum,$showcredits);
} else {
my $ccuname =&LONCAPA::clean_username($srch->{'srchterm'});
my $ccdomain=&LONCAPA::clean_domain($srch->{'srchdomain'});
@@ -4878,8 +4657,7 @@ sub handler {
# }
#}
&print_username_entry_form($r,$context,$response,$srch,
- $forcenewuser,$crstype,$brcrum,
- $permission);
+ $forcenewuser,$crstype,$brcrum);
} else {
&print_useraccesslogs_display($r,$ccuname,$ccdomain,$permission,$brcrum);
}
@@ -4896,8 +4674,7 @@ sub handler {
} else {
$env{'form.phase'} = '';
&print_username_entry_form($r,$context,$response,$srch,
- $forcenewuser,$crstype,$brcrum,
- $permission);
+ $forcenewuser,$crstype,$brcrum);
}
} elsif ($env{'form.phase'} eq 'userpicked') {
my $ccuname = &LONCAPA::clean_username($env{'form.seluname'});
@@ -4915,17 +4692,17 @@ sub handler {
&print_useraccesslogs_display($r,$ccuname,$ccdomain,$permission,$brcrum);
}
} elsif ($env{'form.phase'} eq 'update_user_data') {
- &update_user_data($r,$context,$crstype,$brcrum,$showcredits,$permission);
+ &update_user_data($r,$context,$crstype,$brcrum,$showcredits);
} else {
&print_username_entry_form($r,$context,undef,$srch,undef,$crstype,
- $brcrum,$permission);
+ $brcrum);
}
} elsif ($env{'form.action'} eq 'custom' && $permission->{'custom'}) {
my $prefix;
if ($env{'form.phase'} eq 'set_custom_roles') {
- &set_custom_role($r,$context,$brcrum,$prefix,$permission);
+ &set_custom_role($r,$context,$brcrum,$prefix);
} else {
- &custom_role_editor($r,$context,$brcrum,$prefix,$permission);
+ &custom_role_editor($r,$brcrum,$prefix);
}
} elsif (($env{'form.action'} eq 'processauthorreq') &&
($permission->{'cusr'}) &&
@@ -5031,92 +4808,56 @@ sub handler {
unless ($usertype) {
$usertype = 'default';
}
- my ($showstatus,$showemail,$pickstart);
- my $numextras = 0;
- my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom);
- if ((ref($types) eq 'ARRAY') && (@{$types} > 0)) {
- if (ref($usertypes) eq 'HASH') {
- if ($usertypes->{$usertype}) {
- $showstatus = $usertypes->{$usertype};
- } else {
- $showstatus = $othertitle;
- }
- if ($showstatus) {
- $numextras ++;
- }
- }
- }
- if (($info{$uname}{'email'} ne '') && ($info{$uname}{'email'} ne $uname)) {
- $showemail = $info{$uname}{'email'};
- $numextras ++;
- }
if (ref($domconfig{'usercreation'}{'cancreate'}{'emailusername'}{$usertype}) eq 'HASH') {
if ((ref($infofields) eq 'ARRAY') && (ref($infotitles) eq 'HASH')) {
- $pickstart = 1;
$r->print(''.&Apache::lonhtmlcommon::start_pick_box());
- my ($num,$count);
+ my ($num,$count,$showstatus);
$count = scalar(keys(%{$domconfig{'usercreation'}{'cancreate'}{'emailusername'}{$usertype}}));
- $count += $numextras;
+ 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 ++;
- unless ($count == $num) {
+ if ($count == $num) {
+ $r->print(&Apache::lonhtmlcommon::row_closure(1));
+ } else {
$r->print(&Apache::lonhtmlcommon::row_closure());
}
}
- }
- }
- if ($numextras) {
- unless ($pickstart) {
- $r->print('
'.&Apache::lonhtmlcommon::start_pick_box());
- $pickstart = 1;
- }
- if ($showemail) {
- my $closure = '';
- unless ($showstatus) {
- $closure = 1;
+ if ($showstatus) {
+ $r->print(&Apache::lonhtmlcommon::row_title(&mt('Status type (self-reported)')).
+ $showstatus.
+ &Apache::lonhtmlcommon::row_closure(1));
}
- $r->print(&Apache::lonhtmlcommon::row_title(&mt('E-mail address')).
- $showemail.
- &Apache::lonhtmlcommon::row_closure($closure));
- }
- if ($showstatus) {
- $r->print(&Apache::lonhtmlcommon::row_title(&mt('Status type[_1](self-reported)','
')).
- $showstatus.
- &Apache::lonhtmlcommon::row_closure(1));
+ $r->print(&Apache::lonhtmlcommon::end_pick_box().'
');
}
}
- if ($pickstart) {
- $r->print(&Apache::lonhtmlcommon::end_pick_box().'
');
- } else {
- $r->print(''.&mt('No information to display for this account request.').'
');
- }
- } else {
- $r->print(''.&mt('No information available for this account request.').'
');
}
}
}
}
+ $r->print(&close_popup_form());
}
- $r->print(&close_popup_form());
} elsif (($env{'form.action'} eq 'listusers') &&
($permission->{'view'} || $permission->{'cusr'})) {
- my $helpitem = 'Course_View_Class_List';
- if ($context eq 'author') {
- $helpitem = 'Author_View_Coauthor_List';
- } elsif ($context eq 'domain') {
- $helpitem = 'Domain_View_Users_List';
- }
if ($env{'form.phase'} eq 'bulkchange') {
push(@{$brcrum},
{href => '/adm/createuser?action=listusers',
text => "List Users"},
{href => "/adm/createuser",
text => "Result",
- help => $helpitem});
+ help => 'Course_View_Class_List'});
$bread_crumbs_component = 'Update Users';
$args = {bread_crumbs => $brcrum,
bread_crumbs_component => $bread_crumbs_component};
@@ -5133,7 +4874,7 @@ sub handler {
push(@{$brcrum},
{href => '/adm/createuser?action=listusers',
text => "List Users",
- help => $helpitem});
+ help => 'Course_View_Class_List'});
$bread_crumbs_component = 'List Users';
$args = {bread_crumbs => $brcrum,
bread_crumbs_component => $bread_crumbs_component};
@@ -5214,6 +4955,9 @@ sub handler {
}
} elsif ($env{'form.action'} eq 'selfenroll') {
if ($permission->{selfenrolladmin}) {
+ my $cid = $env{'request.course.id'};
+ my $cdom = $env{'course.'.$cid.'.domain'};
+ my $cnum = $env{'course.'.$cid.'.num'};
my %currsettings = (
selfenroll_types => $env{'course.'.$cid.'.internal.selfenroll_types'},
selfenroll_registered => $env{'course.'.$cid.'.internal.selfenroll_registered'},
@@ -5259,18 +5003,21 @@ sub handler {
push(@{$brcrum},
{href => '/adm/createuser?action=selfenrollqueue',
text => 'Enrollment requests',
- help => 'Course_Approve_Selfenroll'});
+ help => 'Course_Self_Enrollment'});
$bread_crumbs_component = 'Enrollment requests';
if ($env{'form.state'} eq 'done') {
push(@{$brcrum},
{href => '/adm/createuser?action=selfenrollqueue',
text => 'Result',
- help => 'Course_Approve_Selfenroll'});
+ help => 'Course_Self_Enrollment'});
$bread_crumbs_component = 'Enrollment result';
}
$args = { bread_crumbs => $brcrum,
bread_crumbs_component => $bread_crumbs_component};
$r->print(&header(undef,$args));
+ my $cid = $env{'request.course.id'};
+ my $cdom = $env{'course.'.$cid.'.domain'};
+ my $cnum = $env{'course.'.$cid.'.num'};
my $coursedesc = $env{'course.'.$cid.'.description'};
if (!exists($env{'form.state'})) {
$r->print(''.&mt('Pending enrollment requests').'
'."\n");
@@ -5679,6 +5426,7 @@ sub print_main_menu {
groups => 'Community Groups',
},
);
+ $linktext{'Placement'} = $linktext{'Course'};
my %linktitle = (
'Course' => {
@@ -5693,6 +5441,8 @@ sub print_main_menu {
},
);
+ $linktitle{'Placement'} = $linktitle{'Course'};
+
push(@{ $menu[0]->{items} }, #Category: Single Users
{
linktext => $linktext{$crstype}{'single'},
@@ -5968,13 +5718,12 @@ function validate_types(form) {
}
function check_types(num,countfail,needaction) {
- var boxname = 'selfenroll_types_'+num;
- var typeidx = getIndexByName(boxname);
+ var typeidx = getIndexByName('selfenroll_types_'+num);
var count = 0;
if (typeidx != -1) {
- if (document.$formname.elements[boxname].length) {
- for (var k=0; k '/adm/createuser?action=changelogs',
@@ -7086,10 +6831,9 @@ ENDSCRIPT
my ($nav_script,$nav_links);
# table header
- my $heading = ''.
+ my $tableheader = ''.
&mt('User access logs for: [_1]',
- &Apache::loncommon::aboutmewrapper(&Apache::loncommon::plainname($uname,$udom),$uname,$udom)).'
';
- my $tableheader = $heading
+ &Apache::loncommon::aboutmewrapper(&Apache::loncommon::plainname($uname,$udom),$uname,$udom)).'
'
.&Apache::loncommon::start_data_table_header_row()
.' | '
.''.&mt('When').' | '
@@ -7207,7 +6951,7 @@ ENDSCRIPT
$r->print(&Apache::loncommon::end_data_table().
&userlogdisplay_navlinks(\%curr,$more_records));
} else { # No content displayed above
- $r->print($heading.''
+ $r->print('
'
.&mt('There are no records to display.')
.'
');
}
@@ -7396,12 +7140,12 @@ sub role_display_filter {
&mt('Context:').'