Skip to content

Commit b2c0674

Browse files
authored
fix: fix for integrations on admin dashboard when multiple admins are present (#996)
1 parent 1493a07 commit b2c0674

File tree

5 files changed

+82
-16
lines changed

5 files changed

+82
-16
lines changed

src/app/auth/login/login.component.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ export class LoginComponent implements OnInit {
4747
private userService: UserService
4848
) { }
4949

50-
private redirect(redirectUri: string | undefined): void {
50+
private redirect(redirectUri: string | undefined, code:string): void {
5151
if (redirectUri) {
52-
this.router.navigate([redirectUri]);
52+
brandingConfig.brandId === 'co' ? this.router.navigate([redirectUri], { queryParams: { code: code } }) : this.router.navigate([redirectUri]);
5353
} else {
5454
this.router.navigate(['/integrations']);
5555
}
@@ -106,9 +106,9 @@ export class LoginComponent implements OnInit {
106106
this.helperService.setBaseApiURL(AppUrl.XERO);
107107
this.xeroAuthService.loginWithRefreshToken(clusterDomainWithToken.tokens.refresh_token).subscribe();
108108
}
109-
this.redirect(redirectUri);
109+
this.redirect(redirectUri, code);
110110
} else {
111-
this.redirect(redirectUri);
111+
this.redirect(redirectUri, code);
112112
}
113113
});
114114
});

src/app/integrations/intacct/intacct.component.ts

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Component, Inject, OnInit } from '@angular/core';
2-
import { NavigationEnd, Router } from '@angular/router';
2+
import { NavigationEnd, Router, ActivatedRoute } from '@angular/router';
33
import { MinimalUser } from 'src/app/core/models/db/user.model';
44
import { AppName, AppUrl, IntacctOnboardingState } from 'src/app/core/models/enum/enum.model';
55
import { IntacctWorkspace } from 'src/app/core/models/intacct/db/workspaces.model';
@@ -9,6 +9,7 @@ import { WindowService } from 'src/app/core/services/common/window.service';
99
import { AppcuesService } from 'src/app/core/services/integration/appcues.service';
1010
import { UserService } from 'src/app/core/services/misc/user.service';
1111
import { SiWorkspaceService } from 'src/app/core/services/si/si-core/si-workspace.service';
12+
import { SiAuthService } from 'src/app/core/services/si/si-core/si-auth.service';
1213

1314
@Component({
1415
selector: 'app-intacct',
@@ -29,10 +30,12 @@ export class IntacctComponent implements OnInit {
2930
private appcuesService: AppcuesService,
3031
private helperService: HelperService,
3132
private router: Router,
33+
private route: ActivatedRoute,
3234
private storageService: StorageService,
3335
private userService: UserService,
3436
private windowService: WindowService,
35-
private workspaceService: SiWorkspaceService
37+
private workspaceService: SiWorkspaceService,
38+
private siAuthService: SiAuthService
3639
) {
3740
this.windowReference = this.windowService.nativeWindow;
3841
}
@@ -77,13 +80,26 @@ export class IntacctComponent implements OnInit {
7780
);
7881
}
7982

83+
private handleAuthParameters(): void {
84+
this.route.queryParams.subscribe(params => {
85+
const authCode = params.code;
86+
if (authCode) {
87+
this.siAuthService.loginWithAuthCode(authCode).subscribe(
88+
() => this.getOrCreateWorkspace()
89+
);
90+
} else {
91+
this.getOrCreateWorkspace();
92+
}
93+
});
94+
}
95+
8096
ngOnInit(): void {
8197
this.router.events.subscribe((event) => {
8298
if (event instanceof NavigationEnd) {
8399
(window as any).Appcues && (window as any).Appcues.page();
84100
}
85101
});
86-
this.getOrCreateWorkspace();
102+
this.handleAuthParameters();
87103
}
88104

89105
}

src/app/integrations/netsuite/netsuite.component.ts

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Component, Inject, OnInit } from '@angular/core';
2-
import { Router } from '@angular/router';
2+
import { Router, ActivatedRoute } from '@angular/router';
33
import { MinimalUser } from 'src/app/core/models/db/user.model';
44
import { NetsuiteOnboardingState } from 'src/app/core/models/enum/enum.model';
55
import { NetsuiteWorkspace } from 'src/app/core/models/netsuite/db/netsuite-workspace.model';
@@ -8,7 +8,7 @@ import { StorageService } from 'src/app/core/services/common/storage.service';
88
import { WindowService } from 'src/app/core/services/common/window.service';
99
import { WorkspaceService } from 'src/app/core/services/common/workspace.service';
1010
import { NetsuiteHelperService } from 'src/app/core/services/netsuite/netsuite-core/netsuite-helper.service';
11-
11+
import { NetsuiteAuthService } from 'src/app/core/services/netsuite/netsuite-core/netsuite-auth.service';
1212

