From 60105e5aebeb812435ca10a8dd8d192a5efaa8d4 Mon Sep 17 00:00:00 2001 From: Kenzo-Schwab Date: Fri, 31 Oct 2025 15:00:52 -0600 Subject: [PATCH 1/4] this should get rid of the endpoints that limit the permission exception checker --- SBOLCanvasFrontend/src/app/http.interceptor.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/SBOLCanvasFrontend/src/app/http.interceptor.ts b/SBOLCanvasFrontend/src/app/http.interceptor.ts index d32c415d..fdf4fc43 100644 --- a/SBOLCanvasFrontend/src/app/http.interceptor.ts +++ b/SBOLCanvasFrontend/src/app/http.interceptor.ts @@ -33,11 +33,7 @@ intercept( } if (err instanceof HttpErrorResponse && err.status === 401) { const url = req.url || ''; - const isTargetEndpoint = ( - url.includes('/SynBioHub/logout') || - url.includes('/SynBioHub/listRegistryParts') || - url.includes('/SynBioHub/listMyCollections') - ); + const isTargetEndpoint = true; if (isTargetEndpoint) { const body = err.error; From 64b2329d60da7723e7a7eef7c51b7bd44b7aae7e Mon Sep 17 00:00:00 2001 From: Kenzo-Schwab Date: Wed, 5 Nov 2025 16:21:35 -0700 Subject: [PATCH 2/4] it now works with the create collections erorr --- SBOLCanvasFrontend/src/app/http.interceptor.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/SBOLCanvasFrontend/src/app/http.interceptor.ts b/SBOLCanvasFrontend/src/app/http.interceptor.ts index fdf4fc43..8163e7d0 100644 --- a/SBOLCanvasFrontend/src/app/http.interceptor.ts +++ b/SBOLCanvasFrontend/src/app/http.interceptor.ts @@ -31,24 +31,24 @@ intercept( if(err instanceof HttpErrorResponse && err.status === 500) { !this.ignoreHTTPErrors && this.dialog.open(ErrorComponent, {data: err.error}); } - if (err instanceof HttpErrorResponse && err.status === 401) { + if (err instanceof HttpErrorResponse) { const url = req.url || ''; - const isTargetEndpoint = true; - if (isTargetEndpoint) { const body = err.error; const permissionMarker = 'org.synbiohub.frontend.PermissionException'; const isPermissionException = typeof body === 'string' && body.indexOf(permissionMarker) >= 0; if (isPermissionException) { const serverParam = req.params?.get('server') || ''; + console.log('whatup1'); this.loginService.forceLogout(serverParam); + console.log('whatup2'); const serverLabel = serverParam || 'the registry'; const message = `Disconnected from ${serverLabel}. Please sign in again.`; !this.ignoreHTTPErrors && this.dialog.open(ErrorComponent, { data: message }); + console.log('whatup3'); } - } } return throwError(err); })); From 93ef85dda7ae849471baa47f20129a3506900d22 Mon Sep 17 00:00:00 2001 From: Kenzo-Schwab Date: Wed, 12 Nov 2025 17:06:36 -0700 Subject: [PATCH 3/4] now, error messages are automatically opened to show their body --- SBOLCanvasFrontend/src/app/error/error.component.html | 4 ++-- SBOLCanvasFrontend/src/app/http.interceptor.ts | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/SBOLCanvasFrontend/src/app/error/error.component.html b/SBOLCanvasFrontend/src/app/error/error.component.html index 30984c8a..4a57d77a 100644 --- a/SBOLCanvasFrontend/src/app/error/error.component.html +++ b/SBOLCanvasFrontend/src/app/error/error.component.html @@ -1,9 +1,9 @@

An error has occurred.

- + - Click to view more details. + Click to see less Details. diff --git a/SBOLCanvasFrontend/src/app/http.interceptor.ts b/SBOLCanvasFrontend/src/app/http.interceptor.ts index 8163e7d0..5660fb3f 100644 --- a/SBOLCanvasFrontend/src/app/http.interceptor.ts +++ b/SBOLCanvasFrontend/src/app/http.interceptor.ts @@ -40,14 +40,11 @@ intercept( if (isPermissionException) { const serverParam = req.params?.get('server') || ''; - console.log('whatup1'); this.loginService.forceLogout(serverParam); - console.log('whatup2'); const serverLabel = serverParam || 'the registry'; const message = `Disconnected from ${serverLabel}. Please sign in again.`; !this.ignoreHTTPErrors && this.dialog.open(ErrorComponent, { data: message }); - console.log('whatup3'); } } return throwError(err); From be94731042f89b3b75d8ab48369f58d207380a6f Mon Sep 17 00:00:00 2001 From: Kenzo-Schwab Date: Wed, 12 Nov 2025 17:18:37 -0700 Subject: [PATCH 4/4] and now the login button is visible after you close out the error messages --- SBOLCanvasFrontend/src/app/http.interceptor.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/SBOLCanvasFrontend/src/app/http.interceptor.ts b/SBOLCanvasFrontend/src/app/http.interceptor.ts index 5660fb3f..5739439c 100644 --- a/SBOLCanvasFrontend/src/app/http.interceptor.ts +++ b/SBOLCanvasFrontend/src/app/http.interceptor.ts @@ -4,6 +4,8 @@ import { Observable, of, throwError } from "rxjs"; import { tap, catchError } from "rxjs/operators"; import { MatDialog } from '@angular/material/dialog'; import { ErrorComponent } from './error/error.component'; +import { UploadGraphComponent } from './upload-graph/upload-graph.component'; +import { CollectionCreationComponent } from './collection-creation/collection-creation.component'; import { ActivatedRoute } from '@angular/router' import { LoginService } from './login.service'; @@ -44,7 +46,20 @@ intercept( const serverLabel = serverParam || 'the registry'; const message = `Disconnected from ${serverLabel}. Please sign in again.`; - !this.ignoreHTTPErrors && this.dialog.open(ErrorComponent, { data: message }); + try { + this.dialog.openDialogs.forEach(d => { + try { + const ci = d.componentInstance; + if (ci instanceof CollectionCreationComponent) { + d.close(); + } + } catch(e) { + } + }); + } catch(e) { + } + + !this.ignoreHTTPErrors && this.dialog.open(ErrorComponent, { data: message }); } } return throwError(err);