From 4134df83734d2fabd4806339854cfab41faab82d Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 6 Apr 2017 16:10:18 -0300 Subject: [PATCH] Bug 18403: Add new method Koha::Patron->can_see_patron_info Technical note: This is the method that will be called on the logged_in_user variable sent to the template. Moreover we will check that the logged in user can access patron' information when access to members/* and some circulation scripts will be done. Signed-off-by: Signed-off-by: Jon McGowan Signed-off-by: Jonathan Druart --- Koha/Patron.pm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/Koha/Patron.pm b/Koha/Patron.pm index e83eed6b55..782e5ee04c 100644 --- a/Koha/Patron.pm +++ b/Koha/Patron.pm @@ -709,6 +709,39 @@ sub account_locked { and $self->login_attempts >= $FailedLoginAttempts )? 1 : 0; } +=head3 can_see_patron_infos + +my $can_see = $patron->can_see_patron_infos( $patron ); + +Return true if the patron (usually the logged in user) can see the patron's infos for a given patron + +=cut + +sub can_see_patron_infos { + my ( $self, $patron ) = @_; + my $can = 0; + if ( $self->branchcode eq $patron->branchcode ) { + $can = 1; + } elsif ( $self->can( { borrowers => 'view_borrower_infos_from_any_libraries' } ) ) { + $can = 1; + } elsif ( my $library_groups = $self->library->library_groups ) { + while ( my $library_group = $library_groups->next ) { + if ( $library_group->parent->has_child( $patron->library->branchcode ) ) { + $can = 1; + last; + } + } + } + return $can; +} + +sub can { + my ( $self, $flagsrequired ) = @_; + return unless $self->userid; + # TODO code from haspermission needs to be moved here! + return C4::Auth::haspermission( $self->userid, $flagsrequired ); +} + =head3 type =cut -- 2.11.0