aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBO41 <lukasw41@gmail.com>2018-09-23 16:37:48 +0200
committerRigel Kent <par@rigelk.eu>2018-09-23 16:37:48 +0200
commitec769c89fdcbcaf2d15de8d211d3ede3b6f69c1a (patch)
tree76ae11169ee75db87324a921f05572601f733196
parent923406990334d133a49a283629322d1bbb521ecc (diff)
downloadPeerTube-ec769c89fdcbcaf2d15de8d211d3ede3b6f69c1a.tar.gz
PeerTube-ec769c89fdcbcaf2d15de8d211d3ede3b6f69c1a.tar.zst
PeerTube-ec769c89fdcbcaf2d15de8d211d3ede3b6f69c1a.zip
add redirect after login (#1110)
-rw-r--r--client/src/app/core/auth/auth.service.ts3
-rw-r--r--client/src/app/core/routing/login-guard.service.ts2
-rw-r--r--client/src/app/login/login.component.ts13
3 files changed, 17 insertions, 1 deletions
diff --git a/client/src/app/core/auth/auth.service.ts b/client/src/app/core/auth/auth.service.ts
index 88ea89639..8ff5713a1 100644
--- a/client/src/app/core/auth/auth.service.ts
+++ b/client/src/app/core/auth/auth.service.ts
@@ -38,6 +38,7 @@ export class AuthService {
38 loginChangedSource: Observable<AuthStatus> 38 loginChangedSource: Observable<AuthStatus>
39 userInformationLoaded = new ReplaySubject<boolean>(1) 39 userInformationLoaded = new ReplaySubject<boolean>(1)
40 hotkeys: Hotkey[] 40 hotkeys: Hotkey[]
41 redirectUrl: string
41 42
42 private clientId: string = peertubeLocalStorage.getItem(AuthService.LOCAL_STORAGE_OAUTH_CLIENT_KEYS.CLIENT_ID) 43 private clientId: string = peertubeLocalStorage.getItem(AuthService.LOCAL_STORAGE_OAUTH_CLIENT_KEYS.CLIENT_ID)
43 private clientSecret: string = peertubeLocalStorage.getItem(AuthService.LOCAL_STORAGE_OAUTH_CLIENT_KEYS.CLIENT_SECRET) 44 private clientSecret: string = peertubeLocalStorage.getItem(AuthService.LOCAL_STORAGE_OAUTH_CLIENT_KEYS.CLIENT_SECRET)
@@ -177,6 +178,8 @@ export class AuthService {
177 this.setStatus(AuthStatus.LoggedOut) 178 this.setStatus(AuthStatus.LoggedOut)
178 179
179 this.hotkeysService.remove(this.hotkeys) 180 this.hotkeysService.remove(this.hotkeys)
181
182 this.redirectUrl = null
180 } 183 }
181 184
182 refreshAccessToken () { 185 refreshAccessToken () {
diff --git a/client/src/app/core/routing/login-guard.service.ts b/client/src/app/core/routing/login-guard.service.ts
index 18bc41ca6..40ff8f505 100644
--- a/client/src/app/core/routing/login-guard.service.ts
+++ b/client/src/app/core/routing/login-guard.service.ts
@@ -20,6 +20,8 @@ export class LoginGuard implements CanActivate, CanActivateChild {
20 canActivate (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { 20 canActivate (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
21 if (this.auth.isLoggedIn() === true) return true 21 if (this.auth.isLoggedIn() === true) return true
22 22
23 this.auth.redirectUrl = state.url
24
23 this.router.navigate([ '/login' ]) 25 this.router.navigate([ '/login' ])
24 return false 26 return false
25 } 27 }
diff --git a/client/src/app/login/login.component.ts b/client/src/app/login/login.component.ts
index 4bae3ae5c..7553e6456 100644
--- a/client/src/app/login/login.component.ts
+++ b/client/src/app/login/login.component.ts
@@ -8,6 +8,7 @@ import { I18n } from '@ngx-translate/i18n-polyfill'
8import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service' 8import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service'
9import { LoginValidatorsService } from '@app/shared/forms/form-validators/login-validators.service' 9import { LoginValidatorsService } from '@app/shared/forms/form-validators/login-validators.service'
10import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap' 10import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'
11import { Router } from '@angular/router'
11 12
12@Component({ 13@Component({
13 selector: 'my-login', 14 selector: 'my-login',
@@ -26,6 +27,7 @@ export class LoginComponent extends FormReactive implements OnInit {
26 private openedForgotPasswordModal: NgbModalRef 27 private openedForgotPasswordModal: NgbModalRef
27 28
28 constructor ( 29 constructor (
30 public router: Router,
29 protected formValidatorService: FormValidatorService, 31 protected formValidatorService: FormValidatorService,
30 private modalService: NgbModal, 32 private modalService: NgbModal,
31 private loginValidatorsService: LoginValidatorsService, 33 private loginValidatorsService: LoginValidatorsService,
@@ -59,7 +61,7 @@ export class LoginComponent extends FormReactive implements OnInit {
59 61
60 this.authService.login(username, password) 62 this.authService.login(username, password)
61 .subscribe( 63 .subscribe(
62 () => this.redirectService.redirectToHomepage(), 64 () => this.redirect(),
63 65
64 err => { 66 err => {
65 if (err.message.indexOf('credentials are invalid') !== -1) this.error = this.i18n('Incorrect username or password.') 67 if (err.message.indexOf('credentials are invalid') !== -1) this.error = this.i18n('Incorrect username or password.')
@@ -69,6 +71,15 @@ export class LoginComponent extends FormReactive implements OnInit {
69 ) 71 )
70 } 72 }
71 73
74 redirect () {
75 const redirect = this.authService.redirectUrl
76 if (redirect) {
77 this.router.navigate([ redirect ])
78 } else {
79 this.redirectService.redirectToHomepage()
80 }
81 }
82
72 askResetPassword () { 83 askResetPassword () {
73 this.userService.askResetPassword(this.forgotPasswordEmail) 84 this.userService.askResetPassword(this.forgotPasswordEmail)
74 .subscribe( 85 .subscribe(