--- loncom/lonnet/perl/lonnet.pm 2019/04/29 22:19:45 1.1409 +++ loncom/lonnet/perl/lonnet.pm 2019/05/06 19:28:24 1.1410 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.1409 2019/04/29 22:19:45 raeburn Exp $ +# $Id: lonnet.pm,v 1.1410 2019/05/06 19:28:24 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -8089,9 +8089,21 @@ sub allowed { ($env{'course.'.$env{'request.course.id'}.'.internal.courseowner'} eq $env{'user.name'}.':'.$env{'user.domain'})) { my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; if ($cdom ne '') { - my %passwdconf = &Apache::lonnet::get_passwdconf($cdom); - if ($passwdconf{'crsownerchg'}) { - $thisallowed.=$rem; + my %passwdconf = &get_passwdconf($cdom); + if (ref($passwdconf{'crsownerchg'}) eq 'HASH') { + if (ref($passwdconf{'crsownerchg'}{'by'}) eq 'ARRAY') { + if (@{$passwdconf{'crsownerchg'}{'by'}}) { + my @inststatuses = split(':',$env{'environment.inststatus'}); + unless (@inststatuses) { + @inststatuses = ('default'); + } + foreach my $status (@inststatuses) { + if (grep(/^\Q$status\E$/,@{$passwdconf{'crsownerchg'}{'by'}})) { + $thisallowed.=$rem; + } + } + } + } } } }