Bug 7976: Remove the borrow permission
authorJonathan Druart <jonathan.druart@biblibre.com>
Mon, 30 Mar 2015 16:18:16 +0000 (18:18 +0200)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Fri, 5 Jun 2015 16:43:34 +0000 (13:43 -0300)
The borrow permission was used but uselessly.
For instance, at the opac, the flagsrequired parameter was set to
'borrow' but the 'authnotrequired' was set also (which means no auth
required).
At the end, this permission was used at only 1 place: for the basket,
intranet side.
This can be replaced with the catalogue permission (which is used to
search).

Test plan:
1/ Confirm that you are able to show/download/sent the cart (intranet side)
with the catalogue permission.
2/ At the OPAC, you should be able to access the same pages as before
with any other permissions.

Concretely it is quite difficult to test this patch, you should have a
look at the code.

Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
36 files changed:
C4/Auth.pm
C4/InstallAuth.pm
basket/basket.pl
basket/downloadcart.pl
basket/sendbasket.pl
installer/data/mysql/de-DE/mandatory/userflags.sql
installer/data/mysql/en/mandatory/userflags.sql
installer/data/mysql/es-ES/mandatory/userflags.sql
installer/data/mysql/fr-FR/1-Obligatoire/userflags.sql
installer/data/mysql/it-IT/necessari/userflags.sql
installer/data/mysql/nb-NO/1-Obligatorisk/userflags.sql
installer/data/mysql/pl-PL/mandatory/userflags.sql
installer/data/mysql/ru-RU/mandatory/permissions_and_user_flags.sql
installer/data/mysql/uk-UA/mandatory/permissions_and_user_flags.sql
installer/data/mysql/updatedatabase.pl
opac/opac-account.pl
opac/opac-basket.pl
opac/opac-detail.pl
opac/opac-downloadcart.pl
opac/opac-downloadshelf.pl
opac/opac-ics.pl
opac/opac-imageviewer.pl
opac/opac-main.pl
opac/opac-messaging.pl
opac/opac-modrequest-suspend.pl
opac/opac-modrequest.pl
opac/opac-mymessages.pl
opac/opac-passwd.pl
opac/opac-privacy.pl
opac/opac-readingrecord.pl
opac/opac-renew.pl
opac/opac-reserve.pl
opac/opac-sendbasket.pl
opac/opac-sendshelf.pl
opac/opac-user.pl
opac/svc/shelfbrowser.pl

index aaf221c..0d21575 100644 (file)
@@ -107,7 +107,7 @@ C4::Auth - Authenticates Koha users
             query           => $query,
       type            => "opac",
       authnotrequired => 0,
-      flagsrequired   => {borrow => 1, catalogue => '*', tools => 'import_patrons' },
+      flagsrequired   => { catalogue => '*', tools => 'import_patrons' },
   }
     );
 
@@ -131,7 +131,7 @@ automatically. This gets loaded into the template.
          query           => $query,
          type            => "opac",
          authnotrequired => 0,
-         flagsrequired   => {borrow => 1, catalogue => '*', tools => 'import_patrons' },
+         flagsrequired   => { catalogue => '*', tools => 'import_patrons' },
        }
      );
 
@@ -230,7 +230,6 @@ sub get_template_and_user {
             $template->param( CAN_user_borrowers        => 1 );
             $template->param( CAN_user_permissions      => 1 );
             $template->param( CAN_user_reserveforothers => 1 );
-            $template->param( CAN_user_borrow           => 1 );
             $template->param( CAN_user_editcatalogue    => 1 );
             $template->param( CAN_user_updatecharges    => 1 );
             $template->param( CAN_user_acquisition      => 1 );
index 0d0eb52..c1eba6a 100644 (file)
@@ -45,13 +45,14 @@ InstallAuth - Authenticates Koha users for Install process
 
   my $query = new CGI;
 
-  my ($template, $borrowernumber, $cookie) 
-    = get_template_and_user({template_name   => "opac-main.tt",
-                             query           => $query,
-                            type            => "opac",
-                            authnotrequired => 1,
-                            flagsrequired   => {borrow => 1},
-                         });
+    my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
+        {   template_name   => "opac-main.tt",
+            query           => $query,
+            type            => "opac",
+            authnotrequired => 1,
+            flagsrequired   => { acquisition => '*' },
+        }
+    );
 
   output_html_with_http_headers $query, $cookie, $template->output;
 
@@ -80,13 +81,14 @@ InstallAuth - Authenticates Koha users for Install process
 
 =item get_template_and_user
 
