diff --git a/frontend/src/ts/modules/app/interceptor/permission.interceptor.service.ts b/frontend/src/ts/modules/app/interceptor/permission.interceptor.service.ts index 7d3a8aa4..8c1d14bb 100644 --- a/frontend/src/ts/modules/app/interceptor/permission.interceptor.service.ts +++ b/frontend/src/ts/modules/app/interceptor/permission.interceptor.service.ts @@ -2,6 +2,7 @@ import {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from "@angular/com import {from, Observable} from "rxjs"; import { Injectable } from "@angular/core"; import {PermissionProvider} from "../provider/permission.provider"; +import {switchMap} from "rxjs/operators"; @Injectable({ providedIn: 'root' }) export class PermissionInterceptor implements HttpInterceptor { @@ -9,19 +10,18 @@ export class PermissionInterceptor implements HttpInterceptor { } intercept(request: HttpRequest, next: HttpHandler): Observable> { - return from( - this.permissionProvider.getUserPermissions() - .then(permissions => { - if (permissions.length > 0) { - return request.clone({ - setHeaders: { - 'X-User-Permissions': permissions.join(','), - }, - }); - } - return request; - }) - .then(modifiedRequest => next.handle(modifiedRequest).toPromise()) + return from(this.permissionProvider.getUserPermissions()).pipe( + switchMap(permissions => { + const modifiedRequest = permissions.length > 0 + ? request.clone({ + setHeaders: { + 'X-User-Permissions': permissions.join(',') + } + }) + : request; + + return next.handle(modifiedRequest); + }) ); } } \ No newline at end of file diff --git a/frontend/src/ts/modules/app/interceptor/token.interceptor.service.ts b/frontend/src/ts/modules/app/interceptor/token.interceptor.service.ts index 11cd5676..c7a02112 100644 --- a/frontend/src/ts/modules/app/interceptor/token.interceptor.service.ts +++ b/frontend/src/ts/modules/app/interceptor/token.interceptor.service.ts @@ -2,20 +2,21 @@ import {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from "@angular/com import {from, Observable} from "rxjs"; import {TokenProvider} from "../provider/token.provider"; import {Injectable} from "@angular/core"; +import {switchMap} from "rxjs/operators"; @Injectable({providedIn: 'root'}) -export class TokenInterceptor implements HttpInterceptor{ - constructor(protected tokenProvider: TokenProvider) { } +export class TokenInterceptor implements HttpInterceptor { + constructor(protected tokenProvider: TokenProvider) { + } intercept(request: HttpRequest, next: HttpHandler): Observable> { - return from( - this.tokenProvider.getToken() - .then(token => { - return request.clone({ - setHeaders: {Authorization: `Bearer ${token}`} - }); - }) - .then(modifiedRequest => next.handle(modifiedRequest).toPromise()) + return from(this.tokenProvider.getToken()).pipe( + switchMap(token => { + const modifiedRequest = request.clone({ + setHeaders: {Authorization: `Bearer ${token}`} + }); + return next.handle(modifiedRequest); + }) ); } } \ No newline at end of file