X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=opac%2Fopac-privacy.pl;h=a6f0e6df6d323815b9f28088b843eb54ffdfa2db;hb=refs%2Fheads%2Fkoha_ffzg;hp=ca505605ae8262de7e063f480fd0118ac8b9b129;hpb=a8222aeeb1169d7b1939d1e64c319a16e3846e8c;p=koha.git diff --git a/opac/opac-privacy.pl b/opac/opac-privacy.pl index ca505605ae..a6f0e6df6d 100755 --- a/opac/opac-privacy.pl +++ b/opac/opac-privacy.pl @@ -3,66 +3,86 @@ # # copyright 2009, BibLibre, paul.poulain@biblibre.com # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . -use strict; -use CGI; +use Modern::Perl; +use CGI qw ( -utf8 ); use C4::Auth; # checkauth, getborrowernumber. use C4::Context; -use C4::Circulation; -use C4::Members; use C4::Output; -use C4::Dates; +use Koha::Patrons; my $query = new CGI; + +# if OPACPrivacy is disabled, leave immediately +if ( ! C4::Context->preference('OPACPrivacy') || ! C4::Context->preference('opacreadinghistory') ) { + print $query->redirect("/cgi-bin/koha/errors/404.pl"); + exit; +} + my $dbh = C4::Context->dbh; my ( $template, $borrowernumber, $cookie ) = get_template_and_user( { - template_name => "opac-privacy.tmpl", + template_name => "opac-privacy.tt", query => $query, type => "opac", authnotrequired => 0, - flagsrequired => { borrow => 1 }, debug => 1, } ); -my $op = $query->param("op"); -my $privacy = $query->param("privacy"); +my $op = $query->param("op"); +my $privacy = $query->param("privacy"); +my $privacy_guarantor_checkouts = $query->param("privacy_guarantor_checkouts"); -if ($op eq "update_privacy") -{ - ModPrivacy($borrowernumber,$privacy); - $template->param('privacy_updated' => 1); +if ( $op eq "update_privacy" ) { + my $patron = Koha::Patrons->find( $borrowernumber ); + if ( $patron ) { + $patron->set({ + privacy => $privacy, + privacy_guarantor_checkouts => $privacy_guarantor_checkouts, + })->store; + $template->param( 'privacy_updated' => 1 ); + } } -if ($op eq "delete_record") { +elsif ( $op eq "delete_record" ) { + # delete all reading records for items returned - # uses a hardcoded date ridiculously far in the future - AnonymiseIssueHistory('2999-12-12',$borrowernumber); - # confirm the user the deletion has been done - $template->param('deleted' => 1); + my $rows = eval { + Koha::Patrons->search({ 'me.borrowernumber' => $borrowernumber })->anonymise_issue_history; + }; + $template->param( + ( + $@ ? ( history_not_deleted => 1 ) + : $rows ? ( deleted => int($rows) ) + : ( nothing_to_delete => 1 ) + ) + ); } + # get borrower privacy .... -my ( $borr ) = GetMemberDetails( $borrowernumber ); +my $borrower = Koha::Patrons->find( $borrowernumber );; -$template->param( 'Ask_data' => '1', - 'privacy'.$borr->{'privacy'} => 1, - 'firstname' => $borr->{'firstname'}, - 'surname' => $borr->{'surname'}, - 'privacyview' => 1, +$template->param( + 'Ask_data' => 1, + 'privacy' . $borrower->privacy() => 1, + 'privacyview' => 1, + 'borrower' => $borrower, + 'surname' => $borrower->surname, + 'firstname' => $borrower->firstname, ); -output_html_with_http_headers $query, $cookie, $template->output; +output_html_with_http_headers $query, $cookie, $template->output, undef, { force_no_caching => 1 };