-  my ($template, $borrowernumber, $cookie)
-    = get_template_and_user({template_name   => "opac-main.tt",
-                             query           => $query,
-                            type            => "opac",
-                            authnotrequired => 1,
-                            flagsrequired   => {borrow => 1},
-                         });
+    my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
+        {   template_name   => "opac-main.tt",
+            query           => $query,
+            type            => "opac",
+            authnotrequired => 1,
+            flagsrequired   => { acquisition => '*' },
+        }
+    );
 
     This call passes the C<query>, C<flagsrequired> and C<authnotrequired>
     to C<&checkauth> (in this module) to perform authentification.
@@ -139,7 +141,6 @@ sub get_template_and_user {
             $template->param( CAN_user_borrowers        => 1 );
             $template->param( CAN_user_permission       => 1 );
             $template->param( CAN_user_reserveforothers => 1 );
-            $template->param( CAN_user_borrow           => 1 );
             $template->param( CAN_user_editcatalogue    => 1 );
             $template->param( CAN_user_updatecharges    => 1 );
             $template->param( CAN_user_acquisition      => 1 );
index 8d085a9..d7662dd 100755 (executable)
@@ -33,7 +33,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user (
         template_name   => "basket/basket.tt",
         query           => $query,
         type            => "intranet",
-        flagsrequired   => { borrow => 1 },
+        flagsrequired   => { catalogue => 1 },
     }
 );
 
index 2c71951..c8fe4b2 100755 (executable)
@@ -40,7 +40,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user (
         query           => $query,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
+        flagsrequired   => { catalogue => 1 },
     }
 );
 
index 71516a4..1dd7661 100755 (executable)
@@ -40,7 +40,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user (
         query           => $query,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
+        flagsrequired   => { catalogue => 1 },
     }
 );
 
