From: Bill Erickson Date: Mon, 2 Dec 2019 17:26:22 +0000 (-0500) Subject: LP1848550 Clear cached org settings on login (Angular) X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=6c73f7fb7806ae2d1b80ba2f50de3b7e30b7664c;p=working%2FEvergreen.git LP1848550 Clear cached org settings on login (Angular) Signed-off-by: Bill Erickson --- 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 {