Close 2fa window if redirected from sso login (#1480)

* Close 2fa window if redirected from sso login

This is a workaround until we can get browser extension sso to use the
toolbar popup.

other changes are linter autofixs

Co-authored-by: Matt Gibson <mdgibson@Matts-MBP.lan>
This commit is contained in:
Matt Gibson 2020-12-09 15:30:03 -06:00 committed by GitHub
parent a1542f050d
commit c95230fc48
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 25 additions and 6 deletions

View File

@ -10,4 +10,4 @@ window.addEventListener('message', (event) => {
referrer: event.source.location.hostname, referrer: event.source.location.hostname,
}); });
} }
}, false) }, false);

View File

@ -1,6 +1,6 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { ConstantsService } from 'jslib/services/constants.service' import { ConstantsService } from 'jslib/services/constants.service';
import { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service'; import { CryptoFunctionService } from 'jslib/abstractions/cryptoFunction.service';
import { EnvironmentService } from 'jslib/abstractions/environment.service'; import { EnvironmentService } from 'jslib/abstractions/environment.service';
import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service'; import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';

View File

@ -25,6 +25,7 @@ import { BroadcasterService } from 'jslib/angular/services/broadcaster.service';
import { TwoFactorComponent as BaseTwoFactorComponent } from 'jslib/angular/components/two-factor.component'; import { TwoFactorComponent as BaseTwoFactorComponent } from 'jslib/angular/components/two-factor.component';
import { PopupUtilsService } from '../services/popup-utils.service'; import { PopupUtilsService } from '../services/popup-utils.service';
import { BrowserApi } from '../../browser/browserApi';
const BroadcasterSubscriptionId = 'TwoFactorComponent'; const BroadcasterSubscriptionId = 'TwoFactorComponent';
@ -37,7 +38,7 @@ export class TwoFactorComponent extends BaseTwoFactorComponent {
constructor(authService: AuthService, router: Router, constructor(authService: AuthService, router: Router,
i18nService: I18nService, apiService: ApiService, i18nService: I18nService, apiService: ApiService,
platformUtilsService: PlatformUtilsService, syncService: SyncService, platformUtilsService: PlatformUtilsService, private syncService: SyncService,
environmentService: EnvironmentService, private ngZone: NgZone, environmentService: EnvironmentService, private ngZone: NgZone,
private broadcasterService: BroadcasterService, private changeDetectorRef: ChangeDetectorRef, private broadcasterService: BroadcasterService, private changeDetectorRef: ChangeDetectorRef,
private popupUtilsService: PopupUtilsService, stateService: StateService, private popupUtilsService: PopupUtilsService, stateService: StateService,
@ -80,6 +81,20 @@ export class TwoFactorComponent extends BaseTwoFactorComponent {
this.popupUtilsService.popOut(window); this.popupUtilsService.popOut(window);
} }
} }
const queryParamsSub = this.route.queryParams.subscribe(async (qParams) => {
if (qParams.sso === 'true') {
super.onSuccessfulLogin = () => {
BrowserApi.reloadOpenWindows();
const thisWindow = window.open('', '_self');
thisWindow.close();
return this.syncService.fullSync(true);
};
if (queryParamsSub != null) {
queryParamsSub.unsubscribe();
}
}
});
} }
ngOnDestroy() { ngOnDestroy() {

View File

@ -42,14 +42,14 @@ const FirstnameFieldNames: string[] = [
'f-name', 'first-name', 'given-name', 'first-n', 'f-name', 'first-name', 'given-name', 'first-n',
// German // German
'vorname' 'vorname'
] ];
const LastnameFieldNames: string[] = [ const LastnameFieldNames: string[] = [
// English // English
'l-name', 'last-name', 's-name', 'surname', 'family-name', 'family-n', 'last-n', 'l-name', 'last-name', 's-name', 'surname', 'family-name', 'family-n', 'last-n',
// German // German
'nachname', 'familienname' 'nachname', 'familienname'
] ];
const ExcludedAutofillTypes: string[] = ['radio', 'checkbox', 'hidden', 'file', 'button', 'image', 'reset', 'search']; const ExcludedAutofillTypes: string[] = ['radio', 'checkbox', 'hidden', 'file', 'button', 'image', 'reset', 'search'];

View File

@ -49,6 +49,10 @@
"check-separator", "check-separator",
"check-type" "check-type"
], ],
"max-classes-per-file": false "max-classes-per-file": false,
"semicolon": [
true,
"always"
]
} }
} }