From: Ian Walls To: dev@bywatersolutions.com Cc: Ian Walls Subject: [PATCH] Bug 3881: OPAC Privacy reimplementation Date: Sun, 30 Jan 2011 12:51:09 -0500 Message-Id: <1296409869-30793-1-git-send-email-ian.walls@bywatersolutions.com> X-Mailer: git-send-email 1.5.6.5 X-Original-Sender: ian.walls@bywatersolutions.com X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of koha@dev.bywatersolutions.com designates 174.143.239.187 as permitted sender) smtp.mail=koha@dev.bywatersolutions.com Precedence: list Mailing-list: list dev@bywatersolutions.com; contact dev+owners@bywatersolutions.com List-ID: List-Help: , Content-Type: text/plain; charset="utf-8" Reimplements Paul Poulain's original OPAC Privacy patch, with some minor improvements and changes to wording If the library enables the OPACPrivacy system preference along with the opacreadinghistory preference, and sets an AnonymousPatron (must be a valid patron number in the database), the user will see a new tab upon login to the OPAC, My Privacy. From there, the user can: - Set their OPAC Privacy to one of three values 0 - Forever. This keeps their reading history unless they explicitly delete it; the bulk anonymiser won't touch it 1 - Default. Keep reading history until either they delete it or the library does 2 - Never. Instantly anonymises reading history upon item return - Instantly delete their reading history There is a warning and a popup to confirm. I've removed Paul's extra confirm checkbox, which seemed redundant A note of which preference the patron has selected is added to the Patorn Details page in the staff client. This is read-only. This patch also consolidates Privacy system preferences into the Privacy section of the OPAC tab. Thank you to BibLibre for the original implmentation of this patch, and Los Gatos Public Library for funding and testing the reimplementation. --- C4/Auth.pm | 1 + C4/Circulation.pm | 44 ++++++++++-- C4/Members.pm | 26 +++++++ installer/data/mysql/de-DE/mandatory/sysprefs.sql | 4 +- installer/data/mysql/en/mandatory/sysprefs.sql | 4 +- .../1-Obligatoire/unimarc_standard_systemprefs.sql | 4 +- installer/data/mysql/it-IT/necessari/sysprefs.sql | 9 ++- installer/data/mysql/pl-PL/mandatory/sysprefs.sql | 4 +- ...m_preferences_full_optimal_for_install_only.sql | 4 +- ...m_preferences_full_optimal_for_install_only.sql | 5 +- installer/data/mysql/updatedatabase.pl | 10 +++ .../prog/en/modules/admin/preferences/opac.pref | 37 +++++++--- .../prog/en/modules/members/moremember.tmpl | 5 ++ koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc | 3 + .../opac-tmpl/prog/en/modules/opac-privacy.tmpl | 72 ++++++++++++++++++++ members/moremember.pl | 6 ++ opac/opac-privacy.pl | 68 ++++++++++++++++++ opac/opac-suggestions.pl | 2 +- 18 files changed, 279 insertions(+), 29 deletions(-) create mode 100644 koha-tmpl/opac-tmpl/prog/en/modules/opac-privacy.tmpl create mode 100755 opac/opac-privacy.pl diff --git a/C4/Auth.pm b/C4/Auth.pm index fc4e3e2..130974e 100644 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -418,6 +418,7 @@ sub get_template_and_user { OpacNav => "" . C4::Context->preference("OpacNav"), OpacPasswordChange => C4::Context->preference("OpacPasswordChange"), OPACPatronDetails => C4::Context->preference("OPACPatronDetails"), + OPACPrivacy => C4::Context->preference("OPACPrivacy"), OPACFinesTab => C4::Context->preference("OPACFinesTab"), OpacTopissue => C4::Context->preference("OpacTopissue"), RequestOnOpac => C4::Context->preference("RequestOnOpac"), diff --git a/C4/Circulation.pm b/C4/Circulation.pm index b741794..f7846ac 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -1516,7 +1516,7 @@ sub AddReturn { } if ($borrowernumber) { - MarkIssueReturned($borrowernumber, $item->{'itemnumber'}, $circControlBranch); + MarkIssueReturned($borrowernumber, $item->{'itemnumber'}, $circControlBranch, '', $borrower->{'privacy'}); $messages->{'WasReturned'} = 1; # FIXME is the "= 1" right? This could be the borrower hash. } @@ -1621,7 +1621,7 @@ sub AddReturn { =head2 MarkIssueReturned - MarkIssueReturned($borrowernumber, $itemnumber, $dropbox_branch, $returndate); + MarkIssueReturned($borrowernumber, $itemnumber, $dropbox_branch, $returndate, $privacy); Unconditionally marks an issue as being returned by moving the C row to C and @@ -1633,6 +1633,9 @@ it's safe to do this, i.e. last non-holiday > issuedate. if C<$returndate> is specified (in iso format), it is used as the date of the return. It is ignored when a dropbox_branch is passed in. +C<$privacy> contains the privacy parameter. If the patron has set privacy to 2, +the old_issue is immediately anonymised + Ideally, this function would be internal to C, not exported, but it is currently needed by one routine in C. @@ -1640,7 +1643,7 @@ routine in C. =cut sub MarkIssueReturned { - my ( $borrowernumber, $itemnumber, $dropbox_branch, $returndate ) = @_; + my ( $borrowernumber, $itemnumber, $dropbox_branch, $returndate, $privacy ) = @_; my $dbh = C4::Context->dbh; my $query = "UPDATE issues SET returndate="; my @bind; @@ -1664,6 +1667,16 @@ sub MarkIssueReturned { WHERE borrowernumber = ? AND itemnumber = ?"); $sth_copy->execute($borrowernumber, $itemnumber); + # anonymise patron checkout immediately if $privacy set to 2 and AnonymousPatron is set to a valid borrowernumber + if ( $privacy == 2) { + # The default of 0 does not work due to foreign key constraints + # The anonymisation will fail quietly if AnonymousPatron is not a valid entry + my $anonymouspatron = (C4::Context->preference('AnonymousPatron')) ? C4::Context->preference('AnonymousPatron') : 0; + my $sth_ano = $dbh->prepare("UPDATE old_issues SET borrowernumber=? + WHERE borrowernumber = ? + AND itemnumber = ?"); + $sth_ano->execute($anonymouspatron, $borrowernumber, $itemnumber); + } my $sth_del = $dbh->prepare("DELETE FROM issues WHERE borrowernumber = ? AND itemnumber = ?"); @@ -2417,11 +2430,14 @@ sub DeleteTransfer { =head2 AnonymiseIssueHistory - $rows = AnonymiseIssueHistory($borrowernumber,$date) + $rows = AnonymiseIssueHistory($date,$borrowernumber) This function write NULL instead of C<$borrowernumber> given on input arg into the table issues. if C<$borrowernumber> is not set, it will delete the issue history for all borrower older than C<$date>. +If c<$borrowernumber> is set, it will delete issue history for only that borrower, regardless of their opac privacy +setting (force delete). + return the number of affected rows. =cut @@ -2432,12 +2448,24 @@ sub AnonymiseIssueHistory { my $dbh = C4::Context->dbh; my $query = " UPDATE old_issues - SET borrowernumber = NULL - WHERE returndate < '".$date."' + SET borrowernumber = ? + WHERE returndate < ? AND borrowernumber IS NOT NULL "; - $query .= " AND borrowernumber = '".$borrowernumber."'" if defined $borrowernumber; - my $rows_affected = $dbh->do($query); + + # The default of 0 does not work due to foreign key constraints + # The anonymisation will fail quietly if AnonymousPatron is not a valid entry + my $anonymouspatron = (C4::Context->preference('AnonymousPatron')) ? C4::Context->preference('AnonymousPatron') : 0; + my @bind_params = ($anonymouspatron, $date); + if (defined $borrowernumber) { + $query .= " AND borrowernumber = ?"; + push @bind_params, $borrowernumber; + } else { + $query .= " AND (SELECT privacy FROM borrowers WHERE borrowers.borrowernumber=old_issues.borrowernumber) <> 0"; + } + my $sth = $dbh->prepare($query); + $sth->execute(@bind_params); + my $rows_affected = $sth->rows; ### doublecheck row count return function return $rows_affected; } diff --git a/C4/Members.pm b/C4/Members.pm index 00716cd..f402cbd 100644 --- a/C4/Members.pm +++ b/C4/Members.pm @@ -93,6 +93,7 @@ BEGIN { push @EXPORT, qw( &ModMember &changepassword + &ModPrivacy ); #Delete data @@ -2022,6 +2023,31 @@ sub DebarMember { } +=head2 ModPrivacy + +=over 4 + +my $success = ModPrivacy( $borrowernumber, $privacy ); + +Update the privacy of a patron. + +return : +true on success, false on failure + +=back + +=cut + +sub ModPrivacy { + my $borrowernumber = shift; + my $privacy = shift; + return unless defined $borrowernumber; + return unless $borrowernumber =~ /^\d+$/; + + return ModMember( borrowernumber => $borrowernumber, + privacy => $privacy ); +} + =head2 AddMessage AddMessage( $borrowernumber, $message_type, $message, $branchcode ); diff --git a/installer/data/mysql/de-DE/mandatory/sysprefs.sql b/installer/data/mysql/de-DE/mandatory/sysprefs.sql index 19f7c4d..02511d8 100644 --- a/installer/data/mysql/de-DE/mandatory/sysprefs.sql +++ b/installer/data/mysql/de-DE/mandatory/sysprefs.sql @@ -9,7 +9,8 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonLocale','US','Use to set the Locale of your Amazon.com Web Services','US|CA|DE|FR|JP|UK','Choice'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AWSAccessKeyID','','See: http://aws.amazon.com','','free'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonAssocTag','','See: http://aws.amazon.com','','free'); -INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to anonymous borrowernumber to enable Anonymous suggestions',NULL,'free'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber',NULL,'YesNo'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonymousPatron', '0', 'Set the identifier (borrowernumber) of the anonymous patron. Used for Suggestion and reading history privacy',NULL,''); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Babeltheque',0,'Turn ON Babeltheque content - See babeltheque.com to subscribe to this service','','YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('authoritysep','--','Used to separate a list of authorities in a display. Usually --',10,'free'); @@ -79,6 +80,7 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacNav','Important links here.','Use HTML tags to add navigational links to the left-hand navigational bar in OPAC','70|10','Textarea'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACNoResultsFound','','Display this HTML when no results are found for a search in the OPAC','70|10','Textarea'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPasswordChange',1,'If ON, enables patron-initiated password change in OPAC (disable it when using LDAP auth)',NULL,'YesNo'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacreadinghistory',1,'If ON, enables display of Patron Circulation History in OPAC','','YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacsmallimage','','Enter a complete URL to an image to replace the default Koha logo','','free'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacstylesheet','','Enter a complete URL to use an alternate layout stylesheet in OPAC','','free'); diff --git a/installer/data/mysql/en/mandatory/sysprefs.sql b/installer/data/mysql/en/mandatory/sysprefs.sql index b597b02..0b75e98 100644 --- a/installer/data/mysql/en/mandatory/sysprefs.sql +++ b/installer/data/mysql/en/mandatory/sysprefs.sql @@ -9,7 +9,8 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonLocale','US','Use to set the Locale of your Amazon.com Web Services','US|CA|DE|FR|JP|UK','Choice'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AWSAccessKeyID','','See: http://aws.amazon.com','','free'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonAssocTag','','See: http://aws.amazon.com','','free'); -INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to anonymous borrowernumber to enable Anonymous suggestions',NULL,'free'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber',NULL,'YesNo'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonymousPatron', '0', 'Set the identifier (borrowernumber) of the anonymous patron. Used for Suggestion and reading history privacy',NULL,''); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Babeltheque',0,'Turn ON Babeltheque content - See babeltheque.com to subscribe to this service','','YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('authoritysep','--','Used to separate a list of authorities in a display. Usually --',10,'free'); @@ -79,6 +80,7 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacNav','Important links here.','Use HTML tags to add navigational links to the left-hand navigational bar in OPAC','70|10','Textarea'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OPACNoResultsFound','','Display this HTML when no results are found for a search in the OPAC','70|10','Textarea'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPasswordChange',1,'If ON, enables patron-initiated password change in OPAC (disable it when using LDAP auth)',NULL,'YesNo'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacreadinghistory',1,'If ON, enables display of Patron Circulation History in OPAC','','YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacsmallimage','','Enter a complete URL to an image to replace the default Koha logo','','free'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacstylesheet','','Enter a complete URL to use an alternate layout stylesheet in OPAC','','free'); diff --git a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql index b051ba3..757f255 100644 --- a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql +++ b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql @@ -10,7 +10,8 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonLocale','US','Utilisé pour définir la localisation des web services Amazon','US|CA|DE|FR|JP|UK','Choice'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AWSAccessKeyID','','Voir : http://aws.amazon.com','','free'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonAssocTag', '', 'Voir : associates.amazon.com/gp/flex/associates/apply-login.html', '', ''); -INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions', '0', 'Attribuée au n° de l''emprunteur anonyme pour activer les suggestions anonymes. 0, pas de suggestions anonymes.', '', 'free'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber',NULL,'YesNo'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonymousPatron', '0', 'Set the identifier (borrowernumber) of the anonymous patron. Used for Suggestion and reading history privacy',NULL,''); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Babeltheque',0,'Active les contenus Babelthèque - Voir babeltheque.com pour s''abonner','','YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('authoritysep', '--', 'Le séparateur utilisé dans les autorités. Habituellement --', '10', 'free'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('autoBarcode', 'OFF', 'Utilisé pour générer automatiquement les codes barre: incremental sera de la forme 1, 2, 3; annual de la forme 2007-0001, 2007-0002, hbyymmincr de la forme HB09010001 où HB=la branche d''appartenance', 'incremental|annual|hbyymmincr|OFF', 'Choice'); @@ -91,6 +92,7 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacMainUserBlock','Bienvenue dans Koha...\r\n
','Bloc HTML défini par la bibliothèque, qui apparaît sur la page principale de l''OPAC','70|10','Textarea'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacNav', '', 'Ce paramètre contient du code HTML, qui est mis au début de la barre de navigation, sur la gauche, à l''OPAC.','70|10', 'Textarea'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPasswordChange', '1', 'Si ce paramètre est activé, les adhérents peuvent modifier leur mot de passe à l''OPAC. A désactiver si vous utilisez l''authentification ldap', '', 'YesNo'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacreadinghistory', '1', 'Si ce paramètre est activé, les adhérents peuvent consulter leur historique de lecture à l''OPAC', '', 'YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacsmallimage', '', 'Ce paramètre contient une URL. Il permet de définir l''image qui est affichée en haut, à gauche de l''OPAC', '', 'free'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacstylesheet', '', 'Ce paramètre a la forme d''une URL. Il définit la feuille de style utilisée à l''OPAC. S''il est vide, vous aurez la feuille de style par défault de Koha', '', 'free'); diff --git a/installer/data/mysql/it-IT/necessari/sysprefs.sql b/installer/data/mysql/it-IT/necessari/sysprefs.sql index 06f279d..cc00e68 100644 --- a/installer/data/mysql/it-IT/necessari/sysprefs.sql +++ b/installer/data/mysql/it-IT/necessari/sysprefs.sql @@ -9,6 +9,7 @@ insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('advancedMARCeditor','0','','Se su ON, nel MARC editor non verranno visualizzati i campi/sottocampi delle descrizioni.','YesNo'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AdvancedSearchTypes','itemtypes','itemtypes|ccode','Selezionare quale set di campi comprenderà la ricerca avanzata per tipo.','Choice'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AllowHoldsOnDamagedItems','1','','Permette l\'inserimento di richieste di prenotazione su copie danneggiate','YesNo'); +insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AllowNotForLoanOverride','0','','Se ON, abilita il bibliotecario a poter scegliere di dare in prestito un documento normalmente escluso.','YesNo'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AllowOnShelfHolds','1','','Permette di inserire prenotazioni su documenti non in prestito.','YesNo'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AllowRenewalLimitOverride','1','','Se On, permette che i limiti ai rinnovi possano essere superati dal bibliotecario nel modulo della circolazione','YesNo'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AmazonAssocTag','','','See: http://aws.amazon.com','free'); @@ -17,7 +18,9 @@ insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AmazonLocale','US','US|CA|DE|FR|JP|UK','Usalo per definire il tuo specifico Amazon.com Web Services','Choice'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AmazonReviews','0','','Visualizza Amazon reviews sull\'interfaccia dello staff.','YesNo'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AmazonSimilarItems','0','','Messa su ON attiva l\' Amazon Similar Items feature - Devi settare i valori in AWSAccessKeyID e in AmazonAssocTag per usarla','YesNo'); -insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AnonSuggestions','0','','Imposta un utente anonimo per abilitare i suggerimenti d\'acquisto da utenti non registrati.','free'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber',NULL,'YesNo'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonymousPatron', '0', 'Set the identifier (borrowernumber) of the anonymous patron. Used for Suggestion and reading history privacy',NULL,''); +insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AuthDisplayHierarchy','0','','Se ON attiva la gestione gerarchica dell\'authority. Da usare solo con thesaurus','YesNo'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('authoritysep','--','10','Carattere usato nella visualizzazione come separatore della lista delle authority. Normalmente è --','free'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('autoBarcode','annual','incremental|annual|hbyymmincr|OFF','Da usare per impostare la generazione automatica dei barcode: incremental per la tipologia 1, 2, 3; annuale per 2007-0001, 2007-0002; hbyymmincr per HB08010001 dove HB sta per Home Branch (sottobiblioteca predefinita)','Choice'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('AutoEmailOpacUser','0','','Quando viene creato un account, invia notifica via email all\'utente con i dettagli del nuovo account.','YesNo'); @@ -89,10 +92,12 @@ insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, -- insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('marcflavour','UNIMARC','MARC21|UNIMARC','Define global MARC flavor (MARC21 or UNIMARC) used for character encoding','Choice'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('MARCOrgCode','0','','Il MARC Organization Code - http://www.loc.gov/marc/organizations/orgshome.html','free'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('MaxFine','9999','','Multa massima che un utente potrebbe avere per un singolo ritardo.','Integer'); +insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('maxItemsInSearchResults','20','','Specifica il numero massimo di copie visualizzate nelle pagine di risultati','free'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('maxoutstanding','5','','Definisci il numero massimo di operazioni in corso (prestiti+prenotazioni) dopo il quale si blocca la possibilità di fare prenotazioni','Integer'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('maxreserves','2','','Definisce il numero massimo di prenotazioni che un utente può effettuare.','Integer'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('maxItemsInSearchResults',20,'Specify the maximum number of items to display for each result on a page of results',NULL,'free'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('memberofinstitution','0','','Se ON, gli utenti possono essere linkati alle istituzioni.','YesNo'); +insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('MergeAuthoritiesOnUpdate','1','','Se ON, aggiornando le authorities saranno automaticamente aggiornati anche i record bibliografici','YesNo'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('minPasswordLength','3','','Specifica la lunghezza minima della password sia per l\'utente che per lo staff','free'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('noissuescharge','5','','Definisce l’ammontare massimo di multa che un utente può raggiungere prima di venir sospeso dal prestito','Integer'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('noItemTypeImages','0','','Se Attivo, disabilita le immagini relative al tipo documento','YesNo'); @@ -130,6 +135,7 @@ insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACNoResultsFound','','Display this HTML when no results are found for a search in the OPAC','70|10','Textarea'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACnumSearchResults','20','','Specifica il numero massimo di risposte da visualizzare nella pagina dei risultati ','Integer'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OpacPasswordChange','1','','Se ON, abilita l\'utente alla modifica della password nell\'OPAC (disabiltare la funzione quando è usato LDAP auth)','YesNo'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('opacreadinghistory','1','','Se ON, si abilita la visualizzazione dello storico circolazione utente nell\'OPAC','YesNo'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OpacRenewalAllowed','0','','Se ON, gli utenti possono rinnovare i propri prestiti direttamente dal proprio account OPAC','YesNo'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('OPACShelfBrowser','0','','Abilita/disabilita una ricerca per scaffale (Shelf Browser) nella pagina dettagli documento. ATTENZIONE: questa feature consuma molte risorse nelle collezioni molto grandi.','YesNo'); @@ -153,6 +159,7 @@ insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('QueryStemming','0','','Se ON, abilita le ricerche con lo stemming (uso di forme variabili)','YesNo'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('QueryWeightFields','0','','Se ON, abilita le opzioni di ricerca per dare uno peso diverso ai vari campi. Opzione sperimentale','YesNo'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('RandomizeHoldsQueueWeight','0','','Se ON, la coda delle prenotazione nella circolazione avrà un ordine casuale per tutte le collocazioni o solo per quelle collocazioni specificate sotto StaticHoldsQueueWeight, se impostato.','YesNo'); +insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('ReceiveBackIssues','5','','Numero di periodici precedenti da visualizzare quando si guarda il dettaglio di una sottoscrizione',''); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('RenewalPeriodBase','date_due','date_due|now','Per impostare se la data di rinnovo deve essere conteggiata a partire dalla data di scadenza del prestito o a partire dal momento in cui l’utente ne chiede il rinnovo.','Choice'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('RenewSerialAddsSuggestion','0','','Se ON, puoi aggiungere un nuovo suggerimento durante il rinnovo di un periodico','YesNo'); insert into `systempreferences` (`variable`, `value`, `options`, `explanation`, `type`) values('RequestOnOpac','1','','Se ON, si abilitano gli utenti globalmente a inserire prenotazione nell\'OPAC','YesNo'); diff --git a/installer/data/mysql/pl-PL/mandatory/sysprefs.sql b/installer/data/mysql/pl-PL/mandatory/sysprefs.sql index c87729c..8689c4c 100644 --- a/installer/data/mysql/pl-PL/mandatory/sysprefs.sql +++ b/installer/data/mysql/pl-PL/mandatory/sysprefs.sql @@ -9,7 +9,8 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonLocale','US','Use to set the Locale of your Amazon.com Web Services','US|CA|DE|FR|JP|UK','Choice'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AWSAccessKeyID','','See: http://aws.amazon.com','','free'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonAssocTag','','See: http://aws.amazon.com','','free'); -INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to anonymous borrowernumber to enable Anonymous suggestions',NULL,'free'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber',NULL,'YesNo'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonymousPatron', '0', 'Set the identifier (borrowernumber) of the anonymous patron. Used for Suggestion and reading history privacy',NULL,''); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('Babeltheque',0,'Turn ON Babeltheque content - See babeltheque.com to subscribe to this service','','YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('authoritysep','--','Used to separate a list of authorities in a display. Usually --',10,'free'); @@ -78,6 +79,7 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacMainUserBlock','Welcome to Koha...\r\n
','A user-defined block of HTML in the main content area of the opac main page','70|10','Textarea'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacNav','Important links here.','Use HTML tags to add navigational links to the left-hand navigational bar in OPAC','70|10','Textarea'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPasswordChange',1,'If ON, enables patron-initiated password change in OPAC (disable it when using LDAP auth)',NULL,'YesNo'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacreadinghistory',1,'If ON, enables display of Patron Circulation History in OPAC','','YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacsmallimage','','Enter a complete URL to an image to replace the default Koha logo','','free'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacstylesheet','','Enter a complete URL to use an alternate layout stylesheet in OPAC','','free'); diff --git a/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql b/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql index 993c6c3..c862e60 100644 --- a/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql +++ b/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql @@ -24,7 +24,8 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonLocale','US','Use to set the Locale of your Amazon.com Web Services','US|CA|DE|FR|JP|UK','Choice'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AWSAccessKeyID','','See: http://aws.amazon.com','','free'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonAssocTag','','See: http://aws.amazon.com','','free'); -INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to anonymous borrowernumber to enable Anonymous suggestions',NULL,'free'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber',NULL,'YesNo'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonymousPatron', '0', 'Set the identifier (borrowernumber) of the anonymous patron. Used for Suggestion and reading history privacy',NULL,''); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('authoritysep','--','Used to separate a list of authorities in a display. Usually --',10,'free'); @@ -107,6 +108,7 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacMainUserBlock','Добро пожаловать в АБИС Koha...\r\n
','A user-defined block of HTML in the main content area of the opac main page','50|20','Textarea'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacNav','Здесь будут важные ссылки.','Use HTML tags to add navigational links to the left-hand navigational bar in OPAC','70|10','Textarea'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPasswordChange',1,'If ON, enables patron-initiated password change in OPAC (disable it when using LDAP auth)',NULL,'YesNo'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacreadinghistory',1,'If ON, enables display of Patron Circulation History in OPAC','','YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacsmallimage','','Enter a complete URL to an image to replace the default Koha logo','','free'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacstylesheet','','Enter a complete URL to use an alternate layout stylesheet in OPAC','','free'); diff --git a/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql b/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql index 3416b2e..82e285b 100644 --- a/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql +++ b/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql @@ -24,8 +24,8 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonLocale','US','Use to set the Locale of your Amazon.com Web Services','US|CA|DE|FR|JP|UK','Choice'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AWSAccessKeyID','','See: http://aws.amazon.com','','free'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AmazonAssocTag','','See: http://aws.amazon.com','','free'); -INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to anonymous borrowernumber to enable Anonymous suggestions',NULL,'free'); - +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonSuggestions',0,'Set to enable Anonymous suggestions to AnonymousPatron borrowernumber',NULL,'YesNo'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('AnonymousPatron', '0', 'Set the identifier (borrowernumber) of the anonymous patron. Used for Suggestion and reading history privacy',NULL,''); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('authoritysep','--','Used to separate a list of authorities in a display. Usually --',10,'free'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('autoBarcode','incremental','Used to autogenerate a barcode: incremental will be of the form 1, 2, 3; annual of the form 2007-0001, 2007-0002; hbyymmincr of the form HB08010001 where HB=Home Branch','incremental|annual|hbyymmincr|OFF','Choice'); @@ -107,6 +107,7 @@ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacMainUserBlock','Вітаємо у АБІС Koha...\r\n
','A user-defined block of HTML in the main content area of the opac main page','50|20','Textarea'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacNav','Тут будуть важливі посилання.','Use HTML tags to add navigational links to the left-hand navigational bar in OPAC','70|10','Textarea'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPasswordChange',1,'If ON, enables patron-initiated password change in OPAC (disable it when using LDAP auth)',NULL,'YesNo'); +INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacreadinghistory',1,'If ON, enables display of Patron Circulation History in OPAC','','YesNo'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacsmallimage','','Enter a complete URL to an image to replace the default Koha logo','','free'); INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('opacstylesheet','','Enter a complete URL to use an alternate layout stylesheet in OPAC','','free'); diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index f03f48f..2d89b02 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -3970,6 +3970,16 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { SetVersion ($DBversion); } +$DBversion = '3.03.00.xxx'; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + # reimplement OpacPrivacy system preference + $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacPrivacy', '0', 'if ON, allows patrons to define their privacy rules (reading history)',NULL,'YesNo')"); + $dbh->do("ALTER TABLE `borrowers` ADD `privacy` INTEGER NOT NULL DEFAULT 1;"); + $dbh->do("ALTER TABLE `deletedborrowers` ADD `privacy` INTEGER NOT NULL DEFAULT 1;"); + print "Upgrade to $DBversion done (OpacPrivacy reimplementation)\n"; + SetVersion($DBversion); +}; + =head1 FUNCTIONS =head2 DropAllForeignKeys($table) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref index 8707c25..3014e63 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref @@ -202,12 +202,6 @@ OPAC: no: "Don't allow" - patrons to store items in a temporary "Cart" on the OPAC. - - - pref: opacreadinghistory - choices: - yes: Allow - no: "Don't allow" - - patrons to see what books they have checked out in the past. - - - pref: OpacTopissue choices: yes: Allow @@ -245,12 +239,6 @@ OPAC: yes: Limit no: "Don't limit" - "patrons' searches to the library they are registered at." - - - - pref: AnonSuggestions - choices: - yes: Allow - no: "Don't allow" - - "patrons that aren't logged in to make purchase suggestions." # - # This system preference does not actually affect anything # - pref: OpacBrowser @@ -288,12 +276,37 @@ OPAC: - purchase suggestions from other patrons on the OPAC. Privacy: - + - pref: AnonSuggestions + choices: + yes: Allow + no: "Don't allow" + - "patrons that aren't logged in to make purchase suggestions. Suggestions are connected to the AnonymousPatron syspref" + - + - pref: opacreadinghistory + choices: + yes: Allow + no: "Don't allow" + - patrons to see what books they have checked out in the past. + - - pref: EnableOpacSearchHistory default: 0 choices: yes: Keep no: "Don't keep" - patron search history in the OPAC. + - + - pref: OPACPrivacy + default: 0 + choices: + yes: Allow + no: "Don't allow" + - patrons to choose their own privacy settings for their reading history. This requires opacreadinghistory and AnonymousPatron + - + - Use borrowernumber + - pref: AnonymousPatron + class: integer + - as the Anonymous Patron (for anonymous suggestions and reading history) + Shelf Browser: - - pref: OPACShelfBrowser diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tmpl index 030c78a..2cdc13a 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tmpl +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tmpl @@ -320,6 +320,11 @@ function validate1(date) {
  • Library:
  • +
  • Privacy Pref: + Forever + Default + Never +
  • Sort field 1:
  • Sort field 2:
  • OPAC login:
  • diff --git a/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc b/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc index b9e4f74..86ba2f6 100644 --- a/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc +++ b/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc @@ -17,6 +17,9 @@
  • my reading history
  • + +
  • my privacy
  • + diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-privacy.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-privacy.tmpl new file mode 100644 index 0000000..92c8973 --- /dev/null +++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-privacy.tmpl @@ -0,0 +1,72 @@ +Koha Online Catalog › Privacy management for + + + +
    +
    + + +
    +
    +
    +

    's account l../../images/caret.gif" width="16" height="16" alt=">" border="0" /> Privacy policy

    + + +
    Your reading history has been deleted.
    + + +
    Your privacy rules have been updated
    + + +

    Privacy rule

    + +

    We take great care in protecting your privacy. On this screen, you can define how long we keep your reading history.

    +

    Your options are:

    +

    + +
      +
    • Forever: keep my reading history without limit. This is the option for users who want to keep track of what they are reading.
    • +
    • Default: keep my reading history according to local laws. This is the default option : the library will keep your reading history for the duration permitted by local laws.
    • +
    • Never: Delete my reading history immediately. This will delete all record of the item that was checked-out upon check-in.
    • +
    +

    Please note that information on any book still checked-out must be kept by the library no matter which privacy option you choose.

    +

    Please also note that the library staff can't update these values for you: it's your privacy!

    + + + +
    +

    Immediate deletion

    +
    + +

    Whatever your privacy rule you choose, you can delete all your reading history immediately by clicking here. BE CAREFUL. Once you've confirmed the deletion, no one can retrieve the list!

    + +
    + +
    +
    +
    +
    +
    +
    + + +
    +
    +
    + diff --git a/members/moremember.pl b/members/moremember.pl index 7de3fb0..9360e2e 100755 --- a/members/moremember.pl +++ b/members/moremember.pl @@ -230,6 +230,12 @@ my $lib2 = &GetSortDetails( "Bsort2", $data->{'sort2'} ); $template->param( lib1 => $lib1 ) if ($lib1); $template->param( lib2 => $lib2 ) if ($lib2); +# Show OPAC privacy preference is system preference is set +if ( C4::Context->preference('OPACPrivacy') ) { + $template->param( OPACPrivacy => 1); + $template->param( "privacy".$data->{'privacy'} => 1); +} + # current issues # my $issue = GetPendingIssues($borrowernumber); diff --git a/opac/opac-privacy.pl b/opac/opac-privacy.pl new file mode 100755 index 0000000..ca50560 --- /dev/null +++ b/opac/opac-privacy.pl @@ -0,0 +1,68 @@ +#!/usr/bin/perl +# This script lets the users change their privacy rules +# +# 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 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 + +use strict; +use CGI; + +use C4::Auth; # checkauth, getborrowernumber. +use C4::Context; +use C4::Circulation; +use C4::Members; +use C4::Output; +use C4::Dates; + +my $query = new CGI; +my $dbh = C4::Context->dbh; + +my ( $template, $borrowernumber, $cookie ) = get_template_and_user( + { + template_name => "opac-privacy.tmpl", + query => $query, + type => "opac", + authnotrequired => 0, + flagsrequired => { borrow => 1 }, + debug => 1, + } +); + +my $op = $query->param("op"); +my $privacy = $query->param("privacy"); + +if ($op eq "update_privacy") +{ + ModPrivacy($borrowernumber,$privacy); + $template->param('privacy_updated' => 1); +} +if ($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); +} +# get borrower privacy .... +my ( $borr ) = GetMemberDetails( $borrowernumber ); + +$template->param( 'Ask_data' => '1', + 'privacy'.$borr->{'privacy'} => 1, + 'firstname' => $borr->{'firstname'}, + 'surname' => $borr->{'surname'}, + 'privacyview' => 1, +); + +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/opac/opac-suggestions.pl b/opac/opac-suggestions.pl index a2a6670..2f0dc36 100755 --- a/opac/opac-suggestions.pl +++ b/opac/opac-suggestions.pl @@ -48,7 +48,7 @@ if ( C4::Context->preference("AnonSuggestions") ) { } ); if ( !$$suggestion{suggestedby} ) { - $$suggestion{suggestedby} = C4::Context->preference("AnonSuggestions"); + $$suggestion{suggestedby} = C4::Context->preference("AnonymousPatron"); } } else { -- 1.5.6.5