LP 1648922: Hide orgs that can't have users in workstation registration.
authorJason Stephenson <jason@sigio.com>
Sat, 10 Dec 2016 02:21:35 +0000 (21:21 -0500)
committerKathy Lussier <klussier@masslnc.org>
Sat, 4 Mar 2017 03:00:43 +0000 (22:00 -0500)
A user can register a workstation at an org unit that can't have users
in the webstaff client.  The XUL staff client did not allow this.
Such org units were grayed out in the selector.

This commit hides org units that can't have users in the ou selector
for workstation registration in the webstaff client.  This is in
addition to hiding the existing hiding of org units where the user
does not have the REGISTER_WORKSTATION permission.

To reproduce this bug, see that org units that have false for
can_have_users appear in the selection for workstation registration.
Also see that you can register a workstation at one.

After applying this patch, make sure you've logged out and then log in
to the webstaff client.  You will now see that those org units no
longer appear in the slection list.  You cannot register workstations
at those org units any longer.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>

index a25d719..15c1fcb 100644 (file)
@@ -729,9 +729,10 @@ function($scope , $q , $window , $location , egCore , egAlertDialog , workstatio
         reg_perm_orgs = orgList;
         // hide orgs in the context org selector where this login
-        // does not have the reg_ws perm
+        // does not have the reg_ws perm or the org can't have users
         $scope.wsOrgHidden = function(id) {
-            return reg_perm_orgs.indexOf(id) == -1;
+            return reg_perm_orgs.indexOf(id) == -1
+                || $scope.cant_have_users(id);
     // fetch the locally stored workstation data