--- loncom/interface/loncreateuser.pm 2019/08/27 14:45:04 1.406.2.17
+++ loncom/interface/loncreateuser.pm 2017/03/26 22:11:54 1.436
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.406.2.17 2019/08/27 14:45:04 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.436 2017/03/26 22:11:54 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -252,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();
@@ -333,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;
@@ -451,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);
@@ -537,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',
@@ -641,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'})) {
@@ -668,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') {
@@ -777,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') {
@@ -845,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');
@@ -1016,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,'','')",
@@ -1065,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'}.' ');
}
}
@@ -1146,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);
@@ -1196,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;
@@ -1221,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;
}
}
@@ -1247,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)",
@@ -1486,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))) {
@@ -2164,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(
@@ -2202,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);
@@ -2236,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?").
- ' '.
- &mt('No').' '.(' 'x2).
- ' '.&mt('Yes').' '.
- ''.
- ' '.&mt('Password').' '.
- ' '.&mt('Visible input').'
'.
- &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;
@@ -2382,7 +2320,7 @@ sub modify_login_block {
sub personal_data_display {
my ($ccuname,$ccdomain,$newuser,$context,$inst_results,$rolesarray,
- $now,$captchaform,$emailusername,$usertype,$usernameset,$condition,$excluded) = @_;
+ $now,$captchaform,$emailusername,$usertype) = @_;
my ($output,%userenv,%canmodify,%canmodify_status);
my @userinfo = ('firstname','middlename','lastname','generation',
'permanentemail','id');
@@ -2409,7 +2347,6 @@ sub personal_data_display {
'inststatus' => "Affiliation",
'email' => 'E-mail address',
'valid' => 'Validation',
- 'username' => 'Username',
);
%canmodify_status =
@@ -2428,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}) {
@@ -2458,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 = ' ';
@@ -2504,19 +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: ').
- ' '.&mt('Yes').' '."\n".
- (' 'x2).
- ' '.&mt('No').' '."\n".
- ''.
- ''.&mt('Preferred username').
- ' '.
- '
'."\n".&Apache::lonhtmlcommon::row_closure(1);
- $rowcount ++;
- }
}
foreach my $item (@userinfo) {
my $rowtitle = $lt{$item};
@@ -2707,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
@@ -2748,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')",
@@ -2844,7 +2735,7 @@ 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');
- my @requestcourses = ('official','unofficial','community','textbook');
+ my @requestcourses = ('official','unofficial','community','textbook','placement');
my @requestauthor = ('requestauthor');
my ($othertitle,$usertypes,$types) =
&Apache::loncommon::sorted_inst_types($env{'form.ccdomain'});
@@ -2992,15 +2883,8 @@ sub update_user_data {
($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);
@@ -3024,7 +2908,7 @@ sub update_user_data {
'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) {
@@ -3315,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}) {
@@ -3382,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 =
@@ -3525,6 +3410,7 @@ sub display_userinfo {
'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:',
@@ -4421,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 {
@@ -4434,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;
}
@@ -4499,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'};
@@ -4526,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();
@@ -4539,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",
@@ -4556,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'};
@@ -4627,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();
@@ -4638,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']);
@@ -4711,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');
@@ -4745,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,
@@ -4766,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'})) ||
@@ -4824,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'});
@@ -4869,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);
}
@@ -4887,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'});
@@ -4906,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'}) &&
@@ -5022,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};
@@ -5124,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};
@@ -5205,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'},
@@ -5250,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");
@@ -5670,6 +5426,7 @@ sub print_main_menu {
groups => 'Community Groups',
},
);
+ $linktext{'Placement'} = $linktext{'Course'};
my %linktitle = (
'Course' => {
@@ -5684,6 +5441,8 @@ sub print_main_menu {
},
);
+ $linktitle{'Placement'} = $linktitle{'Course'};
+
push(@{ $menu[0]->{items} }, #Category: Single Users
{
linktext => $linktext{$crstype}{'single'},
@@ -5959,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',
@@ -7013,24 +6767,6 @@ ENDSCRIPT
return;
}
- if (&Apache::lonnet::privileged($uname,$udom,
- [$env{'request.role.domain'}],['dc','su'])) {
- unless (&Apache::lonnet::privileged($env{'user.name'},$env{'user.domain'},
- [$env{'request.role.domain'}],['dc','su'])) {
- $r->print(''
- .&mt('You need to be a privileged user to display user access logs for [_1]',
- &Apache::loncommon::aboutmewrapper(&Apache::loncommon::plainname($uname,$udom),
- $uname,$udom))
- .'
');
- if ($env{'form.popup'}) {
- $r->print(''.&mt('Close window').'
');
- } else {
- $r->print(&earlyout_accesslog_form($formname,$prevphasestr,$udom));
- }
- return;
- }
- }
-
# set defaults
my $now = time();
my $defstart = $now - (7*24*3600);
@@ -7117,7 +6853,7 @@ ENDSCRIPT
$showntableheader = 1;
}
my ($shown,$extra);
- my ($event,$data) = split(/\s+/,&unescape($event),2);
+ my ($event,$data) = split(/\s+/,&unescape($event));
if ($event eq 'Role') {
my ($rolecode,$extent) = split(/\./,$data,2);
next if ($extent eq '');
@@ -7169,17 +6905,8 @@ ENDSCRIPT
$shown = &mt('Role selection: [_1]',$rolename);
} else {
$shown = &mt($event);
- if ($data =~ /^webdav/) {
- my ($path,$clientip) = split(/\s+/,$data,2);
- $path =~ s/^webdav//;
- if ($clientip ne '') {
- $extra = &mt('Client IP address: [_1]',$clientip);
- }
- if ($path ne '') {
- $shown .= ' '.&mt('(WebDAV access to [_1])',$path);
- }
- } elsif ($data ne '') {
- $extra = &mt('Client IP address: [_1]',$data);
+ if ($data ne '') {
+ $extra = &mt('Client IP address: [_1]',$data);
}
}
$r->print(
@@ -8499,18 +8226,18 @@ sub user_search_result {
my $domd_chk = &domdirectorysrch_check($srch);
$response .= ''.$instd_chk.' ';
if ($domd_chk eq 'ok') {
- $response .= &mt('You may want to search in the LON-CAPA domain instead of the institutional directory.');
+ $response .= &mt('You may want to search in the LON-CAPA domain instead of in the institutional directory.');
}
$response .= ' ';
}
} else {
unless (($context eq 'requestcrs') && ($srch->{'srchtype'} eq 'exact')) {
my $domd_chk = &domdirectorysrch_check($srch);
- if (($domd_chk ne 'ok') && ($env{'form.action'} ne 'accesslogs')) {
+ if ($domd_chk ne 'ok') {
my $instd_chk = &instdirectorysrch_check($srch);
$response .= ''.$domd_chk.' ';
if ($instd_chk eq 'ok') {
- $response .= &mt('You may want to search in the institutional directory instead of the LON-CAPA domain.');
+ $response .= &mt('You may want to search in the institutional directory instead of in the LON-CAPA domain.');
}
$response .= ' ';
}
@@ -8611,7 +8338,7 @@ sub user_search_result {
$response = ''.
&mt('Institutional directory search is not available in domain: [_1]',$showdom).
' '.
- &mt('You may want to search in the LON-CAPA domain instead of the institutional directory.').
+ &mt('You may want to search in the LON-CAPA domain instead of in the institutional directory.').
' ';
}
}
@@ -8684,7 +8411,7 @@ sub user_search_result {
$response = ''.
&mt('Institutional directory search is not available in domain: [_1]',$showdom).
' '.
- &mt('You may want to search in the LON-CAPA domain instead of the institutional directory.').
+ &mt('You may want to search in the LON-CAPA domain instead of in the institutional directory.').
' ';
}
}
@@ -8857,7 +8584,7 @@ sub build_search_response {
if ($srch->{'srchin'} ne 'alc') {
$forcenewuser = 1;
my $cansrchinst = 0;
- if (($srch->{'srchdomain'}) && ($env{'form.action'} ne 'accesslogs')) {
+ if ($srch->{'srchdomain'}) {
my %domconfig = &Apache::lonnet::get_dom('configuration',['directorysrch'],$srch->{'srchdomain'});
if (ref($domconfig{'directorysrch'}) eq 'HASH') {
if ($domconfig{'directorysrch'}{'available'}) {