index cd080fc..bc7d621 100644 (file)
@@ -5,7 +5,6 @@ INSERT INTO `userflags` VALUES(3,'parameters','Administration und Systemparamete
 INSERT INTO `userflags` VALUES(4,'borrowers','Benutzer anlegen/ändern',0);
 INSERT INTO `userflags` VALUES(5,'permissions','Berechtigungen für Benutzer vergeben',0);
 INSERT INTO `userflags` VALUES(6,'reserveforothers','Vormerkungen für Benutzer setzen/ändern',0);
-INSERT INTO `userflags` VALUES(7,'borrow','Medien entleihen',1);
 INSERT INTO `userflags` VALUES(9,'editcatalogue','Katalogdaten ändern (Titel- und Bestandsdaten ändern)',0);
 INSERT INTO `userflags` VALUES(10,'updatecharges','Gebühren verwalten',0);
 INSERT INTO `userflags` VALUES(11,'acquisition','Erwerbung und Verwaltung von Anschaffungsvorschlägen',0);
index 40ca2b6..d8e3626 100644 (file)
@@ -6,7 +6,6 @@ INSERT INTO userflags (bit, flag, flagdesc, defaulton) VALUES
 (4,'borrowers','Add or modify patrons',0),
 (5,'permissions','Set user permissions',0),
 (6,'reserveforothers','Place and modify holds for patrons',0),
-(7,'borrow','Borrow books',1),
 (9,'editcatalogue','Edit catalog (Modify bibliographic/holdings data)',0),
 (10,'updatecharges','Manage patrons fines and fees',0),
 (11,'acquisition','Acquisition and/or suggestion management',0),
index a37d7b0..81743ad 100644 (file)
@@ -5,7 +5,6 @@ INSERT INTO `userflags` VALUES(3,'parameters','Set Koha system parameters',0);
 INSERT INTO `userflags` VALUES(4,'borrowers','Add or modify borrowers',0);
 INSERT INTO `userflags` VALUES(5,'permissions','Set user permissions',0);
 INSERT INTO `userflags` VALUES(6,'reserveforothers','Place and modify holds for patrons',0);
-INSERT INTO `userflags` VALUES(7,'borrow','Borrow books',1);
 INSERT INTO `userflags` VALUES(9,'editcatalogue','Edit Catalog (Modify bibliographic/holdings data)',0);
 INSERT INTO `userflags` VALUES(10,'updatecharges','Update borrower charges',0);
 INSERT INTO `userflags` VALUES(11,'acquisition','Acquisition and/or suggestion management',0);
index f9f3afc..277f84c 100644 (file)
@@ -7,7 +7,6 @@ INSERT INTO `userflags` VALUES(3,'parameters','Définition des paramètres de l'
 INSERT INTO `userflags` VALUES(4,'borrowers','Gestion des lecteurs',0);
 INSERT INTO `userflags` VALUES(5,'permissions','Définition des habilitations',0);
 INSERT INTO `userflags` VALUES(6,'reserveforothers','Ajout et modifications des réservations des adhérents',0);
-INSERT INTO `userflags` VALUES(7,'borrow','Circulation (inutile normalement)',1);
 INSERT INTO `userflags` VALUES(9,'editcatalogue','fonctions de catalogage',0);
 INSERT INTO `userflags` VALUES(10,'updatecharges','Gestion des pénalités financières',0);
 INSERT INTO `userflags` VALUES(11,'acquisition','Gestion des acquisitions',0);
index 47fa0c6..de6ee7c 100644 (file)
@@ -7,7 +7,6 @@ INSERT INTO `userflags` VALUES(3,'parameters','Imposta i parametri di Koha',0);
 INSERT INTO `userflags` VALUES(4,'borrowers','Aggiungi o modifica gli utenti',0);
 INSERT INTO `userflags` VALUES(5,'permissions','Imposta i permessi utente',0);
 INSERT INTO `userflags` VALUES(6,'reserveforothers','Prenota i libri per gli utenti',0);
-INSERT INTO `userflags` VALUES(7,'borrow','Presta i libri',1);
 INSERT INTO `userflags` VALUES(9,'editcatalogue','Modifica il catalogo (modifica i dati bibliografici e titoli)',0);
 INSERT INTO `userflags` VALUES(10,'updatecharges','Aggiorna le tariffe del prestito',0);
 INSERT INTO `userflags` VALUES(11,'acquisition','Gestione delle acquisizioni e dei suggerimenti d\'acquisto',0);
index 48dd5fe..c5b26ca 100644 (file)
@@ -26,7 +26,6 @@ INSERT INTO `userflags` VALUES(3,'parameters','Endre Kohas systempreferanser',0)
 INSERT INTO `userflags` VALUES(4,'borrowers','Legge til og endre lånere',0);
 INSERT INTO `userflags` VALUES(5,'permissions','Endre brukerrettigheter',0);
 INSERT INTO `userflags` VALUES(6,'reserveforothers','Reservere og endre reservasjoner for lånere',0);
-INSERT INTO `userflags` VALUES(7,'borrow','Låne dokumenter',1);
 INSERT INTO `userflags` VALUES(9,'editcatalogue','Endre katalogen (Endre bibliografiske poster og eksemplaropplysninger)',0);
 INSERT INTO `userflags` VALUES(10,'updatecharges','Endre gebyrer for lånere',0);
 INSERT INTO `userflags` VALUES(11,'acquisition','Innkjøp og/eller behandling av forslag',0);
index 4820be4..beafe6f 100644 (file)
@@ -6,7 +6,6 @@ INSERT INTO userflags (bit, flag, flagdesc, defaulton) VALUES
 (4,'borrowers','Dodawanie i modyfikowanie użytkowników',0),
 (5,'permissions','Ustawianie uprawnień użytkownikom',0),
 (6,'reserveforothers','Składanie i modyfikacja zamówień w imieniu użytkowników',0),
-(7,'borrow','Wypożyczanie książek',1),
 (9,'editcatalogue','Modyfikowanie katalogu (Modyfikacja rekordów bibliograficznych/egzemplarza)',0),
 (10,'updatecharges','Zarządzanie należnościami',0),
 (11,'acquisition','Gromadzenie oraz/lub zarządzanie propozycjami zakupu',0),
index 511c4d8..23af322 100644 (file)
@@ -8,7 +8,6 @@ INSERT INTO userflags (bit, flag, flagdesc, defaulton) VALUES
    (4, 'borrowers',       'Внесение и изменение посетителей',0),
    (5, 'permissions',     'Установка привилегий пользователя',0),
    (6, 'reserveforothers','Резервирование книжек для посетителей',0),
-   (7, 'borrow',          'Заем книг',1),
    (9, 'editcatalogue',   'Изменение каталога (изменение библиографических/локальных данных)',0),
    (10,'updatecharges',   'Обновление оплат пользователей',0),
    (11,'acquisition',     'Управление поступлениями и/или предложениями',0),
index 219ff65..3cb0571 100644 (file)
@@ -8,7 +8,6 @@ INSERT INTO userflags (bit, flag, flagdesc, defaulton) VALUES
    (4, 'borrowers',       'Внесення та зміна відвідувачів',0),
    (5, 'permissions',     'Встановлення привілеїв користувача',0),
    (6, 'reserveforothers','Резервування книжок для відвідувачів',0),
-   (7, 'borrow',          'Випозичання книжок',1),
    (9, 'editcatalogue',   'Редагування каталогу (зміна бібліографічних/локальних даних)',0),
    (10,'updatecharges',   'Оновлення сплат користувачів',0),
    (11,'acquisition',     'Управління надходженнями і/чи пропозиціями',0),
index 7f93aff..9b3dde9 100755 (executable)
@@ -9977,6 +9977,7 @@ if ( CheckVersion($DBversion) ) {
     SetVersion ($DBversion);
 }
 
+
 $DBversion = "3.19.00.018";
 if ( CheckVersion($DBversion) ) {
     $dbh->do(q|
@@ -10554,6 +10555,17 @@ foreach my $file ( sort readdir $dirh ) {
     }
 }
 
+
+$DBversion = "3.19.00.XXX";
+if ( CheckVersion($DBversion) ) {
+    $dbh->do(q|
+        DELETE FROM userflags WHERE bit=7;
+    |);
+    print "Upgrade to $DBversion done (Bug 7976 - Remove the 'borrow' permission)\n";
+    SetVersion($DBversion);
+}
+
+
 =head1 FUNCTIONS
 
 =head2 TableExists($table)
index 9c0717d..e575650 100755 (executable)
@@ -34,7 +34,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "opac",
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
         debug           => 1,
     }
 );
index 89e1228..296ac7d 100755 (executable)
@@ -35,7 +35,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user (
         query           => $query,
         type            => "opac",
         authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ),
-        flagsrequired   => { borrow => 1 },
     }
 );
 
