Skip to content

Commit 9009780

Browse files
Merge pull request #51 from aquality-automation/feature/Redirect_Fix
Feature/redirect fix
2 parents 1936464 + 05178f9 commit 9009780

File tree

9 files changed

+50
-34
lines changed

9 files changed

+50
-34
lines changed

src/app/app.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ export class AppComponent {
202202
}
203203

204204
async getInfo() {
205-
this.isLogged = await this.userService.handleIsLogged(undefined, false);
205+
this.isLogged = await this.userService.handleIsLogged(false);
206206
this.globaldata.auditModule = await this.settingsService.getGeneralSettings().toPromise();
207207
if (this.isLogged && this.route.firstChild && this.route.firstChild.firstChild) {
208208
await this.getProjectInfo();

src/app/pages/general/authorization/Login.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export class LoginComponent implements OnInit {
4848
}
4949

5050
async tryAuth() {
51-
this.returnUrl = this.route.snapshot.queryParams['returnUrl']
51+
this.returnUrl = this.route.snapshot.queryParams.returnUrl
5252
|| '/project';
5353
const encrypter = new JsEncryptModule.JSEncrypt();
5454
const token = await this.userService.getToken(this.userName);

src/app/services/simple-requester.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ export class SimpleRequester extends Http {
2626
super(backend, defaultOptions);
2727
}
2828

29+
isAuthHeaderExists() {
30+
return !!this.cookieService.get('iio78');
31+
}
32+
2933
createAuthorizationHeader(headers: Headers) {
3034
if (this.cookieService.get('iio78')) {
3135
headers.append('Authorization', 'Basic ' + this.cookieService.get('iio78'));

src/app/services/user.services.ts

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,22 @@ export class UserService extends SimpleRequester {
2626
}).toPromise();
2727
}
2828

29-
private isAuthorized(handleError: boolean = true) {
30-
return this.doGet('/users/isAuthorized', undefined, false, handleError).map(res => {
31-
this.globaldata.teamMember = res.headers.get('accountMember') === 'true';
32-
return res.json();
33-
}).toPromise();
29+
private isAuthorized(handleError: boolean = true): Promise<User> {
30+
const result = new Promise(async (resolve, reject) => {
31+
if (this.isAuthHeaderExists()) {
32+
try {
33+
const checkHeaderPromise = await this.doGet('/users/isAuthorized', undefined, false, handleError).map(res => {
34+
this.globaldata.teamMember = res.headers.get('accountMember') === 'true';
35+
return res.json();
36+
}).toPromise();
37+
resolve(checkHeaderPromise);
38+
} catch (err) {
39+
reject();
40+
}
41+
}
42+
reject();
43+
});
44+
return result;
3445
}
3546

3647
getPermissionsForProject(projectId: number) {
@@ -90,16 +101,15 @@ export class UserService extends SimpleRequester {
90101
});
91102
}
92103

93-
async redirectToLogin() {
94-
if (!(await this.router.navigate(['/']))) {
95-
await this.router.navigate(['/']);
104+
async redirectToLogin(returnUrl?: string) {
105+
if (!(await this.router.navigate(['/'], { queryParams: { returnUrl } }))) {
106+
await this.router.navigate(['/'], { queryParams: { returnUrl } });
96107
}
97108
}
98109

99-
async handleIsLogged(returnUrl?: string, handleError: boolean = true): Promise<boolean> {
110+
async handleIsLogged(handleError: boolean = true): Promise<boolean> {
100111
const isLogged = await this.checkAuth(handleError);
101112
if (!isLogged) {
102-
this.globaldata.returnURL = returnUrl || this.router.url;
103113
this.cookieService.remove('iio78');
104114
}
105115
return isLogged;

src/app/shared/guards/administration-guard.service.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export class AdministrationGlobalGuard implements CanActivate {
1414

1515
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
1616
let islogged = false;
17-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
17+
await this.userService.handleIsLogged().then(res => islogged = res);
1818
if (!islogged) { return false; }
1919

2020
if (this.userService.IsAdmin()) {
@@ -34,7 +34,7 @@ export class AdministrationProjectGuard implements CanActivate {
3434

3535
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
3636
let islogged = false;
37-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
37+
await this.userService.handleIsLogged().then(res => islogged = res);
3838
if (!islogged) { return false; }
3939

4040
await this.userService.AnyLocalPermissions();
@@ -58,7 +58,7 @@ export class AdministrationGuard implements CanActivate {
5858

5959
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
6060
let islogged = false;
61-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
61+
await this.userService.handleIsLogged().then(res => islogged = res);
6262
if (!islogged) { return false; }
6363

6464
await this.userService.AnyLocalPermissions();

src/app/shared/guards/audit-guard.service.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export class AuditCreateGuard implements CanActivate {
1313

1414
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
1515
let islogged = false;
16-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
16+
await this.userService.handleIsLogged().then(res => islogged = res);
1717
if (!islogged) { return false; }
1818

1919
if ((!this.userService.handleIsLogged() || !this.userService.IsAuditAdmin())) {
@@ -35,7 +35,7 @@ export class AuditDashboardGuard implements CanActivate {
3535

3636
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
3737
let islogged = false;
38-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
38+
await this.userService.handleIsLogged().then(res => islogged = res);
3939
if (!islogged) { return false; }
4040

4141
if (!this.userService.IsAuditor() && !this.userService.IsManager() && !this.userService.IsAuditAdmin()) {
@@ -57,7 +57,7 @@ export class AuditProjectGuard implements CanActivate {
5757

5858
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
5959
let islogged = false;
60-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
60+
await this.userService.handleIsLogged().then(res => islogged = res);
6161
if (!islogged) { return false; }
6262

6363
if (isNaN(+route.params['projectId'])) {

src/app/shared/guards/auth-guard.service.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@ export class AuthGuard implements CanActivate {
1212
) { }
1313

1414
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {
15-
const isLogged = await this.userService.handleIsLogged(state.url);
15+
const isLogged = await this.userService.handleIsLogged();
16+
console.log(isLogged);
17+
console.log(state.url);
1618
if (!isLogged) {
17-
this.userService.redirectToLogin();
19+
this.userService.redirectToLogin(state.url);
1820
}
1921
return isLogged;
2022
}
@@ -29,7 +31,7 @@ export class ProjectGuard implements CanActivate {
2931

3032
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
3133
let islogged = false;
32-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
34+
await this.userService.handleIsLogged().then(res => islogged = res);
3335
if (!islogged) { return false; }
3436

3537
const manager = this.userService.IsManager() || this.userService.IsAuditor() || this.userService.IsAuditAdmin();
@@ -52,7 +54,7 @@ export class CreateProjectGuard implements CanActivate {
5254

5355
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
5456
let islogged = false;
55-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
57+
await this.userService.handleIsLogged().then(res => islogged = res);
5658
if (!islogged) { return false; }
5759

5860
if (this.userService.IsManager()
@@ -75,7 +77,7 @@ export class TestRunGuard implements CanActivate {
7577

7678
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
7779
let islogged = false;
78-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
80+
await this.userService.handleIsLogged().then(res => islogged = res);
7981
if (!islogged) { return false; }
8082

8183
if (this.userService.IsManager() || this.userService.IsAuditAdmin() || this.userService.IsAuditor()
@@ -97,7 +99,7 @@ export class CreateTestRunGuard implements CanActivate {
9799

98100
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
99101
let islogged = false;
100-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
102+
await this.userService.handleIsLogged().then(res => islogged = res);
101103
if (!islogged) { return false; }
102104

103105
let hasLocalPerm: boolean;
@@ -122,7 +124,7 @@ export class CreateMilestoneGuard implements CanActivate {
122124

123125
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
124126
let islogged = false;
125-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
127+
await this.userService.handleIsLogged().then(res => islogged = res);
126128
if (!islogged) { return false; }
127129

128130
let hasLocalPerm: boolean;
@@ -147,7 +149,7 @@ export class TestSuiteGuard implements CanActivate {
147149

148150
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
149151
let islogged = false;
150-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
152+
await this.userService.handleIsLogged().then(res => islogged = res);
151153
if (!islogged) { return false; }
152154

153155
if (this.userService.IsManager() || this.userService.IsAuditAdmin() || this.userService.IsAuditor()
@@ -169,7 +171,7 @@ export class CreateTestSuiteGuard implements CanActivate {
169171

170172
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
171173
let islogged = false;
172-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
174+
await this.userService.handleIsLogged().then(res => islogged = res);
173175
if (!islogged) { return false; }
174176

175177
let hasLocalPerm: boolean;
@@ -194,7 +196,7 @@ export class CreateTestGuard implements CanActivate {
194196

195197
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
196198
let islogged = false;
197-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
199+
await this.userService.handleIsLogged().then(res => islogged = res);
198200
if (!islogged) { return false; }
199201

200202
let hasLocalPerm: boolean;
@@ -219,7 +221,7 @@ export class TestGuard implements CanActivate {
219221

220222
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
221223
let islogged = false;
222-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
224+
await this.userService.handleIsLogged().then(res => islogged = res);
223225
if (!islogged) { return false; }
224226

225227
if (this.userService.IsManager() || this.userService.IsAuditAdmin() || this.userService.IsAuditor()
@@ -241,7 +243,7 @@ export class TestResultGuard implements CanActivate {
241243

242244
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
243245
let islogged = false;
244-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
246+
await this.userService.handleIsLogged().then(res => islogged = res);
245247
if (!islogged) { return false; }
246248

247249
if (this.userService.IsManager() || this.userService.IsAuditAdmin() || this.userService.IsAuditor()
@@ -262,7 +264,7 @@ export class ProjectImportGuard implements CanActivate {
262264

263265
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
264266
let islogged = false;
265-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
267+
await this.userService.handleIsLogged().then(res => islogged = res);
266268
if (!islogged) { return false; }
267269

268270
let hasLocalPerm: boolean;

src/app/shared/guards/can-activate-customers.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export class CustomerDashboardGuard implements CanActivate {
1515

1616
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
1717
let islogged = false;
18-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
18+
await this.userService.handleIsLogged().then(res => islogged = res);
1919
if (!islogged) { return false; }
2020

2121
if (!this.userService.IsHead()
@@ -40,7 +40,7 @@ export class CustomerCreateGuard implements CanActivate {
4040

4141
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
4242
let islogged = false;
43-
await this.userService.handleIsLogged(state.url).then(res => islogged = res);
43+
await this.userService.handleIsLogged().then(res => islogged = res);
4444
if (!islogged) { return false; }
4545

4646
if (!this.userService.IsHead() && !this.userService.IsUnitCoordinator()) {

src/app/shared/guards/login-guard.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export class LoginGuard implements CanActivate {
1212
) { }
1313

1414
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {
15-
const isLogged = await this.userService.handleIsLogged(undefined, false);
15+
const isLogged = await this.userService.handleIsLogged(false);
1616
if (isLogged) {
1717
this.router.navigate(['/project']);
1818
}

0 commit comments

Comments
 (0)