diff options
3 files changed, 20 insertions, 3 deletions
diff --git a/client/src/app/+page-not-found/page-not-found.component.html b/client/src/app/+page-not-found/page-not-found.component.html index 70ede26e8..c6ca8670e 100644 --- a/client/src/app/+page-not-found/page-not-found.component.html +++ b/client/src/app/+page-not-found/page-not-found.component.html | |||
@@ -1,5 +1,5 @@ | |||
1 | <div class="root"> | 1 | <div class="root"> |
2 | <div *ngIf="status !== 403 && status !== 418" class="box"> | 2 | <div *ngIf="status !== 401 && status !== 403 && status !== 418" class="box"> |
3 | <strong>{{ status }}.</strong> | 3 | <strong>{{ status }}.</strong> |
4 | <span class="ms-1 muted" i18n>That's an error.</span> | 4 | <span class="ms-1 muted" i18n>That's an error.</span> |
5 | 5 | ||
@@ -22,6 +22,21 @@ | |||
22 | </div> | 22 | </div> |
23 | </div> | 23 | </div> |
24 | 24 | ||
25 | <div *ngIf="status === 401" class="box"> | ||
26 | <strong>{{ status }}.</strong> | ||
27 | <span class="ms-1 muted" i18n>You are not authorized here.</span> | ||
28 | |||
29 | <div class="text mt-4"> | ||
30 | <ng-container *ngIf="type === 'video'" i18n>You might need to login to see the video.</ng-container> | ||
31 | <ng-container *ngIf="type !== 'video'" i18n>You might need to login to see the resource.</ng-container> | ||
32 | </div> | ||
33 | |||
34 | <a class="peertube-button-link orange-button mt-5" i18n routerLink="/login"> | ||
35 | Login | ||
36 | </a> | ||
37 | |||
38 | </div> | ||
39 | |||
25 | <div *ngIf="status === 403" class="box"> | 40 | <div *ngIf="status === 403" class="box"> |
26 | <strong>{{ status }}.</strong> | 41 | <strong>{{ status }}.</strong> |
27 | <span class="ms-1 muted" i18n>You are not authorized here.</span> | 42 | <span class="ms-1 muted" i18n>You are not authorized here.</span> |
diff --git a/client/src/app/core/routing/redirect.service.ts b/client/src/app/core/routing/redirect.service.ts index 2b8cbaa59..db4b35018 100644 --- a/client/src/app/core/routing/redirect.service.ts +++ b/client/src/app/core/routing/redirect.service.ts | |||
@@ -46,6 +46,8 @@ export class RedirectService { | |||
46 | this.currentUrl = this.router.url | 46 | this.currentUrl = this.router.url |
47 | router.events.subscribe(event => { | 47 | router.events.subscribe(event => { |
48 | if (event instanceof NavigationEnd || event instanceof NavigationCancel) { | 48 | if (event instanceof NavigationEnd || event instanceof NavigationCancel) { |
49 | if (event.url === '/404') return | ||
50 | |||
49 | this.previousUrl = this.currentUrl | 51 | this.previousUrl = this.currentUrl |
50 | this.currentUrl = event.url | 52 | this.currentUrl = event.url |
51 | 53 | ||
diff --git a/client/src/app/shared/shared-main/auth/auth-interceptor.service.ts b/client/src/app/shared/shared-main/auth/auth-interceptor.service.ts index 51248c7b2..7daf31a98 100644 --- a/client/src/app/shared/shared-main/auth/auth-interceptor.service.ts +++ b/client/src/app/shared/shared-main/auth/auth-interceptor.service.ts | |||
@@ -61,8 +61,8 @@ export class AuthInterceptor implements HttpInterceptor { | |||
61 | return req.clone({ headers: req.headers.set('Authorization', authHeaderValue) }) | 61 | return req.clone({ headers: req.headers.set('Authorization', authHeaderValue) }) |
62 | } | 62 | } |
63 | 63 | ||
64 | private handleNotAuthenticated (err: HttpErrorResponse, path = '/login'): Observable<any> { | 64 | private handleNotAuthenticated (err: HttpErrorResponse): Observable<any> { |
65 | this.router.navigateByUrl(path) | 65 | this.router.navigate([ '/404' ], { state: { obj: err }, skipLocationChange: true }) |
66 | return of(err.message) | 66 | return of(err.message) |
67 | } | 67 | } |
68 | } | 68 | } |