--- loncom/interface/loncreateuser.pm 2018/03/23 01:01:21 1.449
+++ loncom/interface/loncreateuser.pm 2019/04/29 22:19:24 1.451
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.449 2018/03/23 01:01:21 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.451 2019/04/29 22:19:24 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1484,17 +1484,21 @@ ENDAUTH
$inst_results{$ccuname.':'.$ccdomain}));
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());
- if ($env{'request.role.domain'} eq $ccdomain) {
- $r->print(&build_tools_display($ccuname,$ccdomain,'requestcourses'));
- } else {
- if (&Apache::lonnet::will_trust('reqcrs',$ccdomain,$env{'request.role.domain'})) {
+ $r->print('
'.&mt('User Can Request Creation of Courses/Communities in this Domain?').'
'."\n");
+ if (($env{'request.role.domain'} eq $ccdomain) ||
+ (&Apache::lonnet::will_trust('reqcrs',$ccdomain,$env{'request.role.domain'}))) {
+ $r->print(&Apache::loncommon::start_data_table());
+ 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'}));
}
+ $r->print(&Apache::loncommon::end_data_table());
+ } else {
+ $r->print(&mt('Domain configuration for this domain prohibits course creation by users from domain: "[_1]"',
+ &Apache::lonnet::domain($ccdomain,'description')));
}
- $r->print(&Apache::loncommon::end_data_table());
}
$r->print('');
my @order = ('auth','quota','tools','requestauthor');
@@ -1507,7 +1511,7 @@ ENDAUTH
($env{'request.role.domain'} eq $ccdomain)) {
$user_text{'requestauthor'} = &domainrole_req($ccuname,$ccdomain);
}
- $user_text{'auth'} = &user_authentication($ccuname,$ccdomain,$formname);
+ $user_text{'auth'} = &user_authentication($ccuname,$ccdomain,$formname,$crstype,$permission);
if ((&Apache::lonnet::allowed('mpq',$ccdomain)) ||
(&Apache::lonnet::allowed('mut',$ccdomain)) ||
(&Apache::lonnet::allowed('udp',$ccdomain))) {
@@ -2194,7 +2198,7 @@ sub new_domain_roles {
}
sub user_authentication {
- my ($ccuname,$ccdomain,$formname) = @_;
+ my ($ccuname,$ccdomain,$formname,$crstype,$permission) = @_;
my $currentauth=&Apache::lonnet::queryauthenticate($ccuname,$ccdomain);
my $outcome;
my %lt=&Apache::lonlocal::texthash(
@@ -2267,6 +2271,43 @@ 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;
@@ -2285,7 +2326,7 @@ ENDBADAUTH
} elsif ($currentauth =~ /^unix:/) {
$result = &mt('Currently Filesystem Authenticated.');
} elsif ($currentauth =~ /^lti:/) {
- $result = &mt('Currently LTi authenticated.');
+ $result = &mt('Currently LTI authenticated.');
}
$outcome = ''.$lt{'ld'}.'
'.
&Apache::loncommon::start_data_table().
@@ -2726,7 +2767,7 @@ sub get_inststatuses {
# ================================================================= Phase Three
sub update_user_data {
- my ($r,$context,$crstype,$brcrum,$showcredits) = @_;
+ my ($r,$context,$crstype,$brcrum,$showcredits,$permission) = @_;
my $uhome=&Apache::lonnet::homeserver($env{'form.ccuname'},
$env{'form.ccdomain'});
# Error messages
@@ -3016,6 +3057,13 @@ sub update_user_data {
# Okay, this is a non-fatal error.
$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);
@@ -4924,7 +4972,7 @@ 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);
+ &update_user_data($r,$context,$crstype,$brcrum,$showcredits,$permission);
} else {
&print_username_entry_form($r,$context,undef,$srch,undef,$crstype,
$brcrum,$permission);