handle permissions coming in late
authorGalen Charlton <gmc@equinoxinitiative.org>
Tue, 1 Sep 2020 21:35:05 +0000 (17:35 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Tue, 1 Sep 2020 21:35:05 +0000 (17:35 -0400)
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-record.service.ts

index 9caccc4..cff63ae 100644 (file)
@@ -46,8 +46,11 @@ export class ProviderRecordService {
         this.loadPerms();
     }
 
-    loadPerms() {
-        this.perm.hasWorkPermAt(['ADMIN_PROVIDER','MANAGE_PROVIDER', 'VIEW_PROVIDER'], true).then(permMap => {
+    loadPerms(): Promise<any> {
+        if (this.permissions) {
+            return Promise.resolve();
+        }
+        return this.perm.hasWorkPermAt(['ADMIN_PROVIDER','MANAGE_PROVIDER', 'VIEW_PROVIDER'], true).then(permMap => {
             this.permissions = permMap;
             this.viewOUs.concat(permMap['VIEW_PROVIDER']);
             this.permissions['ADMIN_PROVIDER'].forEach(ou => {
@@ -127,10 +130,12 @@ export class ProviderRecordService {
     }
 
     checkIfCanAdmin(prov: ProviderRecord) {
-        if (Object.keys(this.permissions).length > 0 &&
-            this.permissions['ADMIN_PROVIDER'].includes(prov.record.owner())) {
-            prov.canAdmin = true;
-        }
+        this.loadPerms().then(x => {
+            if (Object.keys(this.permissions).length > 0 &&
+                this.permissions['ADMIN_PROVIDER'].includes(prov.record.owner())) {
+                prov.canAdmin = true;
+            }
+        });
     }
 
     checkIfCanAdminAtAll(): boolean {
@@ -163,6 +168,7 @@ export class ProviderRecordService {
                     resolve();
                 },
                 error => {
+                    console.debug(error);
                     reject();
                 }
             );