@bitblit/ratchet-warden-common 6.1.160 → 6.1.168-alpha
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/lib/client/provider/warden-client-abstract-recent-login-provider.js +3 -0
- package/lib/client/provider/warden-client-abstract-recent-login-provider.js.map +1 -1
- package/lib/client/provider/warden-client-storage-based-logged-in-user-provider.d.ts +3 -3
- package/lib/client/provider/warden-client-storage-based-logged-in-user-provider.js.map +1 -1
- package/lib/client/provider/warden-client-transient-memory-logged-in-user-provider.d.ts +3 -3
- package/lib/client/provider/warden-client-transient-memory-logged-in-user-provider.js.map +1 -1
- package/lib/client/provider/warden-logged-in-user-provider.d.ts +3 -3
- package/lib/client/provider/warden-logged-in-user-wrapper.d.ts +4 -3
- package/lib/client/provider/warden-user-service-event-processing-provider.d.ts +3 -3
- package/lib/client/provider/warden-user-service-options.d.ts +3 -3
- package/lib/client/warden-client.d.ts +1 -1
- package/lib/client/warden-client.js +2 -3
- package/lib/client/warden-client.js.map +1 -1
- package/lib/client/warden-delegating-current-user-providing-user-service-event-processing-provider.d.ts +5 -5
- package/lib/client/warden-delegating-current-user-providing-user-service-event-processing-provider.js.map +1 -1
- package/lib/client/warden-user-service.d.ts +13 -13
- package/lib/client/warden-user-service.js +9 -9
- package/lib/client/warden-user-service.js.map +1 -1
- package/lib/common/command/create-account.d.ts +0 -1
- package/lib/common/model/warden-entry-common-data.d.ts +11 -0
- package/lib/common/model/warden-entry-common-data.js +2 -0
- package/lib/common/model/warden-entry-common-data.js.map +1 -0
- package/lib/common/model/warden-entry-metadata-type.d.ts +4 -0
- package/lib/common/model/warden-entry-metadata-type.js +6 -0
- package/lib/common/model/warden-entry-metadata-type.js.map +1 -0
- package/lib/common/model/warden-entry-metadata.d.ts +6 -0
- package/lib/common/model/warden-entry-metadata.js +2 -0
- package/lib/common/model/warden-entry-metadata.js.map +1 -0
- package/lib/common/model/warden-entry-summary.d.ts +3 -6
- package/lib/common/model/warden-entry.d.ts +4 -7
- package/lib/common/util/warden-utils.d.ts +15 -16
- package/lib/common/util/warden-utils.js +6 -15
- package/lib/common/util/warden-utils.js.map +1 -1
- package/package.json +3 -3
- package/src/client/provider/warden-client-abstract-recent-login-provider.ts +3 -0
- package/src/client/provider/warden-client-storage-based-logged-in-user-provider.ts +4 -4
- package/src/client/provider/warden-client-transient-memory-logged-in-user-provider.ts +4 -4
- package/src/client/provider/warden-logged-in-user-provider.ts +3 -3
- package/src/client/provider/warden-logged-in-user-wrapper.ts +4 -3
- package/src/client/provider/warden-user-service-event-processing-provider.ts +3 -3
- package/src/client/provider/warden-user-service-options.ts +3 -3
- package/src/client/warden-client.ts +2 -3
- package/src/client/warden-delegating-current-user-providing-user-service-event-processing-provider.ts +8 -8
- package/src/client/warden-user-service.spec.ts +4 -4
- package/src/client/warden-user-service.ts +48 -52
- package/src/common/command/create-account.ts +0 -1
- package/src/common/model/warden-entry-common-data.ts +13 -0
- package/src/common/model/warden-entry-metadata-type.ts +4 -0
- package/src/common/model/warden-entry-metadata.ts +7 -0
- package/src/common/model/warden-entry-summary.ts +3 -6
- package/src/common/model/warden-entry.ts +6 -7
- package/src/common/util/warden-utils.ts +19 -30
- package/lib/common/model/warden-jwt-token.d.ts +0 -8
- package/lib/common/model/warden-jwt-token.js +0 -2
- package/lib/common/model/warden-jwt-token.js.map +0 -1
- package/lib/common/model/warden-user-decoration.d.ts +0 -8
- package/lib/common/model/warden-user-decoration.js +0 -2
- package/lib/common/model/warden-user-decoration.js.map +0 -1
- package/src/common/model/warden-jwt-token.ts +0 -15
- package/src/common/model/warden-user-decoration.ts +0 -10
|
@@ -11,9 +11,9 @@ import { WardenWebAuthnEntry } from "../model/warden-web-authn-entry.js";
|
|
|
11
11
|
import { WardenWebAuthnEntrySummary } from "../model/warden-web-authn-entry-summary.js";
|
|
12
12
|
import { WardenLoggedInUserWrapper } from "../../client/provider/warden-logged-in-user-wrapper.js";
|
|
13
13
|
import { WardenLoginRequestType } from "../model/warden-login-request-type.ts";
|
|
14
|
-
import { WardenUserDecoration } from "../model/warden-user-decoration.ts";
|
|
15
14
|
import { BooleanRatchet } from "@bitblit/ratchet-common/lang/boolean-ratchet";
|
|
16
|
-
import {
|
|
15
|
+
import { WardenEntryMetadataType } from "../model/warden-entry-metadata-type.ts";
|
|
16
|
+
import { WardenEntryCommonData } from "../model/warden-entry-common-data.ts";
|
|
17
17
|
|
|
18
18
|
export class WardenUtils {
|
|
19
19
|
// Prevent instantiation
|
|
@@ -164,13 +164,16 @@ export class WardenUtils {
|
|
|
164
164
|
return !!value.match(/^[\\+]?[(]?[0-9]{3}[)]?[-\\s\\.]?[0-9]{3}[-\\s\\.]?[0-9]{4,6}$/im);
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
-
public static stripWardenEntryToSummary(we: WardenEntry): WardenEntrySummary {
|
|
167
|
+
public static stripWardenEntryToSummary(we: WardenEntry, metaTypes: WardenEntryMetadataType[] = [WardenEntryMetadataType.Shared]): WardenEntrySummary {
|
|
168
168
|
const rval: WardenEntrySummary = we
|
|
169
169
|
? {
|
|
170
170
|
userId: we.userId,
|
|
171
171
|
userLabel: we.userLabel,
|
|
172
172
|
contactMethods: we.contactMethods,
|
|
173
173
|
webAuthnAuthenticatorSummaries: (we?.webAuthnAuthenticators || []).map((s) => WardenUtils.stripWardenWebAuthnEntryToSummary(s)),
|
|
174
|
+
meta: (we?.meta ||[]).filter(w=>metaTypes.includes(w.type)),
|
|
175
|
+
globalRoleIds: we.globalRoleIds,
|
|
176
|
+
teamRoleMappings: we.teamRoleMappings
|
|
174
177
|
}
|
|
175
178
|
: null;
|
|
176
179
|
return rval;
|
|
@@ -188,38 +191,38 @@ export class WardenUtils {
|
|
|
188
191
|
return rval;
|
|
189
192
|
}
|
|
190
193
|
|
|
191
|
-
public static wrapperIsExpired(value: WardenLoggedInUserWrapper
|
|
192
|
-
const rval: boolean = value
|
|
194
|
+
public static wrapperIsExpired(value: WardenLoggedInUserWrapper): boolean {
|
|
195
|
+
const rval: boolean = value && value.expirationEpochSeconds < Date.now() / 1000;
|
|
193
196
|
return rval;
|
|
194
197
|
}
|
|
195
198
|
|
|
196
|
-
public static userHasGlobalRole(user:
|
|
199
|
+
public static userHasGlobalRole(user: WardenEntryCommonData, roleId: string): boolean {
|
|
197
200
|
return WardenUtils.userHasGlobalRoles(user, [roleId], true);
|
|
198
201
|
}
|
|
199
202
|
|
|
200
|
-
public static userHasRoleOnTeam(user:
|
|
203
|
+
public static userHasRoleOnTeam(user: WardenEntryCommonData,teamId: string, roleId: string): boolean {
|
|
201
204
|
return WardenUtils.userHasRolesOnTeam(user, teamId, [roleId], true);
|
|
202
205
|
}
|
|
203
206
|
|
|
204
|
-
public static userHasAtLeastOneGlobalRole(user:
|
|
207
|
+
public static userHasAtLeastOneGlobalRole(user: WardenEntryCommonData, roleIds: string[]): boolean {
|
|
205
208
|
return WardenUtils.userHasGlobalRoles(user, roleIds, false);
|
|
206
209
|
}
|
|
207
210
|
|
|
208
|
-
public static userHasAtLeastOneRoleOnTeam(user:
|
|
211
|
+
public static userHasAtLeastOneRoleOnTeam(user: WardenEntryCommonData, teamId: string, roleIds: string[]): boolean {
|
|
209
212
|
return WardenUtils.userHasRolesOnTeam(user, teamId, roleIds, false);
|
|
210
213
|
}
|
|
211
214
|
|
|
212
215
|
|
|
213
|
-
public static userHasAllGlobalRoles(user:
|
|
216
|
+
public static userHasAllGlobalRoles(user: WardenEntryCommonData, roleIds: string[]): boolean {
|
|
214
217
|
return WardenUtils.userHasGlobalRoles(user, roleIds, true);
|
|
215
218
|
}
|
|
216
219
|
|
|
217
|
-
public static userHasAllRolesOnTeam(user:
|
|
220
|
+
public static userHasAllRolesOnTeam(user: WardenEntryCommonData, teamId: string, roleIds: string[]): boolean {
|
|
218
221
|
return WardenUtils.userHasRolesOnTeam(user, teamId, roleIds, true);
|
|
219
222
|
}
|
|
220
223
|
|
|
221
224
|
|
|
222
|
-
public static userHasGlobalRoles(user:
|
|
225
|
+
public static userHasGlobalRoles(user: WardenEntryCommonData, inRoleIds: string[], combineWithAnd: boolean): boolean {
|
|
223
226
|
let rval: boolean = false;
|
|
224
227
|
const roleIds: string[] = inRoleIds ? inRoleIds.map(r=>StringRatchet.trimToNull(r)?.toLowerCase()) : null
|
|
225
228
|
if (user && roleIds && roleIds.length > 0) {
|
|
@@ -229,7 +232,7 @@ export class WardenUtils {
|
|
|
229
232
|
return rval;
|
|
230
233
|
}
|
|
231
234
|
|
|
232
|
-
public static userHasRolesOnTeam(user:
|
|
235
|
+
public static userHasRolesOnTeam(user: WardenEntryCommonData, inTeamId: string, inRoleIds: string[], combineWithAnd: boolean): boolean {
|
|
233
236
|
let rval: boolean = false;
|
|
234
237
|
const teamId: string = StringRatchet.trimToNull(inTeamId)?.toLowerCase();
|
|
235
238
|
const roleIds: string[] = inRoleIds ? inRoleIds.map(r=>StringRatchet.trimToNull(r)?.toLowerCase()) : null
|
|
@@ -242,11 +245,11 @@ export class WardenUtils {
|
|
|
242
245
|
}
|
|
243
246
|
|
|
244
247
|
// Just a synonym since that is how some people think
|
|
245
|
-
public static userIsTeamMember(user:
|
|
248
|
+
public static userIsTeamMember(user: WardenEntryCommonData, inTeamId: string): boolean {
|
|
246
249
|
return WardenUtils.userHasAnyRoleOnTeam(user, inTeamId);
|
|
247
250
|
}
|
|
248
251
|
|
|
249
|
-
public static userHasAnyRoleOnTeam(user:
|
|
252
|
+
public static userHasAnyRoleOnTeam(user: WardenEntryCommonData, inTeamId: string): boolean {
|
|
250
253
|
let rval: boolean = false;
|
|
251
254
|
const teamId: string = StringRatchet.trimToNull(inTeamId)?.toLowerCase();
|
|
252
255
|
if (user && teamId) {
|
|
@@ -256,7 +259,7 @@ export class WardenUtils {
|
|
|
256
259
|
return rval;
|
|
257
260
|
}
|
|
258
261
|
|
|
259
|
-
public static usersTeamMemberships(user:
|
|
262
|
+
public static usersTeamMemberships(user: WardenEntryCommonData): string[] {
|
|
260
263
|
let rval: string[] = [];
|
|
261
264
|
if (user) {
|
|
262
265
|
const s = new Set<string>(user.teamRoleMappings.map(s=>StringRatchet.trimToNull(s.teamId).toLowerCase()));
|
|
@@ -265,20 +268,6 @@ export class WardenUtils {
|
|
|
265
268
|
return rval;
|
|
266
269
|
}
|
|
267
270
|
|
|
268
|
-
public static wardenUserDecorationFromToken<T>(jwt: WardenJwtToken<T>): WardenUserDecoration<T> {
|
|
269
|
-
let rval: WardenUserDecoration<any> = null;
|
|
270
|
-
if (jwt) {
|
|
271
|
-
rval = {
|
|
272
|
-
userTokenData: jwt.user,
|
|
273
|
-
proxyUserTokenData: jwt.proxy,
|
|
274
|
-
userTokenExpirationSeconds: null,
|
|
275
|
-
|
|
276
|
-
globalRoleIds: jwt.globalRoleIds,
|
|
277
|
-
teamRoleMappings: jwt.teamRoleMappings
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
return rval;
|
|
281
|
-
}
|
|
282
271
|
|
|
283
272
|
|
|
284
273
|
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { CommonJwtToken } from '@bitblit/ratchet-common/jwt/common-jwt-token';
|
|
2
|
-
import { WardenEntrySummary } from './warden-entry-summary.js';
|
|
3
|
-
import { WardenTeamRoleMapping } from "./warden-team-role-mapping.ts";
|
|
4
|
-
export interface WardenJwtToken<T> extends CommonJwtToken<T> {
|
|
5
|
-
wardenData: WardenEntrySummary;
|
|
6
|
-
globalRoleIds: string[];
|
|
7
|
-
teamRoleMappings: WardenTeamRoleMapping[];
|
|
8
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"warden-jwt-token.js","sourceRoot":"","sources":["../../../src/common/model/warden-jwt-token.ts"],"names":[],"mappings":""}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { WardenTeamRoleMapping } from './warden-team-role-mapping.ts';
|
|
2
|
-
export interface WardenUserDecoration<T> {
|
|
3
|
-
userTokenData: T;
|
|
4
|
-
proxyUserTokenData: T;
|
|
5
|
-
userTokenExpirationSeconds: number;
|
|
6
|
-
globalRoleIds: string[];
|
|
7
|
-
teamRoleMappings: WardenTeamRoleMapping[];
|
|
8
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"warden-user-decoration.js","sourceRoot":"","sources":["../../../src/common/model/warden-user-decoration.ts"],"names":[],"mappings":""}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { CommonJwtToken } from '@bitblit/ratchet-common/jwt/common-jwt-token';
|
|
2
|
-
import { WardenEntrySummary } from './warden-entry-summary.js';
|
|
3
|
-
import { WardenTeamRoleMapping } from "./warden-team-role-mapping.ts";
|
|
4
|
-
|
|
5
|
-
export interface WardenJwtToken<T> extends CommonJwtToken<T> {
|
|
6
|
-
wardenData: WardenEntrySummary;
|
|
7
|
-
|
|
8
|
-
// This is built using a combo of the user data that warden tracks, and that the decorator tracks
|
|
9
|
-
// Decorator output goes into the user and proxy fields from commonJwtToken, plus the
|
|
10
|
-
// fields below
|
|
11
|
-
|
|
12
|
-
globalRoleIds: string[];
|
|
13
|
-
teamRoleMappings: WardenTeamRoleMapping[];
|
|
14
|
-
|
|
15
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { WardenTeamRoleMapping } from './warden-team-role-mapping.ts';
|
|
2
|
-
|
|
3
|
-
export interface WardenUserDecoration<T> {
|
|
4
|
-
userTokenData: T;
|
|
5
|
-
proxyUserTokenData: T;
|
|
6
|
-
userTokenExpirationSeconds: number;
|
|
7
|
-
|
|
8
|
-
globalRoleIds: string[];
|
|
9
|
-
teamRoleMappings: WardenTeamRoleMapping[];
|
|
10
|
-
}
|