@arsedizioni/ars-utils 20.2.13 → 20.2.14
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.
- package/clipper.common/index.d.ts +9 -5
- package/clipper.ui/index.d.ts +1 -1
- package/core/index.d.ts +1 -0
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs +34 -27
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-core.mjs.map +1 -1
- package/package.json +9 -9
- package/ui.application/index.d.ts +1 -1
|
@@ -197,7 +197,6 @@ interface ClipperLoginInfo {
|
|
|
197
197
|
context: ClipperUserInfo;
|
|
198
198
|
complianceContext?: any;
|
|
199
199
|
channels?: ClipperChannelSettings[];
|
|
200
|
-
credentials?: string;
|
|
201
200
|
oauth?: LoginOAuthType;
|
|
202
201
|
}
|
|
203
202
|
declare class ClipperSearchParams {
|
|
@@ -1050,14 +1049,18 @@ declare class ClipperService implements OnDestroy {
|
|
|
1050
1049
|
*/
|
|
1051
1050
|
private setToken;
|
|
1052
1051
|
/**
|
|
1053
|
-
* Return current
|
|
1052
|
+
* Return current auth token
|
|
1054
1053
|
* @param refresh: true to get the refresh token. Default is false.
|
|
1055
1054
|
*/
|
|
1056
|
-
|
|
1055
|
+
getAuthToken(refresh?: boolean): string;
|
|
1057
1056
|
/**
|
|
1058
1057
|
* Get the two form factor authentication token
|
|
1059
1058
|
*/
|
|
1060
|
-
|
|
1059
|
+
getRememberToken(): string | null;
|
|
1060
|
+
/**
|
|
1061
|
+
* Get the two form factor authentication token
|
|
1062
|
+
*/
|
|
1063
|
+
getMfaToken(): string | null;
|
|
1061
1064
|
/**
|
|
1062
1065
|
* Store context
|
|
1063
1066
|
*/
|
|
@@ -1100,8 +1103,9 @@ declare class ClipperService implements OnDestroy {
|
|
|
1100
1103
|
/**
|
|
1101
1104
|
* Confirm MFA procedure
|
|
1102
1105
|
* @param code: the confirm code
|
|
1106
|
+
* @param remember: true to remember credentials. Default is false.
|
|
1103
1107
|
*/
|
|
1104
|
-
confirmIdentity(code: string): rxjs.Observable<ApiResult<ClipperLoginResult>>;
|
|
1108
|
+
confirmIdentity(code: string, remember?: boolean): rxjs.Observable<ApiResult<ClipperLoginResult>>;
|
|
1105
1109
|
/**
|
|
1106
1110
|
* Perform logout
|
|
1107
1111
|
*/
|
package/clipper.ui/index.d.ts
CHANGED
|
@@ -1039,7 +1039,7 @@ declare class ClipperDocumentMenuComponent implements OnInit, OnDestroy {
|
|
|
1039
1039
|
private changeDetector;
|
|
1040
1040
|
private clipperService;
|
|
1041
1041
|
readonly useSelections: _angular_core.InputSignal<boolean>;
|
|
1042
|
-
readonly selectionSource: _angular_core.InputSignal<"
|
|
1042
|
+
readonly selectionSource: _angular_core.InputSignal<"selection" | "bag" | "none">;
|
|
1043
1043
|
protected selection: () => ClipperDocumentInfo[];
|
|
1044
1044
|
readonly parent: _angular_core.InputSignal<ClipperSearchResultManager>;
|
|
1045
1045
|
readonly item: _angular_core.InputSignal<ClipperDocumentInfo>;
|
package/core/index.d.ts
CHANGED
|
@@ -2131,7 +2131,7 @@ class ClipperService {
|
|
|
2131
2131
|
* Get access token expiration date
|
|
2132
2132
|
*/
|
|
2133
2133
|
getTokenExpirationDate() {
|
|
2134
|
-
const token = this.
|
|
2134
|
+
const token = this.getAuthToken();
|
|
2135
2135
|
if (!token)
|
|
2136
2136
|
return undefined;
|
|
2137
2137
|
// Parse json object from base64 encoded jwt token
|
|
@@ -2180,16 +2180,23 @@ class ClipperService {
|
|
|
2180
2180
|
* @param value : the login result
|
|
2181
2181
|
*/
|
|
2182
2182
|
setToken(value) {
|
|
2183
|
-
sessionStorage.setItem('
|
|
2184
|
-
|
|
2185
|
-
|
|
2183
|
+
sessionStorage.setItem('clipper_auth', value.token);
|
|
2184
|
+
if (value.refreshToken) {
|
|
2185
|
+
sessionStorage.setItem('clipper_refresh', value.refreshToken);
|
|
2186
|
+
}
|
|
2187
|
+
if (value.rememberToken) {
|
|
2188
|
+
localStorage.setItem('clipper_remember', value.rememberToken);
|
|
2189
|
+
}
|
|
2190
|
+
if (value.mfaToken) {
|
|
2191
|
+
localStorage.setItem('clipper_mfa', value.mfaToken);
|
|
2192
|
+
}
|
|
2186
2193
|
}
|
|
2187
2194
|
/**
|
|
2188
|
-
* Return current
|
|
2195
|
+
* Return current auth token
|
|
2189
2196
|
* @param refresh: true to get the refresh token. Default is false.
|
|
2190
2197
|
*/
|
|
2191
|
-
|
|
2192
|
-
let token = sessionStorage.getItem(refresh ? '
|
|
2198
|
+
getAuthToken(refresh = false) {
|
|
2199
|
+
let token = sessionStorage.getItem(refresh ? 'clipper_refresh' : 'clipper_auth');
|
|
2193
2200
|
if (token && token[0] === '"') {
|
|
2194
2201
|
return token.substring(1, token.length - 1);
|
|
2195
2202
|
}
|
|
@@ -2198,7 +2205,13 @@ class ClipperService {
|
|
|
2198
2205
|
/**
|
|
2199
2206
|
* Get the two form factor authentication token
|
|
2200
2207
|
*/
|
|
2201
|
-
|
|
2208
|
+
getRememberToken() {
|
|
2209
|
+
return localStorage.getItem("clipper_remember");
|
|
2210
|
+
}
|
|
2211
|
+
/**
|
|
2212
|
+
* Get the two form factor authentication token
|
|
2213
|
+
*/
|
|
2214
|
+
getMfaToken() {
|
|
2202
2215
|
return localStorage.getItem("clipper_mfa");
|
|
2203
2216
|
}
|
|
2204
2217
|
/**
|
|
@@ -2285,19 +2298,21 @@ class ClipperService {
|
|
|
2285
2298
|
.post(this._serviceUri + '/login2', {
|
|
2286
2299
|
user: oauth ? null : email,
|
|
2287
2300
|
password: oauth ? null : password,
|
|
2301
|
+
remember: remember,
|
|
2288
2302
|
clientId: localStorage.getItem("clipper_client_id"),
|
|
2289
2303
|
OAUTH: oauth
|
|
2290
2304
|
}, {
|
|
2291
2305
|
headers: !oauth || !oauthAccessToken
|
|
2292
2306
|
? new HttpHeaders()
|
|
2293
|
-
.set("X-MFA", this.
|
|
2307
|
+
.set("X-MFA", this.getMfaToken() ?? '')
|
|
2294
2308
|
: new HttpHeaders()
|
|
2295
|
-
.set("Authorization", oauthAccessToken)
|
|
2309
|
+
.set("Authorization", 'Bearer ' + oauthAccessToken)
|
|
2296
2310
|
})
|
|
2297
2311
|
.pipe(catchError(err => {
|
|
2298
2312
|
this.loggingIn.set(false);
|
|
2299
2313
|
localStorage.removeItem('clipper_context');
|
|
2300
2314
|
localStorage.removeItem('clipper_mfa');
|
|
2315
|
+
localStorage.removeItem('clipper_remember');
|
|
2301
2316
|
return throwError(() => err);
|
|
2302
2317
|
}), map((r) => {
|
|
2303
2318
|
if (r.success) {
|
|
@@ -2305,16 +2320,6 @@ class ClipperService {
|
|
|
2305
2320
|
this._loginInfo.context = r.value.context;
|
|
2306
2321
|
this._loginInfo.channels = r.value.settings;
|
|
2307
2322
|
this._loginInfo.oauth = oauth;
|
|
2308
|
-
if (!this._loginInfo.oauth) {
|
|
2309
|
-
this._loginInfo.credentials = SystemUtils.cipher(JSON.stringify({
|
|
2310
|
-
email: email,
|
|
2311
|
-
password: password,
|
|
2312
|
-
remember: remember
|
|
2313
|
-
}), r.value.context?.userId?.toString() ?? '');
|
|
2314
|
-
}
|
|
2315
|
-
else {
|
|
2316
|
-
this._loginInfo.credentials = undefined;
|
|
2317
|
-
}
|
|
2318
2323
|
if (!oauth && r.value.requiresMFA) {
|
|
2319
2324
|
// Notify login is pending
|
|
2320
2325
|
this.broadcastService.sendMessage(ClipperMessages.LOGIN_PENDING);
|
|
@@ -2346,13 +2351,15 @@ class ClipperService {
|
|
|
2346
2351
|
/**
|
|
2347
2352
|
* Confirm MFA procedure
|
|
2348
2353
|
* @param code: the confirm code
|
|
2354
|
+
* @param remember: true to remember credentials. Default is false.
|
|
2349
2355
|
*/
|
|
2350
|
-
confirmIdentity(code) {
|
|
2356
|
+
confirmIdentity(code, remember = false) {
|
|
2351
2357
|
return this.httpClient
|
|
2352
|
-
.post(this._serviceUri + '/login/confirm/' + code, {})
|
|
2358
|
+
.post(this._serviceUri + '/login/confirm/' + code + '/?remember=' + remember, {})
|
|
2353
2359
|
.pipe(catchError((err) => {
|
|
2354
2360
|
localStorage.removeItem('clipper_context');
|
|
2355
2361
|
localStorage.removeItem('clipper_mfa');
|
|
2362
|
+
localStorage.removeItem('clipper_remember');
|
|
2356
2363
|
this.loggingIn.set(false);
|
|
2357
2364
|
return throwError(() => err);
|
|
2358
2365
|
}), map((r) => {
|
|
@@ -2373,6 +2380,7 @@ class ClipperService {
|
|
|
2373
2380
|
// Remove credentials
|
|
2374
2381
|
localStorage.removeItem('clipper_context');
|
|
2375
2382
|
localStorage.removeItem('clipper_mfa');
|
|
2383
|
+
localStorage.removeItem('clipper_remember');
|
|
2376
2384
|
}), catchError((_e) => {
|
|
2377
2385
|
return of([]);
|
|
2378
2386
|
}));
|
|
@@ -2396,8 +2404,8 @@ class ClipperService {
|
|
|
2396
2404
|
*/
|
|
2397
2405
|
clear(clearOAuthToken = false) {
|
|
2398
2406
|
// Clear local storage
|
|
2399
|
-
sessionStorage.removeItem('
|
|
2400
|
-
sessionStorage.removeItem('
|
|
2407
|
+
sessionStorage.removeItem('clipper_auth');
|
|
2408
|
+
sessionStorage.removeItem('clipper_refresh');
|
|
2401
2409
|
sessionStorage.removeItem('clipper_oauth');
|
|
2402
2410
|
if (clearOAuthToken) {
|
|
2403
2411
|
sessionStorage.removeItem('clipper_oauth_token');
|
|
@@ -2409,7 +2417,7 @@ class ClipperService {
|
|
|
2409
2417
|
* Perform token refresh
|
|
2410
2418
|
*/
|
|
2411
2419
|
refresh() {
|
|
2412
|
-
return this.httpClient.get(this._serviceUri + '/refresh2/?token=' + this.
|
|
2420
|
+
return this.httpClient.get(this._serviceUri + '/refresh2/?token=' + this.getAuthToken(true)).pipe(map((r) => {
|
|
2413
2421
|
// Update token
|
|
2414
2422
|
this.setToken(r.value);
|
|
2415
2423
|
return r;
|
|
@@ -3217,12 +3225,11 @@ class ClipperAuthInterceptor {
|
|
|
3217
3225
|
if (request.url.startsWith(this.clipperService.serviceUri)) {
|
|
3218
3226
|
if (this.clipperService.loggedIn()) {
|
|
3219
3227
|
if (!token)
|
|
3220
|
-
token = this.clipperService.
|
|
3228
|
+
token = this.clipperService.getAuthToken();
|
|
3221
3229
|
if (token) {
|
|
3222
3230
|
return request.clone({
|
|
3223
3231
|
setHeaders: {
|
|
3224
3232
|
Authorization: 'Bearer ' + token,
|
|
3225
|
-
'X-MFA': this.clipperService.getMFAToken() ?? '',
|
|
3226
3233
|
'ngsw-bypass': 'ngsw-bypass'
|
|
3227
3234
|
},
|
|
3228
3235
|
});
|