[Koha-patches] [PATCH] Fix for Bug 2970, Create a permission for modifying holds priority
Owen Leonard
oleonard at myacpl.org
Wed Feb 10 22:18:58 CET 2010
Adding two new granular permissions under 'reserveforothers,' place_holds
and modify_holds_priority. If a user does not have modify_holds_priority
permission, the option to change the priority of a hold is hidden.
Revised patch includes changes to mandatory data files including
properly translated fr-FR version.
---
installer/data/mysql/en/mandatory/userflags.sql | 2 +-
.../data/mysql/en/mandatory/userpermissions.sql | 2 +
.../data/mysql/fr-FR/1-Obligatoire/userflags.sql | 2 +-
.../mysql/fr-FR/1-Obligatoire/userpermissions.sql | 2 +
installer/data/mysql/pl-PL/mandatory/userflags.sql | 2 +-
.../data/mysql/pl-PL/mandatory/userpermissions.sql | 2 +
.../data/mysql/ru-RU/mandatory/user_flags.sql | 2 +-
.../data/mysql/ru-RU/mandatory/userpermissions.sql | 2 +
.../data/mysql/uk-UA/mandatory/user_flags.sql | 2 +-
.../data/mysql/uk-UA/mandatory/userpermissions.sql | 40 ++++++++++++++++++++
.../data/mysql/uk-UA/mandatory/userpermissions.txt | 1 +
installer/data/mysql/updatedatabase.pl | 13 ++++++
.../prog/en/modules/reserve/request.tmpl | 12 +++---
reserve/request.pl | 2 +-
14 files changed, 74 insertions(+), 12 deletions(-)
create mode 100644 installer/data/mysql/uk-UA/mandatory/userpermissions.sql
create mode 100644 installer/data/mysql/uk-UA/mandatory/userpermissions.txt
diff --git a/installer/data/mysql/en/mandatory/userflags.sql b/installer/data/mysql/en/mandatory/userflags.sql
index 9f84d78..e9d9b2e 100644
--- a/installer/data/mysql/en/mandatory/userflags.sql
+++ b/installer/data/mysql/en/mandatory/userflags.sql
@@ -4,7 +4,7 @@ INSERT INTO `userflags` VALUES(2,'catalogue','View Catalog (Librarian Interface)
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','Reserve books for patrons',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);
diff --git a/installer/data/mysql/en/mandatory/userpermissions.sql b/installer/data/mysql/en/mandatory/userpermissions.sql
index fc9f305..d737ae6 100644
--- a/installer/data/mysql/en/mandatory/userpermissions.sql
+++ b/installer/data/mysql/en/mandatory/userpermissions.sql
@@ -1,6 +1,8 @@
INSERT INTO permissions (module_bit, code, description) VALUES
( 1, 'circulate_remaining_permissions', 'Remaining circulation permissions'),
( 1, 'override_renewals', 'Override blocked renewals'),
+ ( 6, 'place_holds', 'Place holds for patrons'),
+ ( 6, 'modify_holds_priority', 'Modify holds priority'),
( 9, 'edit_catalogue', 'Edit catalog (Modify bibliographic/holdings data)'),
( 9, 'fast_cataloging', 'Fast cataloging'),
(11, 'vendors_manage', 'Manage vendors'),
diff --git a/installer/data/mysql/fr-FR/1-Obligatoire/userflags.sql b/installer/data/mysql/fr-FR/1-Obligatoire/userflags.sql
index 2cd644f..68fea6e 100644
--- a/installer/data/mysql/fr-FR/1-Obligatoire/userflags.sql
+++ b/installer/data/mysql/fr-FR/1-Obligatoire/userflags.sql
@@ -6,7 +6,7 @@ INSERT INTO `userflags` VALUES(2,'catalogue','Consultation du catalogue (interfa
INSERT INTO `userflags` VALUES(3,'parameters','Définition des paramètres de l''application',0);
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','Gestion des réservations',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);
diff --git a/installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql b/installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql
index 4e1902d..364469b 100644
--- a/installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql
+++ b/installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql
@@ -1,6 +1,8 @@
INSERT INTO permissions (module_bit, code, description) VALUES
( 1, 'circulate_remaining_permissions', 'Remaining circulation permissions'),
( 1, 'override_renewals', 'Override blocked renewals'),
+ ( 6, 'place_holds', 'Réserver pour des adhérents'),
+ ( 6, 'modify_holds_priority', 'Modifier la priorité des réservations'),
( 9, 'edit_catalogue', 'Editer le catalogue'),
( 9, 'fast_cataloging', 'Catalogage rapide'),
(13, 'edit_news', 'Write news for the OPAC and staff interfaces'),
diff --git a/installer/data/mysql/pl-PL/mandatory/userflags.sql b/installer/data/mysql/pl-PL/mandatory/userflags.sql
index 9f84d78..e9d9b2e 100755
--- a/installer/data/mysql/pl-PL/mandatory/userflags.sql
+++ b/installer/data/mysql/pl-PL/mandatory/userflags.sql
@@ -4,7 +4,7 @@ INSERT INTO `userflags` VALUES(2,'catalogue','View Catalog (Librarian Interface)
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','Reserve books for patrons',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);
diff --git a/installer/data/mysql/pl-PL/mandatory/userpermissions.sql b/installer/data/mysql/pl-PL/mandatory/userpermissions.sql
index 110656a..5e787ee 100755
--- a/installer/data/mysql/pl-PL/mandatory/userpermissions.sql
+++ b/installer/data/mysql/pl-PL/mandatory/userpermissions.sql
@@ -1,6 +1,8 @@
INSERT INTO permissions (module_bit, code, description) VALUES
( 1, 'circulate_remaining_permissions', 'Remaining circulation permissions'),
( 1, 'override_renewals', 'Override blocked renewals'),
+ ( 6, 'place_holds', 'Place holds for patrons'),
+ ( 6, 'modify_holds_priority', 'Modify holds priority'),
( 9, 'edit_catalogue', 'Edit catalogue'),
( 9, 'fast_cataloging', 'Szybkie katalogowanie'),
(11, 'vendors_manage', 'ZarzÄ
dzanei dostawcami'),
diff --git a/installer/data/mysql/ru-RU/mandatory/user_flags.sql b/installer/data/mysql/ru-RU/mandatory/user_flags.sql
index 087cdd9..5bc337a 100644
--- a/installer/data/mysql/ru-RU/mandatory/user_flags.sql
+++ b/installer/data/mysql/ru-RU/mandatory/user_flags.sql
@@ -6,7 +6,7 @@ INSERT INTO `userflags` VALUES(2, 'catalogue', 'ÐÑоÑмоÑÑ ÐºÐ°Ñа
INSERT INTO `userflags` VALUES(3, 'parameters', 'УÑÑановка ÑиÑÑемнÑÑ
наÑÑÑоек Koha',0);
INSERT INTO `userflags` VALUES(4, 'borrowers', 'ÐнеÑение и изменение поÑеÑиÑелей',0);
INSERT INTO `userflags` VALUES(5, 'permissions', 'УÑÑановка пÑивилегий полÑзоваÑелÑ',0);
-INSERT INTO `userflags` VALUES(6, 'reserveforothers','РезеÑвиÑование книжек Ð´Ð»Ñ Ð¿Ð¾ÑеÑиÑелей',0);
+INSERT INTO `userflags` VALUES(6, 'reserveforothers','Place and modify holds for patrons',0);
INSERT INTO `userflags` VALUES(7, 'borrow', 'Ðаем книг',1);
INSERT INTO `userflags` VALUES(9, 'editcatalogue', 'Ðзменение каÑалога (изменение библиогÑаÑиÑеÑкиÑ
/локалÑнÑÑ
даннÑÑ
)',0);
INSERT INTO `userflags` VALUES(10,'updatecharges', 'Ðбновление Ð¾Ð¿Ð»Ð°Ñ Ð¿Ð¾Ð»ÑзоваÑелей',0);
diff --git a/installer/data/mysql/ru-RU/mandatory/userpermissions.sql b/installer/data/mysql/ru-RU/mandatory/userpermissions.sql
index c58bc93..eca6738 100644
--- a/installer/data/mysql/ru-RU/mandatory/userpermissions.sql
+++ b/installer/data/mysql/ru-RU/mandatory/userpermissions.sql
@@ -1,6 +1,8 @@
TRUNCATE permissions;
INSERT INTO permissions (module_bit, code, description) VALUES
+ ( 6, 'place_holds', 'Place holds for patrons'),
+ ( 6, 'modify_holds_priority', 'Modify holds priority'),
(13, 'edit_news', 'ÐапиÑание новоÑÑей Ð´Ð»Ñ ÑлекÑÑонного каÑалога и инÑеÑÑейÑа библиоÑекаÑей'),
(13, 'label_creator', 'Создание пеÑаÑнÑÑ
наклеек и ÑÑÑиÑ
кодов из каÑалога и Ñ Ð´Ð°Ð½Ð½Ñми о полÑзоваÑелÑÑ
'),
(13, 'edit_calendar', 'ÐпÑеделение дней, когда библиоÑека закÑÑÑа'),
diff --git a/installer/data/mysql/uk-UA/mandatory/user_flags.sql b/installer/data/mysql/uk-UA/mandatory/user_flags.sql
index 167c716..3cea5d0 100644
--- a/installer/data/mysql/uk-UA/mandatory/user_flags.sql
+++ b/installer/data/mysql/uk-UA/mandatory/user_flags.sql
@@ -6,7 +6,7 @@ INSERT INTO `userflags` VALUES(2, 'catalogue', 'ÐеÑеглÑд каÑа
INSERT INTO `userflags` VALUES(3, 'parameters', 'ÐÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑиÑÑемниÑ
налаÑÑÑÐ²Ð°Ð½Ñ Koha',0);
INSERT INTO `userflags` VALUES(4, 'borrowers', 'ÐнеÑÐµÐ½Ð½Ñ Ñа змÑна вÑдвÑдÑваÑÑв',0);
INSERT INTO `userflags` VALUES(5, 'permissions', 'ÐÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿ÑивÑлеÑв коÑиÑÑÑваÑа',0);
-INSERT INTO `userflags` VALUES(6, 'reserveforothers','РезеÑвÑÐ²Ð°Ð½Ð½Ñ ÐºÐ½Ð¸Ð¶Ð¾Ðº Ð´Ð»Ñ Ð²ÑдвÑдÑваÑÑв',0);
+INSERT INTO `userflags` VALUES(6, 'reserveforothers','Place and modify holds for patrons',0);
INSERT INTO `userflags` VALUES(7, 'borrow', 'ÐипозиÑÐ°Ð½Ð½Ñ ÐºÐ½Ð¸Ð¶Ð¾Ðº',1);
INSERT INTO `userflags` VALUES(9, 'editcatalogue', 'РедагÑÐ²Ð°Ð½Ð½Ñ ÐºÐ°ÑÐ°Ð»Ð¾Ð³Ñ (змÑна бÑблÑогÑаÑÑÑниÑ
/локалÑниÑ
даниÑ
)',0);
INSERT INTO `userflags` VALUES(10,'updatecharges', 'ÐÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑÐ¿Ð»Ð°Ñ ÐºÐ¾ÑиÑÑÑваÑÑв',0);
diff --git a/installer/data/mysql/uk-UA/mandatory/userpermissions.sql b/installer/data/mysql/uk-UA/mandatory/userpermissions.sql
new file mode 100644
index 0000000..d737ae6
--- /dev/null
+++ b/installer/data/mysql/uk-UA/mandatory/userpermissions.sql
@@ -0,0 +1,40 @@
+INSERT INTO permissions (module_bit, code, description) VALUES
+ ( 1, 'circulate_remaining_permissions', 'Remaining circulation permissions'),
+ ( 1, 'override_renewals', 'Override blocked renewals'),
+ ( 6, 'place_holds', 'Place holds for patrons'),
+ ( 6, 'modify_holds_priority', 'Modify holds priority'),
+ ( 9, 'edit_catalogue', 'Edit catalog (Modify bibliographic/holdings data)'),
+ ( 9, 'fast_cataloging', 'Fast cataloging'),
+ (11, 'vendors_manage', 'Manage vendors'),
+ (11, 'contracts_manage', 'Manage contracts'),
+ (11, 'period_manage', 'Manage periods'),
+ (11, 'budget_manage', 'Manage budgets'),
+ (11, 'budget_modify', 'Modify budget (can''t create lines, but can modify existing ones)'),
+ (11, 'planning_manage', 'Manage budget plannings'),
+ (11, 'order_manage', 'Manage orders & basket'),
+ (11, 'group_manage', 'Manage orders & basketgroups'),
+ (11, 'order_receive', 'Manage orders & basket'),
+ (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
+ (13, 'edit_news', 'Write news for the OPAC and staff interfaces'),
+ (13, 'label_creator', 'Create printable labels and barcodes from catalog and patron data'),
+ (13, 'edit_calendar', 'Define days when the library is closed'),
+ (13, 'moderate_comments', 'Moderate patron comments'),
+ (13, 'edit_notices', 'Define notices'),
+ (13, 'edit_notice_status_triggers', 'Set notice/status triggers for overdue items'),
+ (13, 'view_system_logs', 'Browse the system logs'),
+ (13, 'inventory', 'Perform inventory (stocktaking) of your catalog'),
+ (13, 'stage_marc_import', 'Stage MARC records into the reservoir'),
+ (13, 'manage_staged_marc', 'Managed staged MARC records, including completing and reversing imports'),
+ (13, 'export_catalog', 'Export bibliographic and holdings data'),
+ (13, 'import_patrons', 'Import patron data'),
+ (13, 'delete_anonymize_patrons', 'Delete old borrowers and anonymize circulation history (deletes borrower reading history)'),
+ (13, 'batch_upload_patron_images', 'Upload patron images in batch or one at a time'),
+ (13, 'schedule_tasks', 'Schedule tasks to run'),
+ (13, 'batchmod', 'Perform batch modification of items'),
+ (13, 'batchdel', 'Perform batch deletion of items'),
+ (13, 'manage_csv_profiles', 'Manage CSV export profiles'),
+ (13, 'moderate_tags', 'Moderate patron tags'),
+ (13, 'rotating_collections', 'Manage rotating collections'),
+ (16, 'execute_reports', 'Execute SQL reports'),
+ (16, 'create_reports', 'Create SQL Reports')
+;
diff --git a/installer/data/mysql/uk-UA/mandatory/userpermissions.txt b/installer/data/mysql/uk-UA/mandatory/userpermissions.txt
new file mode 100644
index 0000000..59b7ce1
--- /dev/null
+++ b/installer/data/mysql/uk-UA/mandatory/userpermissions.txt
@@ -0,0 +1 @@
+Detailed staff user permissions
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index 32ad48b..dc3fffe 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -3445,6 +3445,19 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
SetVersion ($DBversion);
}
+$DBversion = "3.01.00.XXX";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("INSERT INTO `permissions` (`module_bit`, `code`, `description`) VALUES
+ (6, 'place_holds', 'Place holds for patrons')");
+ $dbh->do("INSERT INTO `permissions` (`module_bit`, `code`, `description`) VALUES
+ (6, 'modify_holds_priority', 'Modify holds priority')");
+ $dbh->do("UPDATE `userflags` SET `flagdesc` = 'Place and modify holds for patrons' WHERE `flag` = 'reserveforothers'");
+ print "Upgrade to $DBversion done (Add granular permission for holds modification and update description of reserveforothers permission)\n";
+ SetVersion ($DBversion);
+}
+
+
+
=item DropAllForeignKeys($table)
Drop all foreign keys of the table $table
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tmpl
index 51c4e0a..ffc84b6 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tmpl
@@ -270,7 +270,7 @@ function checkMultiHold() {
</li>
<!-- TMPL_UNLESS NAME="multi_hold" -->
<li>
- <span class="label">Priority:</span>
+ <span class="label">Priority:</span>
<strong><!-- TMPL_VAR Name="fixedRank" --></strong>
</li>
<!-- /TMPL_UNLESS -->
@@ -463,7 +463,7 @@ function checkMultiHold() {
<img src="<!-- TMPL_VAR name="imageurl" -->" alt="<!-- TMPL_VAR NAME="itypename" -->" title="<!-- TMPL_VAR NAME="itypename" -->" />
</td>
<!-- /TMPL_UNLESS -->
- <td><!-- TMPL_VAR NAME="rank" --></td>
+ <td><!-- TMPL_VAR NAME="rank" --></td>
<td>
<!-- TMPL_IF NAME="alreadyres" -->
<ul>
@@ -529,7 +529,7 @@ function checkMultiHold() {
<caption><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"><!-- TMPL_VAR NAME="title" ESCAPE="html" --></a></caption>
<!-- /TMPL_IF -->
<tr>
- <th>Priority</th>
+ <!-- TMPL_IF NAME="CAN_user_reserveforothers_modify_holds_priority" --><th>Priority</th><!-- TMPL_ELSE --><th>Delete?</th><!-- /TMPL_IF -->
<th>Patron</th>
<th>Notes</th>
<th>Date</th>
@@ -545,9 +545,9 @@ function checkMultiHold() {
<!-- TMPL_IF Name="wait" -->
<option value="W" selected="selected">Waiting</option>
<!-- /TMPL_IF -->
- <!-- TMPL_LOOP Name="optionloop" -->
- <!-- TMPL_IF Name="selected" --><option value="<!-- TMPL_VAR NAME="num" -->" selected="selected"><!-- TMPL_VAR NAME="num" --></option><!-- TMPL_ELSE --><option value="<!-- TMPL_VAR NAME="num" -->"><!-- TMPL_VAR NAME="num" --></option><!-- /TMPL_IF -->
- <!-- /TMPL_LOOP -->
+ <!-- TMPL_IF NAME="CAN_user_reserveforothers_modify_holds_priority" --><!-- TMPL_LOOP Name="optionloop" -->
+ <!-- TMPL_IF Name="selected" --><option value="<!-- TMPL_VAR NAME="num" -->" selected="selected"><!-- TMPL_VAR NAME="num" --></option><!-- TMPL_ELSE --><option value="<!-- TMPL_VAR NAME="num" -->"><!-- TMPL_VAR NAME="num" --></option><!-- /TMPL_IF -->
+ <!-- /TMPL_LOOP --><!-- TMPL_ELSE --><option value=""></option><!-- /TMPL_IF -->
<option value="del">del</option>
</select>
</td>
diff --git a/reserve/request.pl b/reserve/request.pl
index 908a626..3c6ac59 100755
--- a/reserve/request.pl
+++ b/reserve/request.pl
@@ -51,7 +51,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
query => $input,
type => "intranet",
authnotrequired => 0,
- flagsrequired => { reserveforothers => 1 },
+ flagsrequired => { reserveforothers => 'place_holds' },
}
);
--
1.6.3.3
More information about the Koha-patches
mailing list