Bug 18403: Update permissions - borrowers => 1|* becomes borrowers => 'edit_borrowers'
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 4 Apr 2017 20:45:30 +0000 (17:45 -0300)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 12 Feb 2018 18:41:37 +0000 (15:41 -0300)
Test plan:
Login with a patron that only have the 'edit_borrowers' permission.
You should be able to access patron's information of patrons inside of your group.

Technical note:
Before this patchset the borrowers permission module contains only 1 permission 'edit_borrowers'.
That meant
  borrowers => 1
and
  borrowers => '*'
had the same behavior.
Moreover, now that we have 2 permissions, 'CAN_user_borrowers' is set when all
permissions of 'borrowers' are set.
We need to update the different occurrences of these tests.

Signed-off-by: Signed-off-by: Jon McGowan <jon.mcgowan@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

48 files changed:
circ/add_message.pl
circ/del_message.pl
edithelp.pl
koha-tmpl/intranet-tmpl/prog/en/includes/adv-search.inc
koha-tmpl/intranet-tmpl/prog/en/includes/borrower_debarments.inc
koha-tmpl/intranet-tmpl/prog/en/includes/circ-menu.inc
koha-tmpl/intranet-tmpl/prog/en/includes/header.inc
koha-tmpl/intranet-tmpl/prog/en/includes/home-search.inc
koha-tmpl/intranet-tmpl/prog/en/includes/members-menu.inc
koha-tmpl/intranet-tmpl/prog/en/includes/members-toolbar.inc
koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt
koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt
koha-tmpl/intranet-tmpl/prog/en/modules/members/files.tt
koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt
koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt
labels/label-item-search.pl
members/boraccount.pl
members/default_messageprefs.pl
members/deletemem.pl
members/discharge.pl
members/discharges.pl
members/files.pl
members/guarantor_search.pl
members/housebound.pl
members/mancredit.pl
members/maninvoice.pl
members/member-password.pl
members/member.pl
members/memberentry.pl
members/members-home.pl
members/members-update-do.pl
members/members-update.pl
members/mod_debarment.pl
members/moremember.pl
members/nl-search.pl
members/notices.pl
members/pay.pl
members/paycollect.pl
members/printfeercpt.pl
members/printinvoice.pl
members/purchase-suggestions.pl
members/readingrec.pl
members/setstatus.pl
members/statistics.pl
members/update-child.pl
opac/opac-overdrive-search.pl
svc/checkouts
svc/members/search

index 4233e90..67a6844 100755 (executable)
@@ -32,7 +32,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1 },
+        flagsrequired   => { borrowers => 'edit_borrowers' },
         debug           => 1,
     }
 );
index 8dfa3d4..8889431 100755 (executable)
@@ -32,7 +32,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1 },
+        flagsrequired   => { borrowers => 'edit_borrowers' },
         debug           => 1,
     }
 );
index dca61b1..a65a504 100755 (executable)
@@ -49,7 +49,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
             catalogue        => 1,
             circulate        => 1,
             parameters       => 1,
-            borrowers        => 1,
+            borrowers        => 'edit_borrowers',
             permissions      => 1,
             reserveforothers => 1,
             reserveforself   => 1,
index 4bce9c4..cc1abab 100644 (file)
@@ -21,7 +21,7 @@
             </div>
         [% END %]
 
-        [% IF ( CAN_user_borrowers ) %]
+        [% IF CAN_user_borrowers_edit_borrowers %]
             <div id="patron_search" class="residentsearch">
                 <p class="tip">Enter patron card number or partial name:</p>
                 <form action="/cgi-bin/koha/members/member.pl" method="post">
@@ -42,7 +42,7 @@
             [% IF ( CAN_user_circulate_circulate_remaining_permissions ) %]
                 <li><a class="keep_text" href="#renew_search">Renew</a></li>
             [% END %]
-            [% IF ( CAN_user_borrowers ) %]
+            [% IF CAN_user_borrowers_edit_borrowers %]
                 <li><a class="keep_text" href="#patron_search">Search patrons</a></li>
             [% END %]
         </ul>
index 477fcfa..99fba0f 100644 (file)
@@ -37,7 +37,7 @@
                      <th>Comment</th>
                      <th>Expiration</th>
                      <th>Created</th>
-                     [% IF CAN_user_borrowers && CAN_user_circulate_manage_restrictions %]
+                     [% IF CAN_user_borrowers_edit_borrowers && CAN_user_circulate_manage_restrictions %]
                          <th>&nbsp;</th>
                      [% END %]
                 </tr>