1313
@Component({
1414
selector: 'app-netsuite',
@@ -29,10 +29,12 @@ export class NetsuiteComponent implements OnInit {
2929
constructor(
3030
private netsuiteHelperService: NetsuiteHelperService,
3131
private router: Router,
32+
private route: ActivatedRoute,
3233
private storageService: StorageService,
3334
private userService: IntegrationsUserService,
3435
private workspaceService: WorkspaceService,
35-
private windowService: WindowService
36+
private windowService: WindowService,
37+
private nsAuthService: NetsuiteAuthService
3638
) {
3739
this.windowReference = this.windowService.nativeWindow;
3840
}
@@ -77,7 +79,21 @@ export class NetsuiteComponent implements OnInit {
7779
);
7880
}
7981

82+
private handleAuthParameters(): void {
83+
this.route.queryParams.subscribe(params => {
84+
const authCode = params.code;
85+
86+
if (authCode) {
87+
this.nsAuthService.loginWithAuthCode(authCode).subscribe(
88+
() => this.setupWorkspace()
89+
);
90+
} else {
91+
this.setupWorkspace();
92+
}
93+
});
94+
}
95+
8096
ngOnInit(): void {
81-
this.setupWorkspace();
97+
this.handleAuthParameters();
8298
}
8399
}

src/app/integrations/qbo/qbo.component.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Component, Inject, OnInit } from '@angular/core';
2-
import { Router } from '@angular/router';
2+
import { Router, ActivatedRoute } from '@angular/router';
33
import { MinimalUser } from 'src/app/core/models/db/user.model';
44
import { AppUrl, QBOOnboardingState } from 'src/app/core/models/enum/enum.model';
55
import { QBOWorkspace } from 'src/app/core/models/qbo/db/qbo-workspace.model';
@@ -9,6 +9,7 @@ import { StorageService } from 'src/app/core/services/common/storage.service';
99
import { WindowService } from 'src/app/core/services/common/window.service';
1010
import { WorkspaceService } from 'src/app/core/services/common/workspace.service';
1111
import { QboHelperService } from 'src/app/core/services/qbo/qbo-core/qbo-helper.service';
12+
import { QboAuthService } from 'src/app/core/services/qbo/qbo-core/qbo-auth.service';
1213

1314
@Component({
1415
selector: 'app-qbo',
@@ -29,6 +30,8 @@ export class QboComponent implements OnInit {
2930
private helperService: HelperService,
3031
private qboHelperService: QboHelperService,
3132
private router: Router,
33+
private route: ActivatedRoute,
34+
private qboAuthService: QboAuthService,
3235
private storageService: StorageService,
3336
private userService: IntegrationsUserService,
3437
private workspaceService: WorkspaceService,
@@ -77,8 +80,22 @@ export class QboComponent implements OnInit {
7780
);
7881
}
7982

83+
private handleAuthParameters(): void {
84+
this.route.queryParams.subscribe(params => {
85+
const authCode = params.code;
86+
87+
if (authCode) {
88+
this.qboAuthService.loginWithAuthCode(authCode).subscribe(
89+
() => this.setupWorkspace()
90+
);
91+
} else {
92+
this.setupWorkspace();
93+
}
94+
});
95+
}
96+
8097
ngOnInit(): void {
81-
this.setupWorkspace();
98+
this.handleAuthParameters();
8299
}
83100

84101
}

src/app/integrations/xero/xero.component.ts

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Component, Inject, OnInit } from '@angular/core';
2-
import { Router } from '@angular/router';
2+
import { Router, ActivatedRoute } from '@angular/router';
33
import { MinimalUser } from 'src/app/core/models/db/user.model';
44
import { AppUrl, XeroOnboardingState } from 'src/app/core/models/enum/enum.model';
55
import { XeroWorkspace } from 'src/app/core/models/xero/db/xero-workspace.model';
@@ -9,6 +9,7 @@ import { WindowService } from 'src/app/core/services/common/window.service';
99
import { WorkspaceService } from 'src/app/core/services/common/workspace.service';
1010
import { UserService } from 'src/app/core/services/misc/user.service';
1111
import { XeroHelperService } from 'src/app/core/services/xero/xero-core/xero-helper.service';
12+
import { XeroAuthService } from 'src/app/core/services/xero/xero-core/xero-auth.service';
1213

1314
@Component({
1415
selector: 'app-xero',
@@ -27,12 +28,14 @@ export class XeroComponent implements OnInit {
2728

2829
constructor(
2930
private router: Router,
31+
private route: ActivatedRoute,
3032
private storageService: StorageService,
3133
private xeroHelperService: XeroHelperService,
3234
private userService: UserService,
3335
private windowService: WindowService,
3436
private workspaceService: WorkspaceService,
35-
private helperService: HelperService
37+
private helperService: HelperService,
38+
private xeroAuthService: XeroAuthService
3639
) {
3740
this.windowReference = this.windowService.nativeWindow;
3841
}
@@ -86,8 +89,22 @@ export class XeroComponent implements OnInit {
8689
});
8790
}
8891

92+
private handleAuthParameters(): void {
93+
this.route.queryParams.subscribe(params => {
94+
const authCode = params.code;
95+
96+
if (authCode) {
97+
this.xeroAuthService.login(authCode).subscribe(
98+
() => this.setupWorkspace()
99+
);
100+
} else {
101+
this.setupWorkspace();
102+
}
103+
});
104+
}
105+
89106
ngOnInit(): void {
90-
this.setupWorkspace();
107+
this.handleAuthParameters();
91108
}
92109

93110

0 commit comments

Comments
 (0)