--- loncom/cgi/lonauthcgi.pm 2013/02/02 00:22:34 1.10 +++ loncom/cgi/lonauthcgi.pm 2013/10/27 17:16:36 1.11 @@ -1,7 +1,7 @@ # # LON-CAPA authorization for cgi-bin scripts # -# $Id: lonauthcgi.pm,v 1.10 2013/02/02 00:22:34 raeburn Exp $ +# $Id: lonauthcgi.pm,v 1.11 2013/10/27 17:16:36 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -280,12 +280,13 @@ sub can_view { } } unless ($allowed) { + my %alloweddoms; foreach my $dom (@poss_domains) { my %domconfig = &Apache::lonnet::get_dom('configuration',['serverstatuses'], $dom); if ($Apache::lonnet::env{'request.role'} eq "dc./$dom/") { if ($page eq 'domconf') { - $allowed .= $dom.'&'; + $alloweddoms{$dom} = 1; } else { $allowed = 1; } @@ -295,7 +296,7 @@ sub can_view { my @okusers = split(/,/,$domconfig{'serverstatuses'}{$page}{'namedusers'}); if (grep(/^\Q$Apache::lonnet::env{'user.name'}:$Apache::lonnet::env{'user.domain'}\E$/,@okusers)) { if ($page eq 'domconf') { - $allowed .= $dom.'&'; + $alloweddoms{$dom} = 1; } else { $allowed = 1; } @@ -307,7 +308,9 @@ sub can_view { } } } - $allowed =~ s/\&$//; + if (($page eq 'domconf') && (!$allowed)) { + $allowed = join('&',sort(keys(%alloweddoms))); + } } } return $allowed;