--- loncom/interface/loncreateuser.pm 2016/11/13 15:47:04 1.406.2.7
+++ loncom/interface/loncreateuser.pm 2016/11/12 00:16:24 1.421
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.406.2.7 2016/11/13 15:47:04 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.421 2016/11/12 00:16:24 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);
@@ -615,6 +620,7 @@ sub courserequest_titles {
unofficial => 'Unofficial',
community => 'Communities',
textbook => 'Textbook',
+ placement => 'Placement Tests',
norequest => 'Not allowed',
approval => 'Approval by Dom. Coord.',
validate => 'With validation',
@@ -751,7 +757,7 @@ sub print_username_entry_form {
} elsif ($env{'form.action'} eq 'accesslogs') {
$helpitem = 'Domain_User_Access_Logs';
}
- my %breadcrumb_text = &singleuser_breadcrumb($crstype,$context,$defdom);
+ my %breadcrumb_text = &singleuser_breadcrumb($crstype);
if ($env{'form.action'} eq 'custom') {
push(@{$brcrum},
{href=>"javascript:backPage(document.crtuser)",
@@ -779,7 +785,6 @@ sub print_username_entry_form {
'srst' => 'Search for a user and enroll as a student',
'srme' => 'Search for a user and enroll as a member',
'srad' => 'Search for a user and modify/add user information or roles',
- 'srvu' => 'Search for a user and view user information and roles',
'srva' => 'Search for a user and view access log information',
'usr' => "Username",
'dom' => "Domain",
@@ -835,9 +840,6 @@ sub print_username_entry_form {
}
} elsif ($env{'form.action'} eq 'accesslogs') {
$actiontext = $lt{'srva'};
- } elsif (($env{'form.action'} eq 'singleuser') &&
- ($context eq 'domain') && (!&Apache::lonnet::allowed('mau',$defdom))) {
- $actiontext = $lt{'srvu'};
}
$r->print("
$actiontext
");
if ($env{'form.origform'} ne 'crtusername') {
@@ -931,9 +933,7 @@ ENDBLOCK
} else {
$output = '
'.$userpicker.'
';
}
- if (($env{'form.phase'} eq '') && ($env{'form.action'} ne 'accesslogs') &&
- (!(($env{'form.action'} eq 'singleuser') && ($context eq 'domain') &&
- (!&Apache::lonnet::allowed('mau',$env{'request.role.domain'}))))) {
+ if (($env{'form.phase'} eq '') && ($env{'form.action'} ne 'accesslogs')) {
my $defdom=$env{'request.role.domain'};
my $domform = &Apache::loncommon::select_dom_form($defdom,'srchdomain');
my %lt=&Apache::lonlocal::texthash(
@@ -1050,9 +1050,7 @@ ENDSCRIPT
'stusrch' => "User Search to enroll student",
'memsrch' => "User Search to enroll member",
'srcva' => "Search for a user and view access log information",
- 'usrvu' => "User Search to view user roles",
'usel' => "Select a user to add/modify roles",
- 'suvr' => "Select a user to view roles",
'stusel' => "Select a user to enroll as a student",
'memsel' => "Select a user to enroll as a member",
'vacsel' => "Select a user to view access log",
@@ -1065,7 +1063,7 @@ ENDSCRIPT
if ($context eq 'requestcrs') {
$r->print('
');
} else {
- my %breadcrumb_text = &singleuser_breadcrumb($crstype,$context,$srch->{'srchdomain'});
+ my %breadcrumb_text = &singleuser_breadcrumb($crstype);
my $helpitem;
if ($env{'form.action'} eq 'singleuser') {
$helpitem = 'Course_Change_Privileges';
@@ -1085,19 +1083,9 @@ ENDSCRIPT
);
$r->print(&Apache::loncommon::start_page('User Management',$jscript,{bread_crumbs => $brcrum}));
if ($env{'form.action'} eq 'singleuser') {
- my $readonly;
- if (($context eq 'domain') && (!&Apache::lonnet::allowed('mau',$srch->{'srchdomain'}))) {
- $readonly = 1;
- $r->print("$lt{'usrvu'} ");
- } else {
- $r->print("$lt{'usrch'} ");
- }
+ $r->print("$lt{'usrch'} ");
$r->print(&entry_form($srch->{'srchdomain'},$srch,undef,$context,undef,$crstype));
- if ($readonly) {
- $r->print('
'.$lt{'suvr'}.'
');
- } else {
- $r->print('
'.$lt{'usel'}.'
');
- }
+ $r->print('
'.$lt{'usel'}.'
');
} elsif ($env{'form.action'} eq 'singlestudent') {
$r->print($jscript."");
if ($crstype eq 'Community') {
@@ -1291,7 +1279,7 @@ sub print_user_modification_page {
my $js = &validation_javascript($context,$ccdomain,$pjump_def,$crstype,
$groupslist,$newuser,$formname,\%loaditem);
- my %breadcrumb_text = &singleuser_breadcrumb($crstype,$context,$ccdomain);
+ my %breadcrumb_text = &singleuser_breadcrumb($crstype);
my $helpitem = 'Course_Change_Privileges';
if ($env{'form.action'} eq 'singlestudent') {
$helpitem = 'Course_Add_Student';
@@ -1513,7 +1501,7 @@ ENDAUTH
$r->print('
');
$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'})) ||
(&Apache::lonnet::allowed('udp',$env{'request.role.domain'}))) {
$r->print('
'.&mt('User Can Request Creation of Courses/Communities in this Domain?').'
'.
&Apache::loncommon::start_data_table());
@@ -1533,10 +1521,10 @@ ENDAUTH
if ((!$isauthor) &&
((&Apache::lonnet::allowed('cau',$env{'request.role.domain'})) ||
(&Apache::lonnet::allowed('udp',$env{'request.role.domain'}))) &&
- ($env{'request.role.domain'} eq $ccdomain)) {
+ ($env{'request.role.domain'} eq $ccdomain)) {
$user_text{'requestauthor'} = &domainrole_req($ccuname,$ccdomain);
}
- if ((&Apache::lonnet::allowed('cdh',$env{'request.role.domain'})) ||
+ if ((&Apache::lonnet::allowed('cdh',$env{'request.role.domain'})) ||
(&Apache::lonnet::allowed('udp',$env{'request.role.domain'}))) {
$user_text{'adhocroles'} = &domadhocroles($ccuname,$ccdomain);
}
@@ -1608,7 +1596,7 @@ ENDNOTOOLSPRIV
} elsif (($context eq 'course') && ((&Apache::lonnet::allowed('vcl',$env{'request.course.id'})) ||
($env{'request.course.sec'} &&
&Apache::lonnet::allowed('vcl',$env{'request.course.id'}.'/'.$env{'request.course.sec'})))) {
- $statuses = ['active'];
+ $statuses = ['active'];
}
if ($env{'form.action'} ne 'singlestudent') {
&display_existing_roles($r,$ccuname,$ccdomain,\%inccourses,$context,
@@ -1666,7 +1654,7 @@ ENDNOTOOLSPRIV
}
sub singleuser_breadcrumb {
- my ($crstype,$context,$domain) = @_;
+ my ($crstype) = @_;
my %breadcrumb_text;
if ($env{'form.action'} eq 'singlestudent') {
if ($crstype eq 'Community') {
@@ -1674,21 +1662,16 @@ sub singleuser_breadcrumb {
} else {
$breadcrumb_text{'search'} = 'Enroll a student';
}
- $breadcrumb_text{'userpicked'} = 'Select a user';
- $breadcrumb_text{'modify'} = 'Set section/dates';
+ $breadcrumb_text{'userpicked'} = 'Select a user',
+ $breadcrumb_text{'modify'} = 'Set section/dates',
} elsif ($env{'form.action'} eq 'accesslogs') {
$breadcrumb_text{'search'} = 'View access logs for a user';
- $breadcrumb_text{'userpicked'} = 'Select a user';
- $breadcrumb_text{'activity'} = 'Activity';
- } elsif (($env{'form.action'} eq 'singleuser') && ($context eq 'domain') &&
- (!&Apache::lonnet::allowed('mau',$domain))) {
- $breadcrumb_text{'search'} = "View user's roles";
- $breadcrumb_text{'userpicked'} = 'Select a user';
- $breadcrumb_text{'modify'} = 'User roles';
+ $breadcrumb_text{'userpicked'} = 'Select a user',
+ $breadcrumb_text{'activity'} = 'Activity',
} else {
$breadcrumb_text{'search'} = 'Create/modify a user';
- $breadcrumb_text{'userpicked'} = 'Select a user';
- $breadcrumb_text{'modify'} = 'Set user role';
+ $breadcrumb_text{'userpicked'} = 'Select a user',
+ $breadcrumb_text{'modify'} = 'Set user role',
}
return %breadcrumb_text;
}
@@ -1842,7 +1825,7 @@ sub display_existing_roles {
if ($active) {
next unless($showall || $showactive);
} else {
- next unless($showall || $showexpired);
+ next unless($showall || $showexpired);
}
# Is this a custom role? Get role owner and title.
my ($croleudom,$croleuname,$croletitle)=
@@ -1987,7 +1970,7 @@ sub display_existing_roles {
} else {
$row.=' ';
}
- $row.= '';
+ $row.= '';
}
my $plaintext='';
if (!$croletitle) {
@@ -2256,6 +2239,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);
@@ -2705,7 +2689,7 @@ sub update_user_data {
$jsback."\n".
'// ]]>'."\n".
''."\n";
- my %breadcrumb_text = &singleuser_breadcrumb($crstype,$context,$env{'form.ccdomain'});
+ my %breadcrumb_text = &singleuser_breadcrumb($crstype);
push (@{$brcrum},
{href => "javascript:backPage(document.userupdate)",
text => $breadcrumb_text{'search'},
@@ -2814,7 +2798,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'});
@@ -2993,7 +2977,8 @@ sub update_user_data {
'requestcourses.community','requestcourses.textbook',
'reqcrsotherdom.official','reqcrsotherdom.unofficial',
'reqcrsotherdom.community','reqcrsotherdom.textbook',
- 'requestauthor','adhocroles.'.$env{'request.role.domain'}],
+ 'reqcrsotherdom.placement','requestauthor',
+ 'adhocroles.'.$env{'request.role.domain'}],
$env{'form.ccdomain'},$env{'form.ccuname'});
my ($tmp) = keys(%userenv);
if ($tmp =~ /^(con_lost|error)/i) {
@@ -3296,8 +3281,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}) {
@@ -3366,7 +3352,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 =
@@ -3509,6 +3495,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',
'adhocroles' => 'Ad Hoc Roles Selectable via Helpdesk Role',
'inststatus' => "Affiliation",
@@ -4549,7 +4536,7 @@ sub custom_role_editor {
);
my $args = { bread_crumbs => $brcrum,
bread_crumbs_component => 'User Management'};
-
+
$r->print(&Apache::loncommon::start_page('Custom Role Editor',
$head_script,$args).
$body_top);
@@ -5190,13 +5177,12 @@ sub handler {
} elsif ($env{'form.state'} eq 'done') {
$r->print('
'.&mt('Enrollment request processing').'
'."\n");
$r->print(&Apache::loncoursequeueadmin::update_request_queue($context,
- $cdom,$cnum,$coursedesc));
+ $cdom,$cnum,$coursedesc));
}
} else {
$r->print(&header(undef,{'no_nav_bar' => 1}).
''.&mt('You do not have permission to manage self-enrollment').'');
}
-
} elsif ($env{'form.action'} eq 'changelogs') {
if ($permission->{cusr} || $permission->{view}) {
&print_userchangelogs_display($r,$context,$permission,$brcrum);
@@ -5457,9 +5443,9 @@ sub print_main_menu {
);
if ($linkcontext eq 'domain') {
unless ($permission->{'cusr'}) {
- $links{'domain'}{'singleuser'} = 'View a User';
+ $links{'domain'}{'singleuser'} = 'View a User';
$linktitles{'domain'}{'singleuser'} = 'View information about a user in the domain';
-
+
}
} elsif ($linkcontext eq 'course') {
unless ($permission->{'cusr'}) {
@@ -5577,6 +5563,7 @@ sub print_main_menu {
groups => 'Community Groups',
},
);
+ $linktext{'Placement'} = $linktext{'Course'};
my %linktitle = (
'Course' => {
@@ -5591,6 +5578,8 @@ sub print_main_menu {
},
);
+ $linktitle{'Placement'} = $linktitle{'Course'};
+
push(@{ $menu[0]->{items} }, #Category: Single Users
{
linktext => $linktext{$crstype}{'single'},
@@ -6202,7 +6191,7 @@ ENDSCRIPT
} elsif ($item eq 'approval') {
my ($currnotified,$currapproval,%appchecked);
my %selfdescs = &Apache::lonuserutils::selfenroll_default_descs();
- if (ref($currsettings) eq 'HASH') {
+ if (ref($currsettings) eq 'HASH') {
$currnotified = $currsettings->{'selfenroll_notifylist'};
$currapproval = $currsettings->{'selfenroll_approval'};
}
@@ -6330,8 +6319,8 @@ ENDSCRIPT
.&mt('Save').'" onclick="validate_types(this.form);" />';
}
$output .= ''
- .''."\n"
- .$additional.'';
+ .''."\n"
+ .$additional.'';
$r->print($output);
return;
}
@@ -6736,7 +6725,7 @@ ENDSCRIPT
}
}
if (($context eq 'course') && ($viewablesec ne '')) {
- next if ($roleslog{$id}{'logentry'}{'section'} ne $viewablesec);
+ next if ($roleslog{$id}{'logentry'}{'section'} ne $viewablesec);
}
$count ++;
next if ($count < $minshown);
@@ -6825,7 +6814,7 @@ sub print_useraccesslogs_display {
my $form = 'document.accesslog';
# set breadcrumbs
- my %breadcrumb_text = &singleuser_breadcrumb('','domain',$udom);
+ my %breadcrumb_text = &singleuser_breadcrumb();
push (@{$brcrum},
{href => "javascript:backPage($form)",
text => $breadcrumb_text{'search'}});
@@ -7773,20 +7762,18 @@ sub build_search_response {
.&mt("Click 'Search'")
.' ';
} else {
- unless (($context eq 'domain') && ($env{'form.action'} eq 'singleuser')) {
- my $helplink = ' href="javascript:helpMenu('."'display'".')"';
- $response .= '
';
- if ($context eq 'requestcrs') {
- $response .= &mt("You are not authorized to define new users in the new course's domain - [_1].",$targetdom);
- } else {
- $response .= &mt("You are not authorized to create new users in your current role's domain - [_1].",$targetdom);
- }
- $response .= ' '
- .&mt('Please contact the [_1]helpdesk[_2] if you need to create a new user.'
- ,' '
- ,'')
- .' ';
+ my $helplink = ' href="javascript:helpMenu('."'display'".')"';
+ $response .= '
';
+ if ($context eq 'requestcrs') {
+ $response .= &mt("You are not authorized to define new users in the new course's domain - [_1].",$targetdom);
+ } else {
+ $response .= &mt("You are not authorized to create new users in your current role's domain - [_1].",$targetdom);
}
+ $response .= ' '
+ .&mt('Please contact the [_1]helpdesk[_2] if you need to create a new user.'
+ ,' '
+ ,'')
+ .' ';
}
}
}