X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Blogin%2Flogin.component.ts;h=73bd41ab4f16b2db24e21317f2278a21a2ee54c2;hb=cb28bb92daf1a0e123bc0144030c2bc65b865f4a;hp=16876afd6d930748819cc522d4085b4b71ba5f57;hpb=1378c0d343028f3d40d7d795422684ab9e6a1599;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+login/login.component.ts b/client/src/app/+login/login.component.ts index 16876afd6..73bd41ab4 100644 --- a/client/src/app/+login/login.component.ts +++ b/client/src/app/+login/login.component.ts @@ -1,12 +1,13 @@ -import { environment } from 'src/environments/environment' + import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angular/core' import { ActivatedRoute } from '@angular/router' -import { AuthService, Notifier, RedirectService, UserService } from '@app/core' +import { AuthService, Notifier, RedirectService, SessionStorageService, UserService } from '@app/core' import { HooksService } from '@app/core/plugins/hooks.service' import { LOGIN_PASSWORD_VALIDATOR, LOGIN_USERNAME_VALIDATOR } from '@app/shared/form-validators/login-validators' import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' import { InstanceAboutAccordionComponent } from '@app/shared/shared-instance' import { NgbAccordion, NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap' +import { PluginsManager } from '@root-helpers/plugins-manager' import { RegisteredExternalAuthConfig, ServerConfig } from '@shared/models' @Component({ @@ -16,6 +17,8 @@ import { RegisteredExternalAuthConfig, ServerConfig } from '@shared/models' }) export class LoginComponent extends FormReactive implements OnInit, AfterViewInit { + private static SESSION_STORAGE_REDIRECT_URL_KEY = 'login-previous-url' + @ViewChild('forgotPasswordModal', { static: true }) forgotPasswordModal: ElementRef accordion: NgbAccordion @@ -45,8 +48,9 @@ export class LoginComponent extends FormReactive implements OnInit, AfterViewIni private userService: UserService, private redirectService: RedirectService, private notifier: Notifier, - private hooks: HooksService - ) { + private hooks: HooksService, + private storage: SessionStorageService + ) { super() } @@ -87,6 +91,8 @@ export class LoginComponent extends FormReactive implements OnInit, AfterViewIni this.externalAuthError = true return } + + this.storage.setItem(LoginComponent.SESSION_STORAGE_REDIRECT_URL_KEY, this.redirectService.getPreviousUrl()) } ngAfterViewInit () { @@ -98,7 +104,7 @@ export class LoginComponent extends FormReactive implements OnInit, AfterViewIni } getAuthHref (auth: RegisteredExternalAuthConfig) { - return environment.apiUrl + `/plugins/${auth.name}/${auth.version}/auth/${auth.authName}` + return PluginsManager.getExternalAuthHref(auth) } login () { @@ -150,7 +156,9 @@ The link will expire within 1 hour.` this.authService.login(username, null, token) .subscribe({ - next: () => this.redirectService.redirectToPreviousRoute(), + next: () => { + this.redirectService.redirectToPreviousRoute(this.storage.getItem(LoginComponent.SESSION_STORAGE_REDIRECT_URL_KEY)) + }, error: err => { this.handleError(err)