index ca882ea..bc9b323 100755 (executable)
@@ -67,7 +67,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "opac",
         authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ),
-        flagsrequired   => { borrow => 1 },
     }
 );
 
index 2541701..f14eb9e 100755 (executable)
@@ -39,8 +39,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user (
         template_name   => "opac-downloadcart.tt",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
-        flagsrequired   => { borrow => 1 },
+        authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ),
     }
 );
 
index fc86620..4a62325 100755 (executable)
@@ -39,8 +39,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user (
         template_name   => "opac-downloadshelf.tt",
         query           => $query,
         type            => "opac",
-        authnotrequired => 1,
-        flagsrequired   => { borrow => 1 },
+        authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ),
     }
 );
 
index a7fcb03..fe87409 100755 (executable)
@@ -44,7 +44,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "opac",
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
         debug           => 1,
     }
 );
index 83ffbfd..3cb4779 100755 (executable)
@@ -33,7 +33,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "opac",
         authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ),
-        flagsrequired => { borrow => 1 },
     }
 );
 
index 9db64cb..b0904c5 100755 (executable)
@@ -35,7 +35,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         type            => "opac",
         query           => $input,
         authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ),
-        flagsrequired   => { borrow => 1 },
     }
 );
 
index 3e55c57..69ae517 100755 (executable)
@@ -41,7 +41,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $query,
         type            => 'opac',
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
         debug           => 1,
     }
 );
index 357976d..8058394 100755 (executable)
@@ -29,7 +29,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "opac",
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
         debug           => 1,
     }
 );
index e7f35b1..8a2e041 100755 (executable)
@@ -37,7 +37,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "opac",
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
         debug           => 1,
     }
 );
index 393acd3..dadbf6f 100755 (executable)
@@ -36,7 +36,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $query,
         type            => 'opac',
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
         debug           => 1,
     }
 );
index ac4484f..2eaf6cc 100755 (executable)
@@ -40,7 +40,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "opac",
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
         debug           => 1,
     }
 );
index 0f2c6c8..09ca341 100755 (executable)
@@ -42,7 +42,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "opac",
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
         debug           => 1,
     }
 );
index 795e90c..3848aaa 100755 (executable)
@@ -46,7 +46,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "opac",
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
         debug           => 1,
     }
 );
index 16b9f6d..d62a883 100755 (executable)
@@ -39,7 +39,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "opac",
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
         debug           => 1,
        }
 ); 
index eac5b94..68abc0a 100755 (executable)
@@ -55,7 +55,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "opac",
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
         debug           => 1,
     }
 );
index a451866..82e7d76 100755 (executable)
@@ -43,7 +43,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user (
         query           => $query,
         type            => "opac",
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
     }
 );
 
@@ -75,7 +74,6 @@ if ( $email_add ) {
             query           => $query,
             type            => "opac",
             authnotrequired => 0,
-            flagsrequired   => { borrow => 1 },
         }
     );
 
index ed9858b..f6ce844 100755 (executable)
@@ -43,7 +43,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user (
         query           => $query,
         type            => "opac",
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
     }
 );
 
@@ -70,7 +69,6 @@ if ( $email ) {
             query           => $query,
             type            => "opac",
             authnotrequired => 1,
-            flagsrequired   => { borrow => 1 },
         }
     );
 
index 18dfec6..d4fbbe3 100755 (executable)
@@ -60,7 +60,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "opac",
         authnotrequired => 0,
-        flagsrequired   => { borrow => 1 },
         debug           => 1,
     }
 );
index ea0e9d7..2b24a0e 100755 (executable)
@@ -16,7 +16,6 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $cgi,
         type            => "opac",
         authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ),
-        flagsrequired   => { borrow => 1 },
     }
 );