@cuby-ui/core 0.0.291 → 0.0.293
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,6 +1,6 @@
|
|
|
1
1
|
import { inject, signal } from '@angular/core';
|
|
2
|
+
import { CuiExchangeContextApiService } from '@cuby-ui/api';
|
|
2
3
|
import { OAuthErrorEvent, OAuthService, OAuthSuccessEvent } from 'angular-oauth2-oidc';
|
|
3
|
-
import { CuiActivityTokenExchangeApiService } from '@cuby-ui/api';
|
|
4
4
|
import { from, map, of, switchMap, tap } from 'rxjs';
|
|
5
5
|
class CuiToken extends OAuthService {
|
|
6
6
|
constructor() {
|
|
@@ -30,7 +30,8 @@ class CuiToken extends OAuthService {
|
|
|
30
30
|
export class CuiTokenBase extends CuiToken {
|
|
31
31
|
constructor() {
|
|
32
32
|
super(...arguments);
|
|
33
|
-
this.
|
|
33
|
+
this.exchangeContextApiService = inject(CuiExchangeContextApiService);
|
|
34
|
+
this.EXCHANGE_TOKEN_VALUE = 'employee_session';
|
|
34
35
|
}
|
|
35
36
|
getAccessTokenData() {
|
|
36
37
|
const token = this.getAccessToken();
|
|
@@ -49,8 +50,8 @@ export class CuiTokenBase extends CuiToken {
|
|
|
49
50
|
return currentTime >= expiredTime;
|
|
50
51
|
}
|
|
51
52
|
exchangeToken(params) {
|
|
52
|
-
return new Promise((resolve, reject) => this.
|
|
53
|
-
.
|
|
53
|
+
return new Promise((resolve, reject) => this.exchangeContextApiService
|
|
54
|
+
.exchange(params)
|
|
54
55
|
.pipe(switchMap((tokenResponse) => this.setIdToken(tokenResponse)))
|
|
55
56
|
.subscribe({
|
|
56
57
|
next: (tokenResponse) => {
|
|
@@ -59,14 +60,22 @@ export class CuiTokenBase extends CuiToken {
|
|
|
59
60
|
},
|
|
60
61
|
error: (error) => {
|
|
61
62
|
this.logger.error('Error exchanging token', error);
|
|
63
|
+
this.eventsSubject.next(new OAuthErrorEvent('token_refresh_error', error));
|
|
62
64
|
reject(error);
|
|
63
65
|
}
|
|
64
66
|
}));
|
|
65
67
|
}
|
|
66
68
|
// TODO: override refreshToken with custom refresh token request to the backend
|
|
67
69
|
refreshToken() {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
+
const tokenData = this.getAccessTokenData();
|
|
71
|
+
if (this.EXCHANGE_TOKEN_VALUE in tokenData) {
|
|
72
|
+
return this.refreshExchangedToken();
|
|
73
|
+
}
|
|
74
|
+
return super.refreshToken();
|
|
75
|
+
}
|
|
76
|
+
refreshExchangedToken() {
|
|
77
|
+
return new Promise((resolve, reject) => this.exchangeContextApiService
|
|
78
|
+
.refresh(this.getRefreshToken())
|
|
70
79
|
.pipe(switchMap((tokenResponse) => this.setIdToken(tokenResponse)))
|
|
71
80
|
.subscribe({
|
|
72
81
|
next: (tokenResponse) => {
|
|
@@ -94,4 +103,4 @@ export class CuiTokenBase extends CuiToken {
|
|
|
94
103
|
return from(this.processIdToken(tokenResponse.id_token, tokenResponse.access_token, true)).pipe(tap((result) => this.storeIdToken(result)), map(() => tokenResponse));
|
|
95
104
|
}
|
|
96
105
|
}
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc2VydmljZXMvdG9rZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RyxPQUFPLEVBQUUsa0NBQWtDLEVBQStCLE1BQU0sY0FBYyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpFLE1BQWUsUUFBUyxTQUFRLFlBQVk7SUFBNUM7O1FBQ3FCLGNBQVMsR0FBRyxNQUFNLENBQW1DLEVBQUUsQ0FBQyxDQUFDO0lBMEI5RSxDQUFDO0lBeEJhLHFCQUFxQixDQUFDLEtBQWE7UUFDekMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFDLElBQUksU0FBUyxFQUFFLENBQUM7WUFDWixPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFFbEQsT0FBTyxnQkFBZ0IsQ0FBQztJQUM1QixDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDO1lBQ0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxN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Q0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9BdXRoRXJyb3JFdmVudCwgT0F1dGhTZXJ2aWNlLCBPQXV0aFN1Y2Nlc3NFdmVudCwgVG9rZW5SZXNwb25zZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgQ3VpQWN0aXZpdHlUb2tlbkV4Y2hhbmdlQXBpU2VydmljZSwgQ3VpVG9rZW5FeGNoYW5nZVJlcXVlc3RCb2R5IH0gZnJvbSAnQGN1YnktdWkvYXBpJztcbmltcG9ydCB7IGZyb20sIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbmFic3RyYWN0IGNsYXNzIEN1aVRva2VuIGV4dGVuZHMgT0F1dGhTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRva2VuRGF0YSA9IHNpZ25hbDx7IFtrZXk6IHN0cmluZ106IFRva2VuUmVzcG9uc2UgfT4oe30pO1xuXG4gICAgcHJvdGVjdGVkIGdldFRva2VuRGF0YUZyb21TdG9yZSh0b2tlbjogc3RyaW5nKTogVG9rZW5SZXNwb25zZSB7XG4gICAgICAgIGNvbnN0IHRva2VuRGF0YSA9IHRoaXMudG9rZW5EYXRhKClbdG9rZW5dO1xuXG4gICAgICAgIGlmICh0b2tlbkRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbkRhdGE7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50VG9rZW5EYXRhID0gdGhpcy5wYXJzZVRva2VuKHRva2VuKTtcblxuICAgICAgICB0aGlzLnRva2VuRGF0YS5zZXQoeyBbdG9rZW5dOiBjdXJyZW50VG9rZW5EYXRhIH0pO1xuXG4gICAgICAgIHJldHVybiBjdXJyZW50VG9rZW5EYXRhO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGFyc2VUb2tlbih0b2tlbjogc3RyaW5nKTogVG9rZW5SZXNwb25zZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBiYXNlNjRVcmwgPSB0b2tlbi5zcGxpdCgnLicpWzFdO1xuICAgICAgICAgICAgY29uc3QgYmFzZTY0ID0gYmFzZTY0VXJsLnJlcGxhY2UoLy0vZywgJysnKS5yZXBsYWNlKC9fL2csICcvJyk7XG5cbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGF0b2IoYmFzZTY0KSk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHRva2VuJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDdWlUb2tlbkJhc2UgZXh0ZW5kcyBDdWlUb2tlbiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eVRva2VuRXhjaGFuZ2VBcGlTZXJ2aWNlID0gaW5qZWN0KEN1aUFjdGl2aXR5VG9rZW5FeGNoYW5nZUFwaVNlcnZpY2UpO1xuXG4gICAgcHVibGljIGdldEFjY2Vzc1Rva2VuRGF0YTxUIGV4dGVuZHMgVG9rZW5SZXNwb25zZSA9IFRva2VuUmVzcG9uc2U+KCk6IFQge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuZ2V0QWNjZXNzVG9rZW4oKTtcblxuICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGFjY2VzcyB0b2tlbiBmb3VuZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VG9rZW5EYXRhRnJvbVN0b3JlKHRva2VuKSBhcyBUO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGVja0lzVG9rZW5FeHBpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuZ2V0QWNjZXNzVG9rZW4oKTtcblxuICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGV4cGlyZWRUaW1lID0gdGhpcy5nZXRBY2Nlc3NUb2tlbkV4cGlyYXRpb24oKTtcbiAgICAgICAgY29uc3QgY3VycmVudFRpbWUgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgIHJldHVybiBjdXJyZW50VGltZSA+PSBleHBpcmVkVGltZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhjaGFuZ2VUb2tlbihwYXJhbXM6IEN1aVRva2VuRXhjaGFuZ2VSZXF1ZXN0Qm9keSk6IFByb21pc2U8VG9rZW5SZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT5cbiAgICAgICAgICAgIHRoaXMuYWN0aXZpdHlUb2tlbkV4Y2hhbmdlQXBpU2VydmljZVxuICAgICAgICAgICAgICAgIC50b2tlbkV4Y2hhbmdlKHBhcmFtcylcbiAgICAgICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAoKHRva2VuUmVzcG9uc2UpID0+IHRoaXMuc2V0SWRUb2tlbih0b2tlblJlc3BvbnNlKSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgICAgIG5leHQ6ICh0b2tlblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFRva2VuUmVzcG9uc2UodG9rZW5SZXNwb25zZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUodG9rZW5SZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdFcnJvciBleGNoYW5naW5nIHRva2VuJywgZXJyb3IpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBvdmVycmlkZSByZWZyZXNoVG9rZW4gd2l0aCBjdXN0b20gcmVmcmVzaCB0b2tlbiByZXF1ZXN0IHRvIHRoZSBiYWNrZW5kXG4gICAgcHVibGljIG92ZXJyaWRlIHJlZnJlc2hUb2tlbigpOiBQcm9taXNlPFRva2VuUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+XG4gICAgICAgICAgICB0aGlzLmFjdGl2aXR5VG9rZW5FeGNoYW5nZUFwaVNlcnZpY2VcbiAgICAgICAgICAgICAgICAudG9rZW5SZWZyZXNoKClcbiAgICAgICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAoKHRva2VuUmVzcG9uc2UpID0+IHRoaXMuc2V0SWRUb2tlbih0b2tlblJlc3BvbnNlKSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgICAgIG5leHQ6ICh0b2tlblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFRva2VuUmVzcG9uc2UodG9rZW5SZXNwb25zZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUodG9rZW5SZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdFcnJvciByZWZyZXNoaW5nIHRva2VuJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudHNTdWJqZWN0Lm5leHQobmV3IE9BdXRoRXJyb3JFdmVudCgndG9rZW5fcmVmcmVzaF9lcnJvcicsIGVycm9yKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VG9rZW5SZXNwb25zZSh0b2tlblJlc3BvbnNlOiBUb2tlblJlc3BvbnNlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV4cGlyZXNJbiA9IHRva2VuUmVzcG9uc2UuZXhwaXJlc19pbiB8fCB0aGlzLmZhbGxiYWNrQWNjZXNzVG9rZW5FeHBpcmF0aW9uVGltZUluU2VjITtcblxuICAgICAgICB0aGlzLmRlYnVnKCd0b2tlblJlc3BvbnNlJywgdG9rZW5SZXNwb25zZSk7XG4gICAgICAgIHRoaXMuc3RvcmVBY2Nlc3NUb2tlblJlc3BvbnNlKFxuICAgICAgICAgICAgdG9rZW5SZXNwb25zZS5hY2Nlc3NfdG9rZW4sXG4gICAgICAgICAgICB0b2tlblJlc3BvbnNlLnJlZnJlc2hfdG9rZW4sXG4gICAgICAgICAgICBleHBpcmVzSW4sXG4gICAgICAgICAgICB0b2tlblJlc3BvbnNlLnNjb3BlXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5ldmVudHNTdWJqZWN0Lm5leHQobmV3IE9BdXRoU3VjY2Vzc0V2ZW50KCd0b2tlbl9yZWNlaXZlZCcpKTtcbiAgICAgICAgdGhpcy5ldmVudHNTdWJqZWN0Lm5leHQobmV3IE9BdXRoU3VjY2Vzc0V2ZW50KCd0b2tlbl9yZWZyZXNoZWQnKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRJZFRva2VuKHRva2VuUmVzcG9uc2U6IFRva2VuUmVzcG9uc2UpOiBPYnNlcnZhYmxlPFRva2VuUmVzcG9uc2U+IHtcbiAgICAgICAgaWYgKCF0aGlzLm9pZGMgfHwgIXRva2VuUmVzcG9uc2UuaWRfdG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0b2tlblJlc3BvbnNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMucHJvY2Vzc0lkVG9rZW4odG9rZW5SZXNwb25zZS5pZF90b2tlbiwgdG9rZW5SZXNwb25zZS5hY2Nlc3NfdG9rZW4sIHRydWUpKS5waXBlKFxuICAgICAgICAgICAgdGFwKChyZXN1bHQpID0+IHRoaXMuc3RvcmVJZFRva2VuKHJlc3VsdCkpLFxuICAgICAgICAgICAgbWFwKCgpID0+IHRva2VuUmVzcG9uc2UpXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc2VydmljZXMvdG9rZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsNEJBQTRCLEVBQStCLE1BQU0sY0FBYyxDQUFDO0FBRXpGLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkYsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFckQsTUFBZSxRQUFTLFNBQVEsWUFBWTtJQUE1Qzs7UUFDcUIsY0FBUyxHQUFHLE1BQU0sQ0FBbUMsRUFBRSxDQUFDLENBQUM7SUEwQjlFLENBQUM7SUF4QmEscUJBQXFCLENBQUMsS0FBYTtRQUN6QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNaLE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUVsRCxPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUM7WUFDRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE1B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SSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEMsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMzRixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDMUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUMzQixDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEN1aUV4Y2hhbmdlQ29udGV4dEFwaVNlcnZpY2UsIEN1aVRva2VuRXhjaGFuZ2VSZXF1ZXN0Qm9keSB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XG5pbXBvcnQgdHlwZSB7IFRva2VuUmVzcG9uc2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IE9BdXRoRXJyb3JFdmVudCwgT0F1dGhTZXJ2aWNlLCBPQXV0aFN1Y2Nlc3NFdmVudCB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmcm9tLCBtYXAsIG9mLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5hYnN0cmFjdCBjbGFzcyBDdWlUb2tlbiBleHRlbmRzIE9BdXRoU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2tlbkRhdGEgPSBzaWduYWw8eyBba2V5OiBzdHJpbmddOiBUb2tlblJlc3BvbnNlIH0+KHt9KTtcblxuICAgIHByb3RlY3RlZCBnZXRUb2tlbkRhdGFGcm9tU3RvcmUodG9rZW46IHN0cmluZyk6IFRva2VuUmVzcG9uc2Uge1xuICAgICAgICBjb25zdCB0b2tlbkRhdGEgPSB0aGlzLnRva2VuRGF0YSgpW3Rva2VuXTtcblxuICAgICAgICBpZiAodG9rZW5EYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9rZW5EYXRhO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudFRva2VuRGF0YSA9IHRoaXMucGFyc2VUb2tlbih0b2tlbik7XG5cbiAgICAgICAgdGhpcy50b2tlbkRhdGEuc2V0KHsgW3Rva2VuXTogY3VycmVudFRva2VuRGF0YSB9KTtcblxuICAgICAgICByZXR1cm4gY3VycmVudFRva2VuRGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlVG9rZW4odG9rZW46IHN0cmluZyk6IFRva2VuUmVzcG9uc2Uge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgYmFzZTY0VXJsID0gdG9rZW4uc3BsaXQoJy4nKVsxXTtcbiAgICAgICAgICAgIGNvbnN0IGJhc2U2NCA9IGJhc2U2NFVybC5yZXBsYWNlKC8tL2csICcrJykucmVwbGFjZSgvXy9nLCAnLycpO1xuXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShhdG9iKGJhc2U2NCkpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB0b2tlbicpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3VpVG9rZW5CYXNlIGV4dGVuZHMgQ3VpVG9rZW4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXhjaGFuZ2VDb250ZXh0QXBpU2VydmljZSA9IGluamVjdChDdWlFeGNoYW5nZUNvbnRleHRBcGlTZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgRVhDSEFOR0VfVE9LRU5fVkFMVUUgPSAnZW1wbG95ZWVfc2Vzc2lvbic7XG5cbiAgICBwdWJsaWMgZ2V0QWNjZXNzVG9rZW5EYXRhPFQgZXh0ZW5kcyBUb2tlblJlc3BvbnNlID0gVG9rZW5SZXNwb25zZT4oKTogVCB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5nZXRBY2Nlc3NUb2tlbigpO1xuXG4gICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gYWNjZXNzIHRva2VuIGZvdW5kJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRUb2tlbkRhdGFGcm9tU3RvcmUodG9rZW4pIGFzIFQ7XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrSXNUb2tlbkV4cGlyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5nZXRBY2Nlc3NUb2tlbigpO1xuXG4gICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXhwaXJlZFRpbWUgPSB0aGlzLmdldEFjY2Vzc1Rva2VuRXhwaXJhdGlvbigpO1xuICAgICAgICBjb25zdCBjdXJyZW50VGltZSA9IERhdGUubm93KCk7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnRUaW1lID49IGV4cGlyZWRUaW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBleGNoYW5nZVRva2VuKHBhcmFtczogQ3VpVG9rZW5FeGNoYW5nZVJlcXVlc3RCb2R5KTogUHJvbWlzZTxUb2tlblJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PlxuICAgICAgICAgICAgdGhpcy5leGNoYW5nZUNvbnRleHRBcGlTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmV4Y2hhbmdlKHBhcmFtcylcbiAgICAgICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAoKHRva2VuUmVzcG9uc2UpID0+IHRoaXMuc2V0SWRUb2tlbih0b2tlblJlc3BvbnNlKSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgICAgIG5leHQ6ICh0b2tlblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFRva2VuUmVzcG9uc2UodG9rZW5SZXNwb25zZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUodG9rZW5SZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdFcnJvciBleGNoYW5naW5nIHRva2VuJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudHNTdWJqZWN0Lm5leHQobmV3IE9BdXRoRXJyb3JFdmVudCgndG9rZW5fcmVmcmVzaF9lcnJvcicsIGVycm9yKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIFRPRE86IG92ZXJyaWRlIHJlZnJlc2hUb2tlbiB3aXRoIGN1c3RvbSByZWZyZXNoIHRva2VuIHJlcXVlc3QgdG8gdGhlIGJhY2tlbmRcbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVmcmVzaFRva2VuKCk6IFByb21pc2U8VG9rZW5SZXNwb25zZT4ge1xuICAgICAgICBjb25zdCB0b2tlbkRhdGEgPSB0aGlzLmdldEFjY2Vzc1Rva2VuRGF0YSgpO1xuXG4gICAgICAgIGlmICh0aGlzLkVYQ0hBTkdFX1RPS0VOX1ZBTFVFIGluIHRva2VuRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVmcmVzaEV4Y2hhbmdlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VwZXIucmVmcmVzaFRva2VuKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZnJlc2hFeGNoYW5nZWRUb2tlbigpOiBQcm9taXNlPFRva2VuUmVzcG9uc2U+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+XG4gICAgICAgICAgICB0aGlzLmV4Y2hhbmdlQ29udGV4dEFwaVNlcnZpY2VcbiAgICAgICAgICAgICAgICAucmVmcmVzaCh0aGlzLmdldFJlZnJlc2hUb2tlbigpKVxuICAgICAgICAgICAgICAgIC5waXBlKHN3aXRjaE1hcCgodG9rZW5SZXNwb25zZSkgPT4gdGhpcy5zZXRJZFRva2VuKHRva2VuUmVzcG9uc2UpKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogKHRva2VuUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VG9rZW5SZXNwb25zZSh0b2tlblJlc3BvbnNlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0b2tlblJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0Vycm9yIHJlZnJlc2hpbmcgdG9rZW4nLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmV2ZW50c1N1YmplY3QubmV4dChuZXcgT0F1dGhFcnJvckV2ZW50KCd0b2tlbl9yZWZyZXNoX2Vycm9yJywgZXJyb3IpKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRUb2tlblJlc3BvbnNlKHRva2VuUmVzcG9uc2U6IFRva2VuUmVzcG9uc2UpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXhwaXJlc0luID0gdG9rZW5SZXNwb25zZS5leHBpcmVzX2luIHx8IHRoaXMuZmFsbGJhY2tBY2Nlc3NUb2tlbkV4cGlyYXRpb25UaW1lSW5TZWMhO1xuXG4gICAgICAgIHRoaXMuZGVidWcoJ3Rva2VuUmVzcG9uc2UnLCB0b2tlblJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5zdG9yZUFjY2Vzc1Rva2VuUmVzcG9uc2UoXG4gICAgICAgICAgICB0b2tlblJlc3BvbnNlLmFjY2Vzc190b2tlbixcbiAgICAgICAgICAgIHRva2VuUmVzcG9uc2UucmVmcmVzaF90b2tlbixcbiAgICAgICAgICAgIGV4cGlyZXNJbixcbiAgICAgICAgICAgIHRva2VuUmVzcG9uc2Uuc2NvcGVcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmV2ZW50c1N1YmplY3QubmV4dChuZXcgT0F1dGhTdWNjZXNzRXZlbnQoJ3Rva2VuX3JlY2VpdmVkJykpO1xuICAgICAgICB0aGlzLmV2ZW50c1N1YmplY3QubmV4dChuZXcgT0F1dGhTdWNjZXNzRXZlbnQoJ3Rva2VuX3JlZnJlc2hlZCcpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldElkVG9rZW4odG9rZW5SZXNwb25zZTogVG9rZW5SZXNwb25zZSk6IE9ic2VydmFibGU8VG9rZW5SZXNwb25zZT4ge1xuICAgICAgICBpZiAoIXRoaXMub2lkYyB8fCAhdG9rZW5SZXNwb25zZS5pZF90b2tlbikge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRva2VuUmVzcG9uc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5wcm9jZXNzSWRUb2tlbih0b2tlblJlc3BvbnNlLmlkX3Rva2VuLCB0b2tlblJlc3BvbnNlLmFjY2Vzc190b2tlbiwgdHJ1ZSkpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHJlc3VsdCkgPT4gdGhpcy5zdG9yZUlkVG9rZW4ocmVzdWx0KSksXG4gICAgICAgICAgICBtYXAoKCkgPT4gdG9rZW5SZXNwb25zZSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -9,7 +9,7 @@ import { cuiIsIcon, CUI_ICONS } from '@cuby-ui/icons';
|
|
|
9
9
|
import { BehaviorSubject, takeUntil, Observable, merge, distinctUntilChanged, startWith, map, finalize, switchMap, of, from, tap, filter, timer, Subject, delay, repeat, takeWhile, fromEvent, debounce, skip, take, forkJoin, throttleTime, concatMap, toArray, catchError, throwError, pairwise, debounceTime } from 'rxjs';
|
|
10
10
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
11
11
|
import { OAuthService, OAuthErrorEvent, OAuthSuccessEvent, OAuthInfoEvent, provideOAuthClient } from 'angular-oauth2-oidc';
|
|
12
|
-
import {
|
|
12
|
+
import { CuiExchangeContextApiService, CuiTreeStructNavigatorApiService, CuiFrameApiService, CuiNodeChecklistApiService, CuiTreeStructApiService } from '@cuby-ui/api';
|
|
13
13
|
import { trigger, transition, query, animateChild, style, animate, stagger } from '@angular/animations';
|
|
14
14
|
import * as i2 from '@taiga-ui/polymorpheus';
|
|
15
15
|
import { PolymorpheusOutlet, PolymorpheusTemplate, PolymorpheusComponent, injectContext } from '@taiga-ui/polymorpheus';
|
|
@@ -889,7 +889,8 @@ class CuiToken extends OAuthService {
|
|
|
889
889
|
class CuiTokenBase extends CuiToken {
|
|
890
890
|
constructor() {
|
|
891
891
|
super(...arguments);
|
|
892
|
-
this.
|
|
892
|
+
this.exchangeContextApiService = inject(CuiExchangeContextApiService);
|
|
893
|
+
this.EXCHANGE_TOKEN_VALUE = 'employee_session';
|
|
893
894
|
}
|
|
894
895
|
getAccessTokenData() {
|
|
895
896
|
const token = this.getAccessToken();
|
|
@@ -908,8 +909,8 @@ class CuiTokenBase extends CuiToken {
|
|
|
908
909
|
return currentTime >= expiredTime;
|
|
909
910
|
}
|
|
910
911
|
exchangeToken(params) {
|
|
911
|
-
return new Promise((resolve, reject) => this.
|
|
912
|
-
.
|
|
912
|
+
return new Promise((resolve, reject) => this.exchangeContextApiService
|
|
913
|
+
.exchange(params)
|
|
913
914
|
.pipe(switchMap((tokenResponse) => this.setIdToken(tokenResponse)))
|
|
914
915
|
.subscribe({
|
|
915
916
|
next: (tokenResponse) => {
|
|
@@ -918,14 +919,22 @@ class CuiTokenBase extends CuiToken {
|
|
|
918
919
|
},
|
|
919
920
|
error: (error) => {
|
|
920
921
|
this.logger.error('Error exchanging token', error);
|
|
922
|
+
this.eventsSubject.next(new OAuthErrorEvent('token_refresh_error', error));
|
|
921
923
|
reject(error);
|
|
922
924
|
}
|
|
923
925
|
}));
|
|
924
926
|
}
|
|
925
927
|
// TODO: override refreshToken with custom refresh token request to the backend
|
|
926
928
|
refreshToken() {
|
|
927
|
-
|
|
928
|
-
|
|
929
|
+
const tokenData = this.getAccessTokenData();
|
|
930
|
+
if (this.EXCHANGE_TOKEN_VALUE in tokenData) {
|
|
931
|
+
return this.refreshExchangedToken();
|
|
932
|
+
}
|
|
933
|
+
return super.refreshToken();
|
|
934
|
+
}
|
|
935
|
+
refreshExchangedToken() {
|
|
936
|
+
return new Promise((resolve, reject) => this.exchangeContextApiService
|
|
937
|
+
.refresh(this.getRefreshToken())
|
|
929
938
|
.pipe(switchMap((tokenResponse) => this.setIdToken(tokenResponse)))
|
|
930
939
|
.subscribe({
|
|
931
940
|
next: (tokenResponse) => {
|