LP1848550 Clear cached org settings on login (Angular) user/berick/lpxxx-ang-clear-cached-settings
authorBill Erickson <berickxx@gmail.com>
Mon, 2 Dec 2019 17:26:22 +0000 (12:26 -0500)
committerBill Erickson <berickxx@gmail.com>
Mon, 2 Dec 2019 17:26:22 +0000 (12:26 -0500)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/eg2/src/app/core/auth.service.ts

index dad2acd..350bc4f 100644 (file)
@@ -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<any> {