version 1.198, 2019/05/06 18:25:58
|
version 1.199, 2019/05/06 19:28:17
|
Line 6014 sub can_change_internalpass {
|
Line 6014 sub can_change_internalpass {
|
unless ($env{'course.'.$env{'request.course.id'}.'.internal.nopasswdchg'}) { |
unless ($env{'course.'.$env{'request.course.id'}.'.internal.nopasswdchg'}) { |
my ($cnum,$cdom) = &get_course_identity(); |
my ($cnum,$cdom) = &get_course_identity(); |
if ((&Apache::lonnet::is_course_owner($cdom,$cnum)) && ($udom eq $env{'user.domain'})) { |
if ((&Apache::lonnet::is_course_owner($cdom,$cnum)) && ($udom eq $env{'user.domain'})) { |
my $noupdate; |
my @userstatuses = ('default'); |
|
my %userenv = &Apache::lonnet::userenvironment($udom,$uname,'inststatus'); |
|
if ($userenv{'inststatus'} ne '') { |
|
@userstatuses = split(/:/,$userenv{'inststatus'}); |
|
} |
|
my $noupdate = 1; |
|
my %passwdconf = &Apache::lonnet::get_passwdconf($cdom); |
|
if (ref($passwdconf{'crsownerchg'}) eq 'HASH') { |
|
if (ref($passwdconf{'crsownerchg'}{'for'}) eq 'ARRAY') { |
|
foreach my $status (@userstatuses) { |
|
if (grep(/^\Q$status\E$/,@{$passwdconf{'crsownerchg'}{'for'}})) { |
|
undef($noupdate); |
|
last; |
|
} |
|
} |
|
} |
|
} |
|
if ($noupdate) { |
|
return; |
|
} |
my %owned = &Apache::lonnet::courseiddump($cdom,'.',1,'.', |
my %owned = &Apache::lonnet::courseiddump($cdom,'.',1,'.', |
$env{'user.name'}.':'.$env{'user.domain'}, |
$env{'user.name'}.':'.$env{'user.domain'}, |
undef,undef,undef,'.'); |
undef,undef,undef,'.'); |