@@ -66,7 +66,7 @@
                        </td>
                         <td>[% IF d.expiration %] [% d.expiration | $KohaDates %] [% ELSE %] <i>Indefinite</i> [% END %]</td>
                         <td>[% d.created | $KohaDates %]</td>
-                        [% IF CAN_user_borrowers && CAN_user_circulate_manage_restrictions %]
+                        [% IF CAN_user_borrowers_edit_borrowers && CAN_user_circulate_manage_restrictions %]
                             <td>
                                 <a class="remove_restriction btn btn-default btn-xs" href="/cgi-bin/koha/members/mod_debarment.pl?borrowernumber=[% borrowernumber %]&amp;borrower_debarment_id=[% d.borrower_debarment_id %]&amp;action=del">
                                     <i class="fa fa-trash"></i> Remove
@@ -78,7 +78,7 @@
             </tbody>
         </table>
     [% END %]
-    [% IF CAN_user_borrowers && CAN_user_circulate_manage_restrictions %]
+    [% IF CAN_user_borrowers_edit_borrowers && CAN_user_circulate_manage_restrictions %]
         <p><a href="#" id="add_manual_restriction"><i class="fa fa-plus"></i> Add manual restriction</a></p>
         <form method="post" action="/cgi-bin/koha/members/mod_debarment.pl" class="clearfix">
             <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
