[Koha-patches] [PATCH] [SIGNED-OFF]Bug 9439 - Enforce superlibrarian mutual exclusivity of other permissions

Bernardo Gonzalez Kriegel bgkriegel at gmail.com
Thu Jan 24 02:38:24 CET 2013


From: David Cook <dcook at prosentient.com.au>

Basically, when you check the checkbox for the superlibrarian permission in the patron record, it will disable and uncheck all the other permission checkboxes. When you uncheck the checkbox for the superlibrarian permission, it will renable those boxes. There is also some JS code there to ensure that the other boxes are disabled when returning to the change permission screen (i.e. the patch is not just a click handler).

In the event that the checkboxes for superlibrarian and other permissions are already checked, the user will be shown a pop-up window explaining that the superlibrarian permission is mutually exclusive to the others (since it already includes the others) and that the permissions for that patron will then be reset to just include the superlibrarian permission.

Comment: Tested on master. Works as described.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel at gmail.com>
---
 .../prog/en/modules/members/member-flags.tt        |   31 ++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-flags.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-flags.tt
index aa1eebd..40ff35c 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-flags.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-flags.tt
@@ -7,6 +7,37 @@
 <script type="text/javascript">
     $(document).ready(function() {
         $("#permissionstree").treeview({animated: "fast", collapsed: true});
+
+        // Enforce Superlibrarian Privilege Mutual Exclusivity
+        if($('input[id="flag-0"]:checked').length){
+            if ($('input[name="flag"]:checked').length > 1){
+                alert('Inconsistency Detected!\n\nThe superlibrarian privilege is mutually exclusive of other privileges, as it includes them all.\n\nThis patron\'s privileges will now be reset to include only superlibrarian.');
+            }
+
+            $('input[name="flag"]').each(function() {
+                if($(this).attr('id') != "flag-0"){
+                    $(this).attr('disabled', 'disabled');
+                    $(this).removeAttr('checked', 'checked');
+                }
+            });
+        }
+
+        $('input#flag-0').click(function() {
+            if($('input[id="flag-0"]:checked').length){
+                $('input[name="flag"]').each(function() {
+                    if($(this).attr('id') != "flag-0"){
+                        $(this).attr('disabled', 'disabled');
+                        $(this).removeAttr('checked', 'checked');
+                    }
+                });
+            }
+            else {
+                $('input[name="flag"]').each(function() {
+                    $(this).removeAttr('disabled', 'disabled');
+                });
+            }
+        });
+
     });
 </script>
 <!-- manage checking/unchecking parent permissions -->
-- 
1.7.9.5



More information about the Koha-patches mailing list