--- loncom/interface/loncreateuser.pm 2017/08/15 23:42:33 1.406.2.14.2.1
+++ loncom/interface/loncreateuser.pm 2017/08/07 20:22:13 1.444
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.406.2.14.2.1 2017/08/15 23:42:33 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.444 2017/08/07 20:22:13 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',
@@ -880,7 +886,15 @@ ENDBLOCK
(!(($env{'form.action'} eq 'singleuser') && ($context eq 'domain') &&
(!&Apache::lonnet::allowed('mau',$env{'request.role.domain'}))))) {
my $defdom=$env{'request.role.domain'};
- my $domform = &Apache::loncommon::select_dom_form($defdom,'srchdomain');
+ my ($trustedref,$untrustedref);
+ if ($context eq 'course') {
+ ($trustedref,$untrustedref) = &Apache::lonnet::trusted_domains('enroll',$defdom);
+ } elsif ($context eq 'author') {
+ ($trustedref,$untrustedref) = &Apache::lonnet::trusted_domains('othcoau',$defdom);
+ } elsif ($context eq 'domain') {
+ ($trustedref,$untrustedref) = &Apache::lonnet::trusted_domains('domroles',$defdom);
+ }
+ my $domform = &Apache::loncommon::select_dom_form($defdom,'srchdomain',undef,undef,undef,$trustedref,$untrustedref);
my %lt=&Apache::lonlocal::texthash(
'enro' => 'Enroll one student',
'enrm' => 'Enroll one member',
@@ -1470,8 +1484,10 @@ ENDAUTH
if ($env{'request.role.domain'} eq $ccdomain) {
$r->print(&build_tools_display($ccuname,$ccdomain,'requestcourses'));
} else {
- $r->print(&coursereq_externaluser($ccuname,$ccdomain,
- $env{'request.role.domain'}));
+ if (&Apache::lonnet::will_trust('reqcrs',$ccdomain,$env{'request.role.domain'})) {
+ $r->print(&coursereq_externaluser($ccuname,$ccdomain,
+ $env{'request.role.domain'}));
+ }
}
$r->print(&Apache::loncommon::end_data_table());
}
@@ -2202,6 +2218,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);
@@ -2428,7 +2445,7 @@ sub personal_data_display {
} else {
undef($condition);
}
- }
+ }
if ($excluded) {
unless ($excluded =~ /^\@[^\@]+$/) {
undef($condition);
@@ -2468,7 +2485,7 @@ sub personal_data_display {
$upasstwo.
&Apache::lonhtmlcommon::row_closure()."\n";
if ($usernameset eq 'free') {
- my $onclick = "toggleUsernameDisp(this,'selfcreateusername');";
+ 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".
@@ -2807,7 +2824,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'});
@@ -2980,7 +2997,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) {
@@ -3271,8 +3288,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}) {
@@ -3338,7 +3356,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 =
@@ -3481,6 +3499,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:',
@@ -5011,7 +5030,7 @@ sub handler {
&Apache::lonhtmlcommon::row_closure(1));
}
}
- if ($pickstart) {
+ if ($pickstart) {
$r->print(&Apache::lonhtmlcommon::end_pick_box().'');
} else {
$r->print(''.&mt('No information to display for this account request.').'
');
@@ -5601,6 +5620,7 @@ sub print_main_menu {
groups => 'Community Groups',
},
);
+ $linktext{'Placement'} = $linktext{'Course'};
my %linktitle = (
'Course' => {
@@ -5615,6 +5635,8 @@ sub print_main_menu {
},
);
+ $linktitle{'Placement'} = $linktitle{'Course'};
+
push(@{ $menu[0]->{items} }, #Category: Single Users
{
linktext => $linktext{$crstype}{'single'},
@@ -6117,10 +6139,11 @@ ENDSCRIPT
} elsif ($curr_types eq '') {
$add_domtitle = &mt('Users in other domain:');
}
+ my ($trustedref,$untrustedref) = &Apache::lonnet::trusted_domains('enroll',$cdom);
$output .= &Apache::loncommon::start_data_table_row()
.''.$add_domtitle.' '
.&Apache::loncommon::select_dom_form('','selfenroll_newdom',
- $includeempty,$showdomdesc,'','','',$readonly)
+ $includeempty,$showdomdesc,'',$trustedref,$untrustedref,$readonly)
.' '
.' '.&Apache::loncommon::end_data_table_row()
.&Apache::loncommon::end_data_table();
@@ -8430,7 +8453,7 @@ 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 .= ' ';
}
@@ -8441,7 +8464,7 @@ sub user_search_result {
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 .= ' ';
}
@@ -8542,7 +8565,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.').
' ';
}
}
@@ -8615,7 +8638,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.').
' ';
}
}