index 7a419bd..bdcc8af 100644 (file)
@@ -74,7 +74,7 @@
           [% IF ( batch_checkout_view ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% borrowernumber %]&amp;batch=1">Batch check out</a></li>
         [% END %]
     [% END %]
-    [% IF ( CAN_user_borrowers ) %]
+    [% IF CAN_user_borrowers_edit_borrowers %]
         [% IF ( detailview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">Details</a></li>
     [% END %]
     [% IF ( CAN_user_updatecharges ) %]
     [% IF ( CAN_user_circulate_circulate_remaining_permissions  )  %]
         [% IF Koha.Preference("RoutingSerials") %][% IF ( routinglistview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/routing-lists.pl?borrowernumber=[% borrowernumber %]">Routing lists</a></li>[% END %]
     [% END %]
-    [% IF ( CAN_user_borrowers ) %]
+    [% IF CAN_user_borrowers_edit_borrowers %]
         [% IF ( intranetreadinghistory ) %]
             [% IF ( readingrecordview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/readingrec.pl?borrowernumber=[% borrowernumber %]">Circulation history</a></li>
         [% END %]
     [% END %]
-    [% IF ( CAN_user_borrowers ) %]
+    [% IF CAN_user_borrowers_edit_borrowers %]
         [% IF ( intranetreadinghistory ) %]
             [% IF ( holdshistoryview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/holdshistory.pl?borrowernumber=[% borrowernumber %]">Holds history</a></li>
         [% END %]
     [% IF ( CAN_user_parameters ) %]
         [% IF ( logview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/tools/viewlog.pl?do_it=1&amp;modules=MEMBERS&amp;modules=circulation&amp;object=[% borrowernumber %]&amp;src=circ">Modification log</a></li>
     [% END %]
-    [% IF ( CAN_user_borrowers ) %]
+    [% IF CAN_user_borrowers_edit_borrowers %]
        [% IF ( sentnotices ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/notices.pl?borrowernumber=[% borrowernumber %]">Notices</a></li>
     [% END %]
-    [% IF ( CAN_user_borrowers ) %]
+    [% IF CAN_user_borrowers_edit_borrowers %]
         [% IF (  statisticsview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/statistics.pl?borrowernumber=[% borrowernumber %]">Statistics</a></li>
     [% END %]
-    [% IF ( CAN_user_borrowers ) %]
+    [% IF CAN_user_borrowers_edit_borrowers %]
         [% IF ( EnableBorrowerFiles ) %]
             [% IF ( borrower_files ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/files.pl?borrowernumber=[% borrowernumber %]">Files</a></li>
         [% END %]
     [% END %]
 
-    [% IF ( CAN_user_borrowers ) %]
+    [% IF CAN_user_borrowers_edit_borrowers %]
         [% IF ( suggestionsview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/purchase-suggestions.pl?borrowernumber=[% borrowernumber %]">Purchase suggestions</a></li>
     [% END %]
-    [% IF CAN_user_borrowers && useDischarge %]
+    [% IF CAN_user_borrowers_edit_borrowers && useDischarge %]
         [% IF dischargeview %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/discharge.pl?borrowernumber=[% borrowernumber %]">Discharges</a></li>
     [% END %]
     [% IF Koha.Preference('HouseboundModule') %]
index 8e11080..460ea27 100644 (file)
@@ -3,7 +3,7 @@
     <div class="container-fluid">
         <ul id="toplevelmenu" class="nav navbar-nav">
             [% IF ( CAN_user_circulate_circulate_remaining_permissions ) %]<li><a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a></li>[% END %]
-            [% IF ( CAN_user_borrowers ) %]<li><a href="/cgi-bin/koha/members/members-home.pl">Patrons</a></li>[% END %]
+            [% IF CAN_user_borrowers_edit_borrowers %]<li><a href="/cgi-bin/koha/members/members-home.pl">Patrons</a></li>[% END %]
             <li class="dropdown">
                 <a href="/cgi-bin/koha/catalogue/search.pl" class="dropdown-toggle" data-toggle="dropdown">Search <b class="caret"></b></a>
                 <ul class="dropdown-menu">
index be87ac2..59ddcec 100644 (file)
@@ -21,7 +21,7 @@
     </div>
 [% END %]
 
-[% IF ( CAN_user_borrowers ) %]
+[% IF CAN_user_borrowers_edit_borrowers %]
 <div id="patron_search" class="residentsearch">
     <p class="tip">Enter patron card number or partial name:</p>
     <form action="/cgi-bin/koha/members/member.pl" method="post">
@@ -44,7 +44,7 @@
     [% IF ( CAN_user_circulate_circulate_remaining_permissions ) %]<li><a class="keep_text" href="#circ_search">Check out</a></li>[% END %]
     [% IF ( CAN_user_circulate_circulate_remaining_permissions ) %]<li><a class="keep_text" href="#checkin_search">Check in</a></li>[% END %]
     [% IF ( CAN_user_circulate_circulate_remaining_permissions ) %]<li><a class="keep_text" href="#renew_search">Renew</a></li>[% END %]
-    [% IF ( CAN_user_borrowers ) %]<li><a class="keep_text" href="#patron_search">Search patrons</a></li>[% END %]
+    [% IF CAN_user_borrowers_edit_borrowers %]<li><a class="keep_text" href="#patron_search">Search patrons</a></li>[% END %]
     [% IF ( CAN_user_catalogue ) %]<li><a class="keep_text" href="#catalog_search">Search the catalog</a></li>[% END %]
 </ul>
 
index 2b603d0..43d0e5a 100644 (file)
@@ -17,7 +17,7 @@
     [% IF EnableBorrowerFiles %]
         [% IF ( borrower_files ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/files.pl?borrowernumber=[% borrowernumber %]">Files</a></li>
     [% END %]
-    [% IF CAN_user_borrowers && useDischarge %]
+    [% IF CAN_user_borrowers_edit_borrowers && useDischarge %]
         [% IF dischargeview %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/members/discharge.pl?borrowernumber=[% borrowernumber %]">Discharge</a></li>
     [% END %]
     [% IF Koha.Preference('HouseboundModule') %]
index 7b91418..00b2071 100644 (file)
@@ -6,7 +6,7 @@
 <script type="text/javascript">
 //<![CDATA[
 $(document).ready(function(){
-    [% IF ( CAN_user_borrowers ) %]
+    [% IF CAN_user_borrowers_edit_borrowers %]
         [% IF ( NorwegianPatronDBEnable == 1 ) %]
             $("#deletepatronlocal").click(function(){
                 confirm_local_deletion();
@@ -132,7 +132,7 @@ function searchToHold(){
 </script>
 
 <div id="toolbar" class="btn-toolbar">
-    [% IF ( CAN_user_borrowers ) %]
+    [% IF CAN_user_borrowers_edit_borrowers %]
         [% IF ( guarantor ) %]
             <a id="editpatron" class="btn btn-default btn-sm" href="/cgi-bin/koha/members/memberentry.pl?op=modify&amp;destination=circ&amp;borrowernumber=[% borrowernumber %]&amp;guarantorid=[% guarantor.borrowernumber %]&amp;categorycode=[% categorycode %]">
         [% ELSE %]
@@ -141,11 +141,11 @@ function searchToHold(){
         <i class="fa fa-pencil"></i> Edit</a>
     [% END %]
 
-    [% IF ( CAN_user_borrowers ) %]
+    [% IF CAN_user_borrowers_edit_borrowers %]
         [% IF adultborrower AND Koha.Preference("borrowerRelationship") %]
             <a id="addchild" class="btn btn-default btn-sm" href="/cgi-bin/koha/members/memberentry.pl?op=add&amp;guarantorid=[% borrowernumber %]"><i class="fa fa-plus"></i> Add child</a>
         [% END %]
-        [% IF ( CAN_user_borrowers ) %]
+        [% IF CAN_user_borrowers_edit_borrowers %]
             <a id="changepassword" class="btn btn-default btn-sm" href="/cgi-bin/koha/members/member-password.pl?member=[% borrowernumber %]"><i class="fa fa-lock"></i> Change password</a>
         [% END %]
         <a id="duplicate" class="btn btn-default btn-sm" href="/cgi-bin/koha/members/memberentry.pl?op=duplicate&amp;borrowernumber=[% borrowernumber %]&amp;categorycode=[% categorycode %]"><i class="fa fa-copy"></i> Duplicate</a>
@@ -154,7 +154,7 @@ function searchToHold(){
     <div class="btn-group">
         <button class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown"><i class="fa fa-print"></i> Print <span class="caret"></span></button>
             <ul class="dropdown-menu">
-                [% IF ( CAN_user_borrowers ) %]<li><a id="printsummary" href="#">Print summary</a></li>[% END %]
+                [% IF CAN_user_borrowers_edit_borrowers %]<li><a id="printsummary" href="#">Print summary</a></li>[% END %]
                 <li><a id="printslip" href="#">Print slip</a></li>
                 <li><a id="printquickslip" href="#">Print quick slip</a></li>
                 [% IF Borrowers.HasOverdues( borrowernumber ) %]
@@ -172,7 +172,7 @@ function searchToHold(){
          <div class="btn-group">
         <button class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">More <span class="caret"></span></button>
             <ul class="dropdown-menu">
-                [% IF ( CAN_user_borrowers ) %]
+                [% IF CAN_user_borrowers_edit_borrowers %]
                     <li><a id="renewpatron" href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% borrowernumber %]&amp;destination=[% destination %]&amp;reregistration=y">Renew patron</a></li>
                 [% ELSE %]
                     <li class="disabled"><a data-toggle="tooltip" data-placement="left" title="You are not authorized to renew patrons" id="renewpatron" href="#">Renew patron</a></li>
@@ -182,10 +182,10 @@ function searchToHold(){
                 [% ELSE %]
                     <li class="disabled"><a data-toggle="tooltip" data-placement="left" title="You are not authorized to set permissions" id="patronflags" href="#">Set permissions</a></li>
                 [% END %]
-                [% IF CAN_user_borrowers && useDischarge %]
+                [% IF CAN_user_borrowers_edit_borrowers && useDischarge %]
                     <li><a href="/cgi-bin/koha/members/discharge.pl?borrowernumber=[% borrowernumber %]">Discharge</a></li>
                 [% END %]
-                [% IF ( CAN_user_borrowers ) %]
+                [% IF CAN_user_borrowers_edit_borrowers %]
                     [% IF ( NorwegianPatronDBEnable == 1 ) %]
                         <li><a id="deletepatronlocal" href="#">Delete local</a></li>
                         <li><a id="deletepatronremote" href="#">Delete remote</a></li>
index 2e23425..8bad09d 100644 (file)
@@ -772,7 +772,7 @@ No patron matched <span class="ex">[% message | html %]</span>
 
                    [% IF ( has_modifications ) %]
                     <li><span class="circ-hlt">Pending modifications:</span> Patron has pending modifications.
-                            [% IF CAN_user_borrowers && ( !Koha.Preference('IndependentBranchesPatronModifications') || borrower.branch == branch ) %]
+                            [% IF CAN_user_borrowers_edit_borrowers && ( !Koha.Preference('IndependentBranchesPatronModifications') || borrower.branch == branch ) %]
                                     <a href="/cgi-bin/koha/members/members-update.pl">View all pending patron modifications</a>
                             [% END %]
                    </li>
index 534e681..9f47590 100644 (file)
@@ -50,7 +50,7 @@
                             </li>
                             [% END %]
 
-                            [% IF ( CAN_user_borrowers ) %]
+                            [% IF CAN_user_borrowers_edit_borrowers %]
                             <li>
                                 <a class="icon_general icon_patrons" href="/cgi-bin/koha/members/members-home.pl">Patrons</a>
                             </li>
                 <div class="row">
                     <div class="col-sm-12">
                         [%# Following statement must be in one line for translatability %]
-                        [% IF ( ( CAN_user_tools_moderate_comments  && pendingcomments ) || ( CAN_user_tools_moderate_tags && pendingtags ) || ( CAN_user_borrowers && pending_borrower_modifications ) || ( CAN_user_acquisition && pendingsuggestions ) || ( CAN_user_borrowers && pending_discharge_requests ) || pending_article_requests) %]
+                        [% IF ( ( CAN_user_tools_moderate_comments  && pendingcomments ) || ( CAN_user_tools_moderate_tags && pendingtags ) || ( CAN_user_borrowers_edit_borrowers && pending_borrower_modifications ) || ( CAN_user_acquisition && pendingsuggestions ) || ( CAN_user_borrowers_edit_borrowers && pending_discharge_requests ) || pending_article_requests) %]
                             <div id="area-pending">
                                 [% IF pending_article_requests %]
                                 <div class="pending-info" id="article_requests_pending">
                                 [% END %]
 
 
-                                [% IF ( CAN_user_borrowers && pending_borrower_modifications ) %]
+                                [% IF ( CAN_user_borrowers_edit_borrowers && pending_borrower_modifications ) %]
                                 <div class="pending-info" id="patron_updates_pending">
                                     <a href="/cgi-bin/koha/members/members-update.pl">Patrons requesting modifications</a>:
                                     <span class="pending-number-link">[% pending_borrower_modifications %]</span>
                                 </div>
                                 [% END %]
 
-                                [% IF CAN_user_borrowers && pending_discharge_requests %]
+                                [% IF CAN_user_borrowers_edit_borrowers && pending_discharge_requests %]
                                 <div class="pending-info" id="patron_discharges_pending">
                                     <a href="/cgi-bin/koha/members/discharges.pl">Discharge requests pending</a>:
                                     <span class="pending-number-link">[% pending_discharge_requests %]</span>
index b5cf108..5d3c20f 100644 (file)
@@ -46,7 +46,7 @@
                             <th>Type</th>
                             <th>Description</th>
                             <th>Uploaded</th>
-                            [% IF CAN_user_borrowers %]<th>&nbsp;</th>[% END %]
+                            [% IF CAN_user_borrowers_edit_borrowers %]<th>&nbsp;</th>[% END %]
                         </tr>
                     </thead>
 
@@ -57,7 +57,7 @@
                                  <td>[% f.file_type %]</td>
                                  <td>[% f.file_description %]</td>
                                  <td>[% f.date_uploaded | $KohaDates %]</td>
-                                 [% IF CAN_user_borrowers %]<td><a class="btn btn-default btn-xs confirmdelete" href="?borrowernumber=[% borrowernumber %]&amp;op=delete&amp;file_id=[% f.file_id %]"><i class="fa fa-trash"></i> Delete</a></td>[% END %]
+                                 [% IF CAN_user_borrowers_edit_borrowers %]<td><a class="btn btn-default btn-xs confirmdelete" href="?borrowernumber=[% borrowernumber %]&amp;op=delete&amp;file_id=[% f.file_id %]"><i class="fa fa-trash"></i> Delete</a></td>[% END %]
                             </tr>
                         [% END %]
                     </tbody>
index 0ea93c7..babcfd7 100644 (file)
@@ -348,7 +348,7 @@ function filterByFirstLetterSurname(letter) {
             [% END %]
           </div>
 
-          [% IF ( CAN_user_borrowers && pending_borrower_modifications ) %]
+          [% IF CAN_user_borrowers_edit_borrowers && pending_borrower_modifications %]
             <div class="pending-info" id="patron_updates_pending">
               <a href="/cgi-bin/koha/members/members-update.pl">Patrons requesting modifications</a>:
               <span class="number_box"><a href="/cgi-bin/koha/members/members-update.pl">[% pending_borrower_modifications %]</a></span>
index 314f216..4980fba 100644 (file)
@@ -1041,7 +1041,7 @@ $(document).ready(function() {
                                  <th>Comment</th>
                                  <th>Expiration</th>
                                  <th>Created</th>
-                                 [% IF CAN_user_borrowers && CAN_user_circulate_manage_restrictions %]
+                                 [% IF CAN_user_borrowers_edit_borrowers && CAN_user_circulate_manage_restrictions %]
                                    <th>Remove?</th>
                                  [% END %]
                             </tr>
@@ -1060,7 +1060,7 @@ $(document).ready(function() {
                                     </td>
                                     <td>[% IF d.expiration %] [% d.expiration | $KohaDates %] [% ELSE %] <i>Indefinite</i> [% END %]</td>
                                     <td>[% d.created | $KohaDates %]</td>
-                                    [% IF CAN_user_borrowers && CAN_user_circulate_manage_restrictions %]
+                                    [% IF CAN_user_borrowers_edit_borrowers && CAN_user_circulate_manage_restrictions %]
                                       <td>
                                         <input type="checkbox" id="debarment_[% d.borrower_debarment_id %]" name="remove_debarment" value="[% d.borrower_debarment_id %]" />
                                       </td>
@@ -1073,7 +1073,7 @@ $(document).ready(function() {
                     <p>Patron is currently unrestricted.</p>
                 [% END %]
 
-                [% IF CAN_user_borrowers && CAN_user_circulate_manage_restrictions %]
+                [% IF CAN_user_borrowers_edit_borrowers && CAN_user_circulate_manage_restrictions %]
                     <p><a href="#" id="add_manual_restriction">Add manual restriction</a></p>
                     <fieldset id="manual_restriction_form">
                         <input type="hidden" id="add_debarment" name="add_debarment" value="0" />
index c0a7e8f..57f3ff3 100755 (executable)
@@ -160,7 +160,7 @@ if ($show_results) {
             query           => $query,
             type            => "intranet",
             authnotrequired => 0,
-            flagsrequired   => { borrowers => 1 },
+            flagsrequired   => { borrowers => 'edit_borrowers' },
             flagsrequired   => { catalogue => 1 },
             debug           => 1,
         }
index 632b521..a22f335 100755 (executable)
@@ -42,7 +42,7 @@ my ($template, $loggedinuser, $cookie) = get_template_and_user(
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrowers     => 1,
+        flagsrequired   => { borrowers     => 'edit_borrowers',
                              updatecharges => 'remaining_permissions'},
         debug           => 1,
     }
index 105c1dd..e0b4343 100755 (executable)
@@ -27,7 +27,7 @@ use C4::Form::MessagingPreferences;
 # update the prefs if operator is creating a new patron and has
 # changed the patron category from its original value.
 
-my ($query, $response) = C4::Service->init(borrowers => 1);
+my ($query, $response) = C4::Service->init(borrowers => 'edit_borrowers');
 my ($categorycode) = C4::Service->require_params('categorycode');
 C4::Form::MessagingPreferences::set_form_values({ categorycode => $categorycode }, $response);
 C4::Service->return_success( $response );
index b68cb54..87eb338 100755 (executable)
@@ -43,7 +43,7 @@ my ($template, $borrowernumber, $cookie)
                                         query => $input,
                                         type => "intranet",
                                         authnotrequired => 0,
-                                        flagsrequired => {borrowers => 1},
+                                        flagsrequired => {borrowers => 'edit_borrowers'},
                                         debug => 1,
                                         });
 
@@ -89,7 +89,7 @@ if ($patron->category->category_type eq "S") {
         exit 0; # Exit without error
     }
 } else {
-    unless(C4::Auth::haspermission($userenv->{'id'},{'borrowers'=>1})) {
+    unless(C4::Auth::haspermission($userenv->{'id'},{'borrowers'=>'edit_borrowers'})) {
        print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$member&error=CANT_DELETE");
         exit 0; # Exit without error
     }
index a0af828..97184fd 100755 (executable)
@@ -48,7 +48,7 @@ my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user({
     query           => $input,
     type            => 'intranet',
     authnotrequired => 0,
-    flagsrequired   => { 'borrowers' => '*' },
+    flagsrequired   => { 'borrowers' => 'edit_borrowers' },
 });
 
 my $borrowernumber = $input->param('borrowernumber');
index 4029c74..38a7355 100755 (executable)
@@ -33,7 +33,7 @@ my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user({
     query           => $input,
     type            => "intranet",
     authnotrequired => 0,
-    flagsrequired   => { borrowers => 1 },
+    flagsrequired   => { borrowers => 'edit_borrowers' },
 });
 
 my $branchcode =
index 628ef31..4569a16 100755 (executable)
@@ -39,7 +39,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $cgi,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1 },
+        flagsrequired   => { borrowers => 'edit_borrowers' },
         debug           => 1,
     }
 );
index 352f124..0287047 100755 (executable)
@@ -35,7 +35,7 @@ my ( $template, $loggedinuser, $cookie, $staff_flags ) = get_template_and_user(
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1 },
+        flagsrequired   => { borrowers => 'edit_borrowers' },
     }
 );
 
index b334999..dba49a7 100755 (executable)
@@ -47,7 +47,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $input,
         type            => 'intranet',
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1 },
+        flagsrequired   => { borrowers => 'edit_borrowers' },
     }
 );
 
index 5f91f70..85405ea 100755 (executable)
@@ -37,7 +37,7 @@ use Koha::Patrons;
 use Koha::Patron::Categories;
 
 my $input=new CGI;
-my $flagsrequired = { borrowers => 1, updatecharges => 1 };
+my $flagsrequired = { borrowers => 'edit_borrowers', updatecharges => 1 };
 
 my $borrowernumber=$input->param('borrowernumber');
 
@@ -70,7 +70,7 @@ if ($add){
             query           => $input,
             type            => "intranet",
             authnotrequired => 0,
-            flagsrequired   => { borrowers     => 1,
+            flagsrequired   => { borrowers     => 'edit_borrowers',
                                  updatecharges => 'remaining_permissions' },
             debug           => 1,
         }
index c63d933..9478c7a 100755 (executable)
@@ -37,7 +37,7 @@ use Koha::Patrons;
 use Koha::Patron::Categories;
 
 my $input=new CGI;
-my $flagsrequired = { borrowers => 1 };
+my $flagsrequired = { borrowers => 'edit_borrowers' };
 
 my $borrowernumber=$input->param('borrowernumber');
 
@@ -88,7 +88,7 @@ if ($add){
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1,
+        flagsrequired   => { borrowers => 'edit_borrowers',
                              updatecharges => 'remaining_permissions' },
         debug           => 1,
     });
index cba025d..716d054 100755 (executable)
@@ -32,14 +32,11 @@ my ( $template, $loggedinuser, $cookie, $staffflags ) = get_template_and_user(
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1 },
+        flagsrequired   => { borrowers => 'edit_borrowers' },
         debug           => 1,
     }
 );
 
-my $flagsrequired;
-$flagsrequired->{borrowers} = 1;
-
 my $member      = $input->param('member');
 my $cardnumber  = $input->param('cardnumber');
 my $destination = $input->param('destination');
index 02ccbd1..7dc0b1e 100755 (executable)
@@ -38,7 +38,7 @@ my ($template, $loggedinuser, $cookie)
                  query => $input,
                  type => "intranet",
                  authnotrequired => 0,
-                 flagsrequired => {borrowers => 1},
+                 flagsrequired => {borrowers => 'edit_borrowers'},
                  });
 
 my $theme = $input->param('theme') || "default";
index 38ffa6c..365db68 100755 (executable)
@@ -71,7 +71,7 @@ my ($template, $loggedinuser, $cookie)
            query => $input,
            type => "intranet",
            authnotrequired => 0,
-           flagsrequired => {borrowers => 1},
+           flagsrequired => {borrowers => 'edit_borrowers'},
            debug => ($debug) ? 1 : 0,
        });
 
index 68c330c..659ce8e 100755 (executable)
@@ -35,7 +35,7 @@ my ($template, $loggedinuser, $cookie, $flags)
                  query => $query,
                  type => "intranet",
                  authnotrequired => 0,
-                 flagsrequired => {borrowers => 1},
+                 flagsrequired => {borrowers => 'edit_borrowers'},
                  debug => 1,
                  });
 
index 613090b..1ac1de0 100755 (executable)
@@ -33,7 +33,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1 },
+        flagsrequired   => { borrowers => 'edit_borrowers' },
         debug           => 1,
     }
 );
index 23d14c7..84019f4 100755 (executable)
@@ -38,7 +38,7 @@ my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user(
         query           => $query,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1 },
+        flagsrequired   => { borrowers => 'edit_borrowers' },
         debug           => 1,
     }
 );
index 9feaf1a..2bf637b 100755 (executable)
@@ -27,7 +27,7 @@ use Koha::Patron::Debarments;
 
 my $cgi = new CGI;
 
-my ( $loggedinuser, $cookie, $sessionID ) = checkauth( $cgi, 0, { borrowers => 1 }, 'intranet' );
+my ( $loggedinuser, $cookie, $sessionID ) = checkauth( $cgi, 0, { borrowers => 'edit_borrowers' }, 'intranet' );
 
 my $borrowernumber = $cgi->param('borrowernumber');
 my $action         = $cgi->param('action');
index 1bf4d22..1219b9d 100755 (executable)
@@ -100,10 +100,10 @@ if (defined $print and $print eq "page") {
     $flagsrequired =  { circulate => "circulate_remaining_permissions" };
 } elsif (defined $print and $print eq "brief") {
     $template_name = "members/moremember-brief.tt";
-    $flagsrequired = { borrowers => 1 };
+    $flagsrequired = { borrowers => 'edit_borrowers' };
 } else {
     $template_name = "members/moremember.tt";
-    $flagsrequired = { borrowers => 1 };
+    $flagsrequired = { borrowers => 'edit_borrowers' };
 }
 
 my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
index 29ec13e..2ff2177 100755 (executable)
@@ -57,7 +57,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $cgi,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1 },
+        flagsrequired   => { borrowers => 'edit_borrowers' },
         debug           => 1,
     }
 );
index af66679..cdc5f9f 100755 (executable)
@@ -44,7 +44,7 @@ my ($template, $loggedinuser, $cookie)
                                query => $input,
                                type => "intranet",
                                authnotrequired => 0,
-                               flagsrequired => {borrowers => 1},
+                flagsrequired => {borrowers => 'edit_borrowers'},
                                debug => 1,
                                });
 
index 03f3594..bb1f821 100755 (executable)
@@ -53,7 +53,7 @@ our ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $input,
         type            => 'intranet',
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1, updatecharges => $updatecharges_permissions },
+        flagsrequired   => { borrowers => 'edit_borrowers', updatecharges => $updatecharges_permissions },
         debug           => 1,
     }
 );
index 9bfa502..091f1d5 100755 (executable)
@@ -42,7 +42,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $input,
         type            => 'intranet',
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1, updatecharges => $updatecharges_permissions },
+        flagsrequired   => { borrowers => 'edit_borrowers', updatecharges => $updatecharges_permissions },
         debug           => 1,
     }
 );
index ff31c6c..d5af0e9 100755 (executable)
@@ -41,7 +41,7 @@ my ($template, $loggedinuser, $cookie)
                             query => $input,
                             type => "intranet",
                             authnotrequired => 0,
-                            flagsrequired => {borrowers => 1, updatecharges => 'remaining_permissions'},
+                            flagsrequired => {borrowers => 'edit_borrowers', updatecharges => 'remaining_permissions'},
                             debug => 1,
                             });
 
index 76d473d..a8ea225 100755 (executable)
@@ -39,7 +39,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired => { borrowers => 1, updatecharges => 'remaining_permissions' },
+        flagsrequired => { borrowers => 'edit_borrowers', updatecharges => 'remaining_permissions' },
         debug           => 1,
     }
 );
index f6df07d..c2dc156 100755 (executable)
@@ -35,7 +35,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1 },
+        flagsrequired   => { borrowers => 'edit_borrowers' },
         debug           => 1,
     }
 );
