LP#1842940: Alert when editing is disallowed
authorMike Rylander <mrylander@gmail.com>
Wed, 11 Sep 2019 18:46:44 +0000 (14:46 -0400)
committerJane Sandberg <sandbej@linnbenton.edu>
Tue, 1 Oct 2019 22:52:05 +0000 (15:52 -0700)
Provide functions that checks the permissions required to edit ones
own account, or accounts in groups based on group application
permissions, and alert the user if and why they can't edit an account.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Open-ILS/src/templates/staff/circ/patron/reg_actions.tt2
Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js
Open-ILS/web/js/ui/default/staff/offline.js

index 76414f9..72969fc 100644 (file)
       ng-disabled="edit_passthru.hide_save_actions()"
       ng_click="edit_passthru.save({clone:true})">[% l('Save & Clone') %]</button>
   </span>
+  <div class="alert alert-warning" ng-show="edit_passthru.self_edit_disallowed()">
+    [% l('Editing your own account is disallowed') %]
+  </div>
+  <div class="alert alert-warning" ng-show="edit_passthru.group_edit_disallowed()">
+    [% l('Editing users in this group is disallowed') %]
+  </div>
 </div>
 
index 885df71..5949658 100644 (file)
@@ -2066,13 +2066,17 @@ function($scope , $routeParams , $q , $uibModal , $window , egCore ,
         return !egCore.org.CanHaveVolumes(org_id);
     }
 
-    // Returns true if the Save and Save & Clone buttons should be disabled.
-    $scope.edit_passthru.hide_save_actions = function() {
+    // Returns true if attempting to edit self, but perms don't allow
+    $scope.edit_passthru.self_edit_disallowed = function() {
         if ($scope.patron.id
             && $scope.patron.id == egCore.auth.user().id()
             && !$scope.perms.EDIT_SELF_IN_CLIENT
         ) return true;
+        return false;
+    }
 
+    // Returns true if attempting to edit a user without appropriate group application perms
+    $scope.edit_passthru.group_edit_disallowed = function() {
         if ( $scope.patron.profile
              && patronRegSvc
                 .edit_profiles
@@ -2080,6 +2084,13 @@ function($scope , $routeParams , $q , $uibModal , $window , egCore ,
                     return $scope.patron.profile.id() == p.id();
                 }).length == 0
         ) return true;
+        return false;
+    }
+
+    // Returns true if the Save and Save & Clone buttons should be disabled.
+    $scope.edit_passthru.hide_save_actions = function() {
+        if ($scope.edit_passthru.self_edit_disallowed()) return true;
+        if ($scope.edit_passthru.group_edit_disallowed()) return true;
 
         return $scope.patron.isnew ?
             !$scope.perms.CREATE_USER : 
index 7d80de6..2a3f820 100644 (file)
@@ -2090,6 +2090,14 @@ function($scope , $routeParams , $q , $uibModal , $window , egCore ,
         );
     }
 
+    $scope.edit_passthru.self_edit_disallowed = function() {
+        return false;
+    }
+
+    $scope.edit_passthru.group_edit_disallowed = function() {
+        return false;
+    }
+
     // Returns true if the Save and Save & Clone buttons should be disabled.
     $scope.edit_passthru.hide_save_actions = function() {
         return false;