From c9699647d7168c5c0cf6c3bacaef08d7d44514e3 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Mon, 2 Mar 2020 11:51:05 -0500 Subject: [PATCH] load policies on register if org invite (#475) --- jslib | 2 +- src/app/accounts/register.component.ts | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/jslib b/jslib index e93c534ec4..4aecc53dde 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit e93c534ec4f724eaa8b494f516b187bea67b132c +Subproject commit 4aecc53ddef892d22457cf32b4f8d140c9253688 diff --git a/src/app/accounts/register.component.ts b/src/app/accounts/register.component.ts index 407777b3ed..f6042ae1de 100644 --- a/src/app/accounts/register.component.ts +++ b/src/app/accounts/register.component.ts @@ -14,6 +14,10 @@ import { StateService } from 'jslib/abstractions/state.service'; import { RegisterComponent as BaseRegisterComponent } from 'jslib/angular/components/register.component'; +import { Policy } from 'jslib/models/domain/policy'; + +import { PolicyData } from 'jslib/models/data/policyData'; + @Component({ selector: 'app-register', templateUrl: 'register.component.html', @@ -22,6 +26,8 @@ export class RegisterComponent extends BaseRegisterComponent { showCreateOrgMessage = false; showTerms = true; + private policies: Policy[]; + constructor(authService: AuthService, router: Router, i18nService: I18nService, cryptoService: CryptoService, apiService: ApiService, private route: ActivatedRoute, @@ -32,7 +38,7 @@ export class RegisterComponent extends BaseRegisterComponent { this.showTerms = !platformUtilsService.isSelfHost(); } - ngOnInit() { + async ngOnInit() { const queryParamsSub = this.route.queryParams.subscribe((qParams) => { if (qParams.email != null && qParams.email.indexOf('@') > -1) { this.email = qParams.email; @@ -48,5 +54,16 @@ export class RegisterComponent extends BaseRegisterComponent { queryParamsSub.unsubscribe(); } }); + const invite = await this.stateService.get('orgInvitation'); + if (invite != null) { + try { + const policies = await this.apiService.getPoliciesByToken(invite.organizationId, invite.token, + invite.email, invite.organizationUserId); + if (policies.data != null) { + const policiesData = policies.data.map((p) => new PolicyData(p)); + this.policies = policiesData.map((p) => new Policy(p)); + } + } catch { } + } } }