feat: custom msg upon 401 response

closes #4768
pull/5115/head
kontrollanten 2022-07-04 22:04:55 +02:00 committed by Chocobozzz
parent a28b0f696c
commit 9469783d43
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
3 changed files with 20 additions and 3 deletions

View File

@ -1,5 +1,5 @@
<div class="root">
<div *ngIf="status !== 403 && status !== 418" class="box">
<div *ngIf="status !== 401 && status !== 403 && status !== 418" class="box">
<strong>{{ status }}.</strong>
<span class="ms-1 muted" i18n>That's an error.</span>
@ -22,6 +22,21 @@
</div>
</div>
<div *ngIf="status === 401" class="box">
<strong>{{ status }}.</strong>
<span class="ms-1 muted" i18n>You are not authorized here.</span>
<div class="text mt-4">
<ng-container *ngIf="type === 'video'" i18n>You might need to login to see the video.</ng-container>
<ng-container *ngIf="type !== 'video'" i18n>You might need to login to see the resource.</ng-container>
</div>
<a class="peertube-button-link orange-button mt-5" i18n routerLink="/login">
Login
</a>
</div>
<div *ngIf="status === 403" class="box">
<strong>{{ status }}.</strong>
<span class="ms-1 muted" i18n>You are not authorized here.</span>

View File

@ -46,6 +46,8 @@ export class RedirectService {
this.currentUrl = this.router.url
router.events.subscribe(event => {
if (event instanceof NavigationEnd || event instanceof NavigationCancel) {
if (event.url === '/404') return
this.previousUrl = this.currentUrl
this.currentUrl = event.url

View File

@ -61,8 +61,8 @@ export class AuthInterceptor implements HttpInterceptor {
return req.clone({ headers: req.headers.set('Authorization', authHeaderValue) })
}
private handleNotAuthenticated (err: HttpErrorResponse, path = '/login'): Observable<any> {
this.router.navigateByUrl(path)
private handleNotAuthenticated (err: HttpErrorResponse): Observable<any> {
this.router.navigate([ '/404' ], { state: { obj: err }, skipLocationChange: true })
return of(err.message)
}
}