diff --git a/src/components/users/signin-social/react/runtime/SignInAadRuntime.tsx b/src/components/users/signin-social/react/runtime/SignInAadRuntime.tsx index 95419a388..46cbec725 100644 --- a/src/components/users/signin-social/react/runtime/SignInAadRuntime.tsx +++ b/src/components/users/signin-social/react/runtime/SignInAadRuntime.tsx @@ -13,19 +13,23 @@ import { BtnSpinner } from "../../../../utils/react/BtnSpinner"; type SignInAadRuntimeProps = { label: string + tenants: string[], replyUrl: string, classNames: string } type SignInAadRuntimeFCProps = SignInAadRuntimeProps & { - signIn: () => Promise + signIn: (selectedTenant: string) => Promise }; -const SignInAadRuntimeFC = ({ label, signIn, classNames }: SignInAadRuntimeFCProps) => { +const SignInAadRuntimeFC = ({ label, signIn, tenants, classNames }: SignInAadRuntimeFCProps) => { return ( - - - {label} - +
+ {tenants.map(tenant => ( + signIn(tenant)} className={classNames}> + + {tenants.length > 1 ? `${label} (${tenant.replace('.onmicrosoft.com', '')})`: label } + ))} +
); }; @@ -48,23 +52,24 @@ export class SignInAadRuntime extends React.Component { private selectedService: IAadService; private aadConfig: AadClientConfig; - public async signIn(): Promise { + public async signIn(selectedTenant: string): Promise { dispatchErrors(this.eventManager, ErrorSources.signInOAuth, []); this.logger.trackEvent(eventTypes.aadLogin, { message: "Initiating AAD login" }); try { this.aadConfig = await this.settingsProvider.getSetting(SettingNames.aadClientConfig); - if (this.aadConfig ) { - if (this.aadConfig .clientLibrary === AadClientLibrary.v2) { + if (this.aadConfig) { + if (this.aadConfig.clientLibrary === AadClientLibrary.v2) { this.selectedService = this.aadServiceV2; } else { this.selectedService = this.aadService; } - await this.selectedService.signInWithAad(this.aadConfig .clientId, this.aadConfig .authority, this.aadConfig .signinTenant || defaultAadTenantName, this.props.replyUrl); - } else { + await this.selectedService.signInWithAad(this.aadConfig.clientId, this.aadConfig.authority, selectedTenant, this.props.replyUrl); + } + else { this.logger.trackEvent(eventTypes.aadLogin, { message: "AAD client config is not set" }); } } catch (error) { diff --git a/src/components/users/signin-social/signinSocialViewModelBinder.ts b/src/components/users/signin-social/signinSocialViewModelBinder.ts index ad0faa877..e96d6bfb8 100644 --- a/src/components/users/signin-social/signinSocialViewModelBinder.ts +++ b/src/components/users/signin-social/signinSocialViewModelBinder.ts @@ -53,10 +53,13 @@ export class SigninSocialViewModelBinder implements ViewModelBinder