index ee835ba..ca3b04d 100755 (executable)
@@ -45,7 +45,7 @@ my ($template, $loggedinuser, $cookie)= get_template_and_user({template_name =>
                                query => $input,
                                type => "intranet",
                                authnotrequired => 0,
-                               flagsrequired => {borrowers => 1},
+                flagsrequired => {borrowers => 'edit_borrowers'},
                                debug => 1,
                                });
 
index 16ce267..c598433 100755 (executable)
@@ -34,7 +34,7 @@ use Koha::Patrons;
 
 my $input = new CGI;
 
-checkauth($input, 0, { borrowers => 1 }, 'intranet');
+checkauth($input, 0, { borrowers => 'edit_borrowers' }, 'intranet');
 
 my $destination = $input->param("destination") || '';
 my $borrowernumber=$input->param('borrowernumber');
index ffed672..bcefd9f 100755 (executable)
@@ -40,7 +40,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1 },
+        flagsrequired   => { borrowers => 'edit_borrowers' },
         debug           => 1,
     }
 );
index c7e87b1..d879ac8 100755 (executable)
@@ -46,7 +46,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { borrowers => 1 },
+        flagsrequired   => { borrowers => 'edit_borrowers' },
         debug           => 1,
     }
 );
index 3c10fde..38d30b9 100755 (executable)
@@ -33,7 +33,7 @@ my ($template, $loggedinuser, $cookie)
                                 query => $cgi,
                                 type => "opac",
                                 authnotrequired => 1,
-                                flagsrequired => {borrowers => 1},
+                                flagsrequired => {borrowers => 'edit_borrowers'},
                                 debug => 1,
                                 });
 
index 2879356..fefadee 100755 (executable)
@@ -41,7 +41,7 @@ my $session   = get_session($sessionID);
 my $userid   = $session->param('id');
 
 unless (haspermission($userid, { circulate => 'circulate_remaining_permissions' })
-    || haspermission($userid, { borrowers => '*' })) {
+    || haspermission($userid, { borrowers => 'edit_borrowers' })) {
     exit 0;
 }
 
index 3276cf8..86c7473 100755 (executable)
@@ -36,7 +36,7 @@ my ($template, $user, $cookie) = get_template_and_user({
     query           => $input,
     type            => "intranet",
     authnotrequired => 0,
-    flagsrequired   => { borrowers => 1 }
+    flagsrequired   => { borrowers => 'edit_borrowers' }
 });
 
 my $searchmember = $input->param('searchmember');