@churchillliving/se-ui-toolkit 6.54.787 → 6.54.788
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
+
import { throwError } from 'rxjs';
|
|
3
|
+
import { map, catchError } from 'rxjs/operators';
|
|
4
|
+
import * as Sentry from '@sentry/angular';
|
|
2
5
|
import * as i0 from "@angular/core";
|
|
3
6
|
import * as i1 from "./shared.service";
|
|
7
|
+
import * as i2 from "./request.service";
|
|
4
8
|
export class AuthenticationService {
|
|
5
|
-
constructor(sharedService) {
|
|
9
|
+
constructor(sharedService, requestService) {
|
|
6
10
|
this.sharedService = sharedService;
|
|
11
|
+
this.requestService = requestService;
|
|
7
12
|
this.userInfoKey = 'CurrentUserInfo';
|
|
8
13
|
}
|
|
9
14
|
login(response) {
|
|
@@ -44,7 +49,28 @@ export class AuthenticationService {
|
|
|
44
49
|
localStorage.removeItem(this.userInfoKey);
|
|
45
50
|
localStorage.removeItem("UserSetting");
|
|
46
51
|
}
|
|
47
|
-
|
|
52
|
+
attemptSSOLogin() {
|
|
53
|
+
return this.requestService.getSSOAuth('Auth/windows-login').pipe(map((user) => {
|
|
54
|
+
if (user && user.data) {
|
|
55
|
+
localStorage.setItem(this.userInfoKey, JSON.stringify(user.data));
|
|
56
|
+
localStorage.setItem('userActivites', JSON.stringify(user.data?.activities));
|
|
57
|
+
localStorage.setItem('loginUser', 'true');
|
|
58
|
+
Sentry.configureScope((scope) => {
|
|
59
|
+
scope.setUser({
|
|
60
|
+
username: user.data.username,
|
|
61
|
+
id: user.data.id,
|
|
62
|
+
email: user.data.person?.personEmail?.[0]?.emailAddress
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
return user.data;
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
}), catchError(this.handleError));
|
|
69
|
+
}
|
|
70
|
+
handleError(error) {
|
|
71
|
+
return throwError(error);
|
|
72
|
+
}
|
|
73
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthenticationService, deps: [{ token: i1.SharedService }, { token: i2.RequestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
48
74
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthenticationService, providedIn: 'root' }); }
|
|
49
75
|
}
|
|
50
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthenticationService, decorators: [{
|
|
@@ -52,5 +78,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
52
78
|
args: [{
|
|
53
79
|
providedIn: 'root',
|
|
54
80
|
}]
|
|
55
|
-
}], ctorParameters: () => [{ type: i1.SharedService }] });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
}], ctorParameters: () => [{ type: i1.SharedService }, { type: i2.RequestService }] });
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlLXVpLXRvb2xraXQvc3JjL2xpYi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFLMUMsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxZQUNRLGFBQTRCLEVBQVUsY0FBOEI7UUFBcEUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFGNUUsZ0JBQVcsR0FBVyxpQkFBaUIsQ0FBQztJQUd4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQWE7UUFDakIsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQVEsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxZQUFZO1FB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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElVc2VySW5mbyB9IGZyb20gJy4uL21vZGVscy91c2VyLWluZm8ubW9kZWwnO1xuaW1wb3J0IHsgUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuL3JlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vbW9kZWxzL3Jlc3BvbnNlLm1vZGVsJztcbmltcG9ydCB7IG1hcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCAqIGFzIFNlbnRyeSBmcm9tICdAc2VudHJ5L2FuZ3VsYXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aGVudGljYXRpb25TZXJ2aWNlIHtcbiAgdXNlckluZm9LZXk6IHN0cmluZyA9ICdDdXJyZW50VXNlckluZm8nO1xuICBjb25zdHJ1Y3RvcihcbiAgcHJpdmF0ZSBzaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlLCBwcml2YXRlIHJlcXVlc3RTZXJ2aWNlOiBSZXF1ZXN0U2VydmljZSkge1xuICB9XG5cbiAgbG9naW4ocmVzcG9uc2U6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy51c2VySW5mb0tleSwgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuZGF0YSkpO1xuICAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLmdldFVzZXJTZXR0aW5nQnlVc2VySWQocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBnZXRVc2VySW5mbygpIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZSgobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy51c2VySW5mb0tleSkpIGFzIGFueSk7XG4gIH1cblxuICBnZXRVc2VyUm9sZXMoKSB7XG4gICAgbGV0IHJvbGVzOiBhbnkgPSBbXTtcbiAgICBsZXQgdXNlckluZm86IElVc2VySW5mbyA9IHRoaXMuZ2V0VXNlckluZm8oKTtcbiAgICBpZiAodXNlckluZm8gJiYgdXNlckluZm8ucm9sZXMgJiYgdXNlckluZm8ucm9sZXMubGVuZ3RoID4gMCkge1xuICAgICAgcm9sZXMgPSB1c2VySW5mby5yb2xlcy5tYXAoKHgpID0+IHgubmFtZSk7XG4gICAgfVxuICAgIHJldHVybiByb2xlcztcbiAgfVxuXG4gIGlzQXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRVc2VySW5mbygpID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG5cbiAgbG9nb3V0KCkge1xuICAgIC8vIHNldHRpbmcgRnVuY3Rpb24gZm9yIHJlbW92aW5nIHRoZSBHcmlkIEZpbHRlcnMgV2hlbiBVc2VyIGxvZ291dC4gIFxuICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXMobG9jYWxTdG9yYWdlKTtcbiAgICBpZihrZXlzICYmIGtleXMubGVuZ3RoID4gMCl7XG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KT0+e1xuICAgICAgICAgIGlmKGtleS5pbmNsdWRlcygnU2V0RmlsdGVycy0nKSl7XG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gcmVtb3ZpbmcgdGhlIFVzZXJOYW1lICYgUGFzc3dvcmQgV2hlbiBVc2VyIGxvZ291dC5cbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLnVzZXJJbmZvS2V5KTtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIlVzZXJTZXR0aW5nXCIpO1xuICB9XG4gIGF0dGVtcHRTU09Mb2dpbigpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3RTZXJ2aWNlLmdldFNTT0F1dGg8VXNlcj4oJ0F1dGgvd2luZG93cy1sb2dpbicpLnBpcGUoXG4gICAgICBtYXAoKHVzZXI6IGFueSkgPT4ge1xuICAgICAgICBpZiAodXNlciAmJiB1c2VyLmRhdGEpIHtcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnVzZXJJbmZvS2V5LCBKU09OLnN0cmluZ2lmeSh1c2VyLmRhdGEpKTtcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndXNlckFjdGl2aXRlcycsIEpTT04uc3RyaW5naWZ5KHVzZXIuZGF0YT8uYWN0aXZpdGllcykpO1xuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdsb2dpblVzZXInLCAndHJ1ZScpO1xuXG4gICAgICAgICAgKFNlbnRyeSBhcyBhbnkpLmNvbmZpZ3VyZVNjb3BlKChzY29wZTogYW55KSA9PiB7XG4gICAgICAgICAgICBzY29wZS5zZXRVc2VyKHtcbiAgICAgICAgICAgICAgdXNlcm5hbWU6IHVzZXIuZGF0YS51c2VybmFtZSxcbiAgICAgICAgICAgICAgaWQ6IHVzZXIuZGF0YS5pZCxcbiAgICAgICAgICAgICAgZW1haWw6IHVzZXIuZGF0YS5wZXJzb24/LnBlcnNvbkVtYWlsPy5bMF0/LmVtYWlsQWRkcmVzc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm4gdXNlci5kYXRhO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIGhhbmRsZUVycm9yKGVycm9yKSB7XG4gICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICB9XG5cblxufSJdfQ==
|
|
@@ -19,6 +19,7 @@ import * as i1$4 from 'ngx-toastr';
|
|
|
19
19
|
import { ToastrModule } from 'ngx-toastr';
|
|
20
20
|
import * as FileSaver from 'file-saver';
|
|
21
21
|
import * as ExcelJS from 'exceljs/dist/exceljs.min.js';
|
|
22
|
+
import * as Sentry from '@sentry/angular';
|
|
22
23
|
import * as i13 from 'primeng/table';
|
|
23
24
|
import { TableModule } from 'primeng/table';
|
|
24
25
|
import * as i11 from 'primeng/multiselect';
|
|
@@ -4677,8 +4678,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
4677
4678
|
}], ctorParameters: () => [{ type: RequestService }] });
|
|
4678
4679
|
|
|
4679
4680
|
class AuthenticationService {
|
|
4680
|
-
constructor(sharedService) {
|
|
4681
|
+
constructor(sharedService, requestService) {
|
|
4681
4682
|
this.sharedService = sharedService;
|
|
4683
|
+
this.requestService = requestService;
|
|
4682
4684
|
this.userInfoKey = 'CurrentUserInfo';
|
|
4683
4685
|
}
|
|
4684
4686
|
login(response) {
|
|
@@ -4719,7 +4721,28 @@ class AuthenticationService {
|
|
|
4719
4721
|
localStorage.removeItem(this.userInfoKey);
|
|
4720
4722
|
localStorage.removeItem("UserSetting");
|
|
4721
4723
|
}
|
|
4722
|
-
|
|
4724
|
+
attemptSSOLogin() {
|
|
4725
|
+
return this.requestService.getSSOAuth('Auth/windows-login').pipe(map((user) => {
|
|
4726
|
+
if (user && user.data) {
|
|
4727
|
+
localStorage.setItem(this.userInfoKey, JSON.stringify(user.data));
|
|
4728
|
+
localStorage.setItem('userActivites', JSON.stringify(user.data?.activities));
|
|
4729
|
+
localStorage.setItem('loginUser', 'true');
|
|
4730
|
+
Sentry.configureScope((scope) => {
|
|
4731
|
+
scope.setUser({
|
|
4732
|
+
username: user.data.username,
|
|
4733
|
+
id: user.data.id,
|
|
4734
|
+
email: user.data.person?.personEmail?.[0]?.emailAddress
|
|
4735
|
+
});
|
|
4736
|
+
});
|
|
4737
|
+
return user.data;
|
|
4738
|
+
}
|
|
4739
|
+
return null;
|
|
4740
|
+
}), catchError(this.handleError));
|
|
4741
|
+
}
|
|
4742
|
+
handleError(error) {
|
|
4743
|
+
return throwError(error);
|
|
4744
|
+
}
|
|
4745
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthenticationService, deps: [{ token: SharedService }, { token: RequestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4723
4746
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthenticationService, providedIn: 'root' }); }
|
|
4724
4747
|
}
|
|
4725
4748
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthenticationService, decorators: [{
|
|
@@ -4727,7 +4750,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
4727
4750
|
args: [{
|
|
4728
4751
|
providedIn: 'root',
|
|
4729
4752
|
}]
|
|
4730
|
-
}], ctorParameters: () => [{ type: SharedService }] });
|
|
4753
|
+
}], ctorParameters: () => [{ type: SharedService }, { type: RequestService }] });
|
|
4731
4754
|
|
|
4732
4755
|
class PageLoggerService {
|
|
4733
4756
|
constructor(requestService) {
|