From: Galen Charlton Date: Tue, 1 Sep 2020 21:35:05 +0000 (-0400) Subject: handle permissions coming in late X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=bb1b3f4ae8d9ce3c9eb7362b8831bb4acbbeaad5;p=working%2FEvergreen.git handle permissions coming in late Signed-off-by: Galen Charlton --- diff --git a/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-record.service.ts b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-record.service.ts index 9caccc429b..cff63aef79 100644 --- a/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-record.service.ts +++ b/Open-ILS/src/eg2/src/app/staff/acq/provider/provider-record.service.ts @@ -46,8 +46,11 @@ export class ProviderRecordService { this.loadPerms(); } - loadPerms() { - this.perm.hasWorkPermAt(['ADMIN_PROVIDER','MANAGE_PROVIDER', 'VIEW_PROVIDER'], true).then(permMap => { + loadPerms(): Promise { + 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(); } );