From 6c73f7fb7806ae2d1b80ba2f50de3b7e30b7664c Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Mon, 2 Dec 2019 12:26:22 -0500 Subject: [PATCH] LP1848550 Clear cached org settings on login (Angular) Signed-off-by: Bill Erickson --- Open-ILS/src/eg2/src/app/core/auth.service.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/eg2/src/app/core/auth.service.ts b/Open-ILS/src/eg2/src/app/core/auth.service.ts index dad2acdb90..350bc4fd28 100644 --- a/Open-ILS/src/eg2/src/app/core/auth.service.ts +++ b/Open-ILS/src/eg2/src/app/core/auth.service.ts @@ -3,6 +3,7 @@ import {NetService} from './net.service'; import {EventService, EgEvent} from './event.service'; import {IdlService, IdlObject} from './idl.service'; import {StoreService} from './store.service'; +import {DbService} from './db.service'; // Not universally available. declare var BroadcastChannel; @@ -55,7 +56,8 @@ export class AuthService { constructor( private egEvt: EventService, private net: NetService, - private store: StoreService + private store: StoreService, + private db: DbService ) { // BroadcastChannel is not yet defined in PhantomJS and elsewhere @@ -186,7 +188,15 @@ export class AuthService { this.store.setLoginSessionItem('eg.auth.token', this.token()); this.store.setLoginSessionItem('eg.auth.time', this.authtime()); - return Promise.resolve(); + if (isOpChange) { + return Promise.resolve(); + } else { + // Initial login clears cached org unit settings. Prevent + // the caller from moving ahead until the cache clear + // request has completed, so we're not redirecting page + // in the middle of a db request. + return this.db.clearSettingsCache(); + } } undoOpChange(): Promise { -- 2.11.0