From bb1b3f4ae8d9ce3c9eb7362b8831bb4acbbeaad5 Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Tue, 1 Sep 2020 17:35:05 -0400 Subject: [PATCH] handle permissions coming in late Signed-off-by: Galen Charlton --- .../app/staff/acq/provider/provider-record.service.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) 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(); } ); -- 2.11.0