@@ -, +, @@ --- Koha/Patron.pm | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) --- a/Koha/Patron.pm +++ a/Koha/Patron.pm @@ -1607,13 +1607,8 @@ sub can_see_things_from { $can = 1; } elsif ( $self->has_permission( { $permission => $subpermission } ) ) { $can = 1; - } elsif ( my $library_groups = $self->library->library_groups ) { - while ( my $library_group = $library_groups->next ) { - if ( $library_group->parent->has_child( $branchcode ) ) { - $can = 1; - last; - } - } + } elsif ( my @branches = $self->libraries_where_can_see_patrons ) { + $can = any { $_ eq $branchcode } @branches; } return $can; } @@ -1664,6 +1659,8 @@ sub libraries_where_can_see_things { my $subpermission = $params->{subpermission}; my $group_feature = $params->{group_feature}; + return $self->{_restricted_branchcodes} if exists($self->{_restricted_branchcodes}); + my $userenv = C4::Context->userenv; return () unless $userenv; # For tests, but userenv should be defined in tests... @@ -1690,14 +1687,16 @@ sub libraries_where_can_see_things { } } - @restricted_branchcodes = ( $self->branchcode ) unless @restricted_branchcodes; + @restricted_branchcodes = ( $self->branchcode ) unless @restricted_branchcodes; } } @restricted_branchcodes = grep { defined $_ } @restricted_branchcodes; @restricted_branchcodes = uniq(@restricted_branchcodes); @restricted_branchcodes = sort(@restricted_branchcodes); - return @restricted_branchcodes; + + $self->{_restricted_branchcodes} = \@restricted_branchcodes; + return @{$self->{_restricted_branchcodes}}; } =head3 has_permission --