<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>
</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>
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
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)
}
}