From 320ccef22ae820e51091725438be3e3e48c8859b Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Tue, 18 Mar 2025 13:32:59 -0600 Subject: [PATCH] move --- .../shared/guards/network.guard.ts | 0 .../shared/services/auth.service.ts | 28 ++++++++++++++----- 2 files changed, 21 insertions(+), 7 deletions(-) rename projects/nshmp-apps/src/{app/internal => }/shared/guards/network.guard.ts (100%) rename projects/nshmp-apps/src/{app/internal => }/shared/services/auth.service.ts (59%) diff --git a/projects/nshmp-apps/src/app/internal/shared/guards/network.guard.ts b/projects/nshmp-apps/src/shared/guards/network.guard.ts similarity index 100% rename from projects/nshmp-apps/src/app/internal/shared/guards/network.guard.ts rename to projects/nshmp-apps/src/shared/guards/network.guard.ts diff --git a/projects/nshmp-apps/src/app/internal/shared/services/auth.service.ts b/projects/nshmp-apps/src/shared/services/auth.service.ts similarity index 59% rename from projects/nshmp-apps/src/app/internal/shared/services/auth.service.ts rename to projects/nshmp-apps/src/shared/services/auth.service.ts index 7a39e67e4..4ad61d7f0 100644 --- a/projects/nshmp-apps/src/app/internal/shared/services/auth.service.ts +++ b/projects/nshmp-apps/src/shared/services/auth.service.ts @@ -1,8 +1,13 @@ import {HttpClient} from '@angular/common/http'; import {Injectable} from '@angular/core'; -import {NshmpService, SpinnerService} from '@ghsc/nshmp-lib-ng/nshmp'; +import {MatDialogRef} from '@angular/material/dialog'; +import { + NshmpLibNgSpinnerComponent, + NshmpService, + SpinnerService, +} from '@ghsc/nshmp-lib-ng/nshmp'; import {environment} from 'projects/nshmp-apps/src/environments/environment'; -import {catchError, map} from 'rxjs'; +import {catchError, map, Observable} from 'rxjs'; interface AuthResponse { isAuthorized: boolean; @@ -24,14 +29,23 @@ export class AuthService { private nshmpService: NshmpService, ) {} - isAuthorized() { - const ref = this.spinnerService.show('Checking USGS network ...'); + /** + * Check if user is on USGS network for internal applications. + * + * @param required Whether the user must be on the network + */ + isAuthorized(required = true): Observable<boolean> { + let ref: MatDialogRef<NshmpLibNgSpinnerComponent> | undefined = undefined; + + if (required) { + ref = this.spinnerService.show('Checking USGS network ...'); + } return this.http.get<AuthResponse>(this.url).pipe( map(response => { - ref.close(); + ref?.close(); - if (!response.isAuthorized) { + if (!response.isAuthorized && required) { this.nshmpService.throwError$( new Error( 'Must be on USGS network to access internal applications', @@ -42,7 +56,7 @@ export class AuthService { return response.isAuthorized; }), catchError((error: Error) => { - ref.close(); + ref?.close(); return this.nshmpService.throwError$(error); }), ); -- GitLab