LP#1860351: fix hasWorkPermHere() in Angular client
authorGalen Charlton <gmc@equinoxinitiative.org>
Sun, 19 Jan 2020 19:47:40 +0000 (14:47 -0500)
committerBill Erickson <berickxx@gmail.com>
Tue, 21 Jan 2020 15:54:30 +0000 (10:54 -0500)
Fixes a bug where the Angular client's hasWorkPermHere() check
could return incorrect results and thus incorrectly report
whether or not the staff user currently has particularl permissions
at their current workstation.

To test
-------
[1] Arrange for a workstation whose internal ID is larger than
    any of the org unit IDs.
[2] Log in to that workstation with a user who has permission
    to update monograph parts.
[4] In the experimental Angular staff catalog, go to a record
    (e.g., /eg2/en-US/staff/catalog/record/21/monoparts) and note
    that the New Monograph Part button is disabled.
[5] Apply the patch and repeat step 4. This time, the button
    should be active.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/eg2/src/app/core/perm.service.ts

index 2b3a471..ffc59ba 100644 (file)
@@ -49,10 +49,11 @@ export class PermService {
             return Promise.reject('hasWorkPermHere requires a workstation');
         }
 
+        const ws_ou: number = +this.auth.user().ws_ou();
         return this.hasWorkPermAt(permNames, true).then(resp => {
             const answer: HasPermHereResult = {};
             Object.keys(resp).forEach(perm => {
-                answer[perm] = resp[perm].indexOf(wsId) > -1;
+                answer[perm] = resp[perm].indexOf(ws_ou) > -1;
             });
             return answer;
         });