@@ -, +, @@ & cannot_see_patron_infos --- a/C4/Output.pm +++ a/C4/Output.pm @@ -50,6 +50,7 @@ BEGIN { ); push @EXPORT, qw( &output_html_with_http_headers &output_ajax_with_http_headers &output_with_http_headers + &output_and_exit_if_error ); } @@ -306,6 +307,30 @@ sub is_ajax { return ( $x_req and $x_req =~ /XMLHttpRequest/i ) ? 1 : 0; } +sub output_and_exit_if_error { + my ( $query, $cookie, $template, $params ) = @_; + my $error; + if ( $params and exists $params->{module} ) { + if ( $params->{module} eq 'members' ) { + my $logged_in_user = $params->{logged_in_user}; + my $current_patron = $params->{current_patron}; + if ( not $current_patron ) { + $error = 'unknown_patron'; + } + elsif( not $logged_in_user->can_see_patron_infos( $current_patron ) ) { + $error = 'cannot_see_patron_infos'; + } + } + } + + if ( $error ) { + $template->param( blocking_error => $error ); + output_html_with_http_headers ( $query, $cookie, $template->output ); + exit; + } + return; +} + sub parametrized_url { my $url = shift || ''; # ie page.pl?ln={LANG} my $vars = shift || {}; # ie { LANG => en } --- a/koha-tmpl/intranet-tmpl/prog/en/includes/acquisitions-toolbar.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/acquisitions-toolbar.inc @@ -1,3 +1,4 @@ +[% INCLUDE 'blocking_errors.inc' %]