@frontegg/redux-store 7.84.0-alpha.0 → 7.84.0
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/auth/SignUpState/actions.d.ts +1 -0
- package/auth/SignUpState/actions.js +3 -79
- package/auth/SignUpState/state.js +0 -4
- package/auth/TeamState/actions/invitation-link.actions.js +6 -6
- package/auth/TeamState/actions/users.actions.js +12 -1
- package/auth/TeamState/interfaces.d.ts +1 -0
- package/auth/helpers.js +2 -8
- package/auth/interfaces.d.ts +1 -2
- package/auth/interfaces.js +0 -1
- package/index.js +1 -1
- package/mocks/auth-mocks/signUpActions.mocks.d.ts +1 -0
- package/node/auth/SignUpState/actions.js +3 -79
- package/node/auth/SignUpState/state.js +0 -4
- package/node/auth/TeamState/actions/invitation-link.actions.js +6 -6
- package/node/auth/TeamState/actions/users.actions.js +12 -1
- package/node/auth/helpers.js +2 -8
- package/node/auth/interfaces.js +0 -1
- package/node/index.js +1 -1
- package/node/toolkit/index.js +7 -0
- package/package.json +2 -2
- package/toolkit/index.d.ts +1 -1
- package/toolkit/index.js +1 -1
|
@@ -6,6 +6,7 @@ declare const _default: (store: FronteggState, api: RestApi, sharedActions: Shar
|
|
|
6
6
|
resetSignUpState: () => void;
|
|
7
7
|
resetSignUpStateSoft: () => void;
|
|
8
8
|
signUpUser: (_payload: ISignUpUserPayload) => Promise<void>;
|
|
9
|
+
signUpUserWithPhoneNumber: (_payload: ISignUpUserPayload) => Promise<void>;
|
|
9
10
|
loadAllowSignUps: (payload?: WithCallback<WithRetryConfig<{}>, IVendorConfig>) => Promise<void>;
|
|
10
11
|
loadSignUpStrategies: () => Promise<void>;
|
|
11
12
|
};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
const _excluded = ["events", "url"],
|
|
4
|
-
_excluded2 = ["events", "url"]
|
|
5
|
-
_excluded3 = ["events", "url"];
|
|
4
|
+
_excluded2 = ["events", "url"];
|
|
6
5
|
import { SignUpStage } from './interfaces';
|
|
7
6
|
import { deepResetState, errorHandler, retryIfNeeded } from '../../helpers';
|
|
8
7
|
import { initialState } from './state';
|
|
@@ -115,83 +114,11 @@ export default ((store, api, sharedActions) => {
|
|
|
115
114
|
});
|
|
116
115
|
}
|
|
117
116
|
};
|
|
118
|
-
const signUpUserWithUsername = async _payload => {
|
|
119
|
-
const {
|
|
120
|
-
events
|
|
121
|
-
} = _payload,
|
|
122
|
-
payload = _objectWithoutPropertiesLoose(_payload, _excluded2);
|
|
123
|
-
setSignUpState({
|
|
124
|
-
loading: true
|
|
125
|
-
});
|
|
126
|
-
if (!payload.username) {
|
|
127
|
-
throw new Error('Username is required for username signup');
|
|
128
|
-
}
|
|
129
|
-
try {
|
|
130
|
-
const {
|
|
131
|
-
routes,
|
|
132
|
-
onRedirectTo
|
|
133
|
-
} = store.auth;
|
|
134
|
-
const {
|
|
135
|
-
shouldActivate,
|
|
136
|
-
user,
|
|
137
|
-
tenantId,
|
|
138
|
-
userId,
|
|
139
|
-
tenants = [],
|
|
140
|
-
activeTenant,
|
|
141
|
-
activationToken
|
|
142
|
-
} = await api.auth.signUpUserWithUsername(prepareIdentifiersForSignup(payload));
|
|
143
|
-
if (!payload.invitationToken) {
|
|
144
|
-
reportSignupCompletion(payload, userId, tenantId, activationToken, events, AuthenticationTypes.USERNAME);
|
|
145
|
-
}
|
|
146
|
-
if (!shouldActivate && user && isMfaRequired(user, store.root.appName)) {
|
|
147
|
-
const mfaRequiredState = await actions.getMfaRequiredState(user, DEFAULT_RETRY_CONFIG, true, payload.email);
|
|
148
|
-
actions.setAuthState(mfaRequiredState);
|
|
149
|
-
onRedirectTo(routes.loginUrl);
|
|
150
|
-
} else if (shouldActivate && activationToken) {
|
|
151
|
-
const searchParams = new URLSearchParams({
|
|
152
|
-
userId: userId || '',
|
|
153
|
-
token: activationToken || ''
|
|
154
|
-
});
|
|
155
|
-
const url = `${routes.activateWithOTCUrl}?${searchParams.toString()}`;
|
|
156
|
-
setSignUpState({
|
|
157
|
-
loading: false,
|
|
158
|
-
shouldActivate,
|
|
159
|
-
stage: SignUpStage.SignUpSuccess
|
|
160
|
-
});
|
|
161
|
-
onRedirectTo(url);
|
|
162
|
-
} else {
|
|
163
|
-
const tenantsState = store.auth.tenantsState;
|
|
164
|
-
setSignUpState({
|
|
165
|
-
loading: false,
|
|
166
|
-
shouldActivate,
|
|
167
|
-
stage: SignUpStage.SignUpSuccess
|
|
168
|
-
});
|
|
169
|
-
actions.setAuthState({
|
|
170
|
-
user,
|
|
171
|
-
isAuthenticated: !!(user != null && user.accessToken),
|
|
172
|
-
tenantsState: _extends({}, tenantsState, {
|
|
173
|
-
tenants,
|
|
174
|
-
activeTenant
|
|
175
|
-
})
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
} catch (e) {
|
|
179
|
-
contextHolder.setAccessToken(null);
|
|
180
|
-
contextHolder.setUser(null);
|
|
181
|
-
setSignUpState({
|
|
182
|
-
error: errorHandler(e)
|
|
183
|
-
});
|
|
184
|
-
} finally {
|
|
185
|
-
setSignUpState({
|
|
186
|
-
loading: false
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
};
|
|
190
117
|
const signUpUser = async _payload => {
|
|
191
118
|
const {
|
|
192
119
|
events
|
|
193
120
|
} = _payload,
|
|
194
|
-
payload = _objectWithoutPropertiesLoose(_payload,
|
|
121
|
+
payload = _objectWithoutPropertiesLoose(_payload, _excluded2);
|
|
195
122
|
setSignUpState({
|
|
196
123
|
loading: true
|
|
197
124
|
});
|
|
@@ -199,10 +126,6 @@ export default ((store, api, sharedActions) => {
|
|
|
199
126
|
if (phoneNumberStrategy != null && phoneNumberStrategy.required && phoneNumberStrategy != null && phoneNumberStrategy.enabled && payload.phoneNumber) {
|
|
200
127
|
return signUpUserWithPhoneNumber(_payload);
|
|
201
128
|
}
|
|
202
|
-
const usernameStrategy = store.auth.signUpState.strategies.username;
|
|
203
|
-
if (usernameStrategy != null && usernameStrategy.required && usernameStrategy != null && usernameStrategy.enabled && payload.username) {
|
|
204
|
-
return signUpUserWithUsername(_payload);
|
|
205
|
-
}
|
|
206
129
|
try {
|
|
207
130
|
const {
|
|
208
131
|
routes,
|
|
@@ -320,6 +243,7 @@ export default ((store, api, sharedActions) => {
|
|
|
320
243
|
resetSignUpState,
|
|
321
244
|
resetSignUpStateSoft,
|
|
322
245
|
signUpUser,
|
|
246
|
+
signUpUserWithPhoneNumber,
|
|
323
247
|
loadAllowSignUps,
|
|
324
248
|
loadSignUpStrategies
|
|
325
249
|
};
|
|
@@ -48,7 +48,8 @@ export default ((store, api, sharedActions) => {
|
|
|
48
48
|
const {
|
|
49
49
|
callback,
|
|
50
50
|
expiresInMinutes,
|
|
51
|
-
shouldSendEmail
|
|
51
|
+
shouldSendEmail,
|
|
52
|
+
roleIds
|
|
52
53
|
} = payload;
|
|
53
54
|
actions.setTeamError({
|
|
54
55
|
key: TeamStateKeys.CREATE_TOKEN_LINK,
|
|
@@ -61,9 +62,10 @@ export default ((store, api, sharedActions) => {
|
|
|
61
62
|
const [enhancedInviteUserModalFlag] = await actions.getFeatureFlags(['invite_user_modal_enhancements_frontend']);
|
|
62
63
|
let data;
|
|
63
64
|
if (enhancedInviteUserModalFlag) {
|
|
64
|
-
data = await api.teams.
|
|
65
|
+
data = await api.teams.createInviteUserLinkV2({
|
|
65
66
|
expiresInMinutes: expiresInMinutes != null ? expiresInMinutes : 43200,
|
|
66
|
-
shouldSendEmail: shouldSendEmail != null ? shouldSendEmail : true
|
|
67
|
+
shouldSendEmail: shouldSendEmail != null ? shouldSendEmail : true,
|
|
68
|
+
roleIds: roleIds != null ? roleIds : []
|
|
67
69
|
});
|
|
68
70
|
} else {
|
|
69
71
|
data = await api.teams.createInviteUserLink({
|
|
@@ -122,9 +124,7 @@ export default ((store, api, sharedActions) => {
|
|
|
122
124
|
});
|
|
123
125
|
try {
|
|
124
126
|
await api.teams.deleteInviteUserLink();
|
|
125
|
-
|
|
126
|
-
inviteTokenState: undefined
|
|
127
|
-
});
|
|
127
|
+
await __getInvitationLinkConfig();
|
|
128
128
|
callback == null ? void 0 : callback(true);
|
|
129
129
|
} catch (e) {
|
|
130
130
|
actions.setTeamError({
|
|
@@ -258,8 +258,12 @@ export default ((store, api, sharedActions) => {
|
|
|
258
258
|
|
|
259
259
|
// Fetch roles, permissions, user roles, user groups, and all groups in parallel
|
|
260
260
|
const [{
|
|
261
|
+
items: userUsernames
|
|
262
|
+
}, {
|
|
261
263
|
items: roles
|
|
262
|
-
}, permissions, userRoles, userGroups, groups] = await Promise.all([
|
|
264
|
+
}, permissions, userRoles, userGroups, groups] = await Promise.all([userIds.length > 0 ? api.users.getUsersUsernames({
|
|
265
|
+
userIds
|
|
266
|
+
}) : [], api.teams.loadAvailableRoles(), api.teams.loadAvailablePermissions(), userIds.length > 0 ? api.users.getUsersRoles({
|
|
263
267
|
ids: userIds
|
|
264
268
|
}) : [], userIds.length > 0 ? api.users.getUsersGroups({
|
|
265
269
|
ids: userIds
|
|
@@ -269,6 +273,7 @@ export default ((store, api, sharedActions) => {
|
|
|
269
273
|
|
|
270
274
|
// Map user roles and groups to users
|
|
271
275
|
const usersWithRolesAndGroups = users.map(user => {
|
|
276
|
+
var _userUsernames$find;
|
|
272
277
|
// Find user's role IDs
|
|
273
278
|
const userRoleData = userRoles.find(ur => ur.userId === user.id);
|
|
274
279
|
const userRoleIds = (userRoleData == null ? void 0 : userRoleData.roleIds) || [];
|
|
@@ -279,6 +284,12 @@ export default ((store, api, sharedActions) => {
|
|
|
279
284
|
const userGroupIds = (userGroupData == null ? void 0 : userGroupData.groupIds) || [];
|
|
280
285
|
const userGroupsFull = groups.filter(g => userGroupIds.includes(g.id));
|
|
281
286
|
|
|
287
|
+
// Find user's username
|
|
288
|
+
const userUsername = userUsernames == null ? void 0 : (_userUsernames$find = userUsernames.find(username => username.userId === user.id)) == null ? void 0 : _userUsernames$find.username;
|
|
289
|
+
if (!user.name) {
|
|
290
|
+
user.name = userUsername;
|
|
291
|
+
}
|
|
292
|
+
|
|
282
293
|
//@ts-ignore
|
|
283
294
|
return _extends({}, user, {
|
|
284
295
|
roles: userRolesFull,
|
package/auth/helpers.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["phoneNumber", "email"
|
|
3
|
+
const _excluded = ["phoneNumber", "email"],
|
|
4
4
|
_excluded2 = ["authenticatedUrl"];
|
|
5
5
|
import { ContextHolder } from '@frontegg/rest-api';
|
|
6
6
|
import { defaultFronteggRoutes } from './LoginState/consts';
|
|
@@ -56,8 +56,7 @@ export const getUri = urlStrategy => {
|
|
|
56
56
|
export const prepareIdentifiersForSignup = payload => {
|
|
57
57
|
const {
|
|
58
58
|
phoneNumber,
|
|
59
|
-
email
|
|
60
|
-
username
|
|
59
|
+
email
|
|
61
60
|
} = payload,
|
|
62
61
|
finalDto = _objectWithoutPropertiesLoose(payload, _excluded);
|
|
63
62
|
if (email != null && email.length) {
|
|
@@ -70,11 +69,6 @@ export const prepareIdentifiersForSignup = payload => {
|
|
|
70
69
|
phoneNumber
|
|
71
70
|
});
|
|
72
71
|
}
|
|
73
|
-
if (username != null && username.length) {
|
|
74
|
-
Object.assign(finalDto, {
|
|
75
|
-
username
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
72
|
return finalDto;
|
|
79
73
|
};
|
|
80
74
|
export const isAuthRoute = (path, routes) => {
|
package/auth/interfaces.d.ts
CHANGED
|
@@ -262,8 +262,7 @@ export declare enum UserVerifiedOriginTypes {
|
|
|
262
262
|
export declare enum AuthenticationTypes {
|
|
263
263
|
SOCIAL_LOGIN = "SOCIAL_LOGIN",
|
|
264
264
|
PASSWORD = "PASSWORD",
|
|
265
|
-
PHONE_NUMBER = "PHONE_NUMBER"
|
|
266
|
-
USERNAME = "USERNAME"
|
|
265
|
+
PHONE_NUMBER = "PHONE_NUMBER"
|
|
267
266
|
}
|
|
268
267
|
export declare enum AdminPortalPagesForEvents {
|
|
269
268
|
profile = "profile",
|
package/auth/interfaces.js
CHANGED
|
@@ -19,7 +19,6 @@ export let AuthenticationTypes;
|
|
|
19
19
|
AuthenticationTypes["SOCIAL_LOGIN"] = "SOCIAL_LOGIN";
|
|
20
20
|
AuthenticationTypes["PASSWORD"] = "PASSWORD";
|
|
21
21
|
AuthenticationTypes["PHONE_NUMBER"] = "PHONE_NUMBER";
|
|
22
|
-
AuthenticationTypes["USERNAME"] = "USERNAME";
|
|
23
22
|
})(AuthenticationTypes || (AuthenticationTypes = {}));
|
|
24
23
|
export let AdminPortalPagesForEvents;
|
|
25
24
|
|
package/index.js
CHANGED
|
@@ -4,6 +4,7 @@ declare const _default: (store: FronteggState, api: RestApi, actions: SharedActi
|
|
|
4
4
|
resetSignUpState: () => void;
|
|
5
5
|
resetSignUpStateSoft: () => void;
|
|
6
6
|
signUpUser: (_payload: import("../..").ISignUpUserPayload) => Promise<void>;
|
|
7
|
+
signUpUserWithPhoneNumber: (_payload: import("../..").ISignUpUserPayload) => Promise<void>;
|
|
7
8
|
loadAllowSignUps: (payload?: import("../../interfaces").WithCallback<import("../../interfaces").WithRetryConfig<{}>, import("dist/@frontegg/rest-api").IVendorConfig>) => Promise<void>;
|
|
8
9
|
loadSignUpStrategies: () => Promise<void>;
|
|
9
10
|
};
|
|
@@ -17,8 +17,7 @@ var _gtm = require("../../helpers/gtm");
|
|
|
17
17
|
var _constants = require("../../constants");
|
|
18
18
|
var _toolkit = require("../../toolkit");
|
|
19
19
|
const _excluded = ["events", "url"],
|
|
20
|
-
_excluded2 = ["events", "url"]
|
|
21
|
-
_excluded3 = ["events", "url"];
|
|
20
|
+
_excluded2 = ["events", "url"];
|
|
22
21
|
var _default = (store, api, sharedActions) => {
|
|
23
22
|
const actions = sharedActions;
|
|
24
23
|
const contextHolder = _restApi.ContextHolder.for(store.root.appName);
|
|
@@ -122,83 +121,11 @@ var _default = (store, api, sharedActions) => {
|
|
|
122
121
|
});
|
|
123
122
|
}
|
|
124
123
|
};
|
|
125
|
-
const signUpUserWithUsername = async _payload => {
|
|
126
|
-
const {
|
|
127
|
-
events
|
|
128
|
-
} = _payload,
|
|
129
|
-
payload = (0, _objectWithoutPropertiesLoose2.default)(_payload, _excluded2);
|
|
130
|
-
setSignUpState({
|
|
131
|
-
loading: true
|
|
132
|
-
});
|
|
133
|
-
if (!payload.username) {
|
|
134
|
-
throw new Error('Username is required for username signup');
|
|
135
|
-
}
|
|
136
|
-
try {
|
|
137
|
-
const {
|
|
138
|
-
routes,
|
|
139
|
-
onRedirectTo
|
|
140
|
-
} = store.auth;
|
|
141
|
-
const {
|
|
142
|
-
shouldActivate,
|
|
143
|
-
user,
|
|
144
|
-
tenantId,
|
|
145
|
-
userId,
|
|
146
|
-
tenants = [],
|
|
147
|
-
activeTenant,
|
|
148
|
-
activationToken
|
|
149
|
-
} = await api.auth.signUpUserWithUsername((0, _helpers2.prepareIdentifiersForSignup)(payload));
|
|
150
|
-
if (!payload.invitationToken) {
|
|
151
|
-
reportSignupCompletion(payload, userId, tenantId, activationToken, events, _interfaces2.AuthenticationTypes.USERNAME);
|
|
152
|
-
}
|
|
153
|
-
if (!shouldActivate && user && (0, _helpers2.isMfaRequired)(user, store.root.appName)) {
|
|
154
|
-
const mfaRequiredState = await actions.getMfaRequiredState(user, _constants.DEFAULT_RETRY_CONFIG, true, payload.email);
|
|
155
|
-
actions.setAuthState(mfaRequiredState);
|
|
156
|
-
onRedirectTo(routes.loginUrl);
|
|
157
|
-
} else if (shouldActivate && activationToken) {
|
|
158
|
-
const searchParams = new URLSearchParams({
|
|
159
|
-
userId: userId || '',
|
|
160
|
-
token: activationToken || ''
|
|
161
|
-
});
|
|
162
|
-
const url = `${routes.activateWithOTCUrl}?${searchParams.toString()}`;
|
|
163
|
-
setSignUpState({
|
|
164
|
-
loading: false,
|
|
165
|
-
shouldActivate,
|
|
166
|
-
stage: _interfaces.SignUpStage.SignUpSuccess
|
|
167
|
-
});
|
|
168
|
-
onRedirectTo(url);
|
|
169
|
-
} else {
|
|
170
|
-
const tenantsState = store.auth.tenantsState;
|
|
171
|
-
setSignUpState({
|
|
172
|
-
loading: false,
|
|
173
|
-
shouldActivate,
|
|
174
|
-
stage: _interfaces.SignUpStage.SignUpSuccess
|
|
175
|
-
});
|
|
176
|
-
actions.setAuthState({
|
|
177
|
-
user,
|
|
178
|
-
isAuthenticated: !!(user != null && user.accessToken),
|
|
179
|
-
tenantsState: (0, _extends2.default)({}, tenantsState, {
|
|
180
|
-
tenants,
|
|
181
|
-
activeTenant
|
|
182
|
-
})
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
} catch (e) {
|
|
186
|
-
contextHolder.setAccessToken(null);
|
|
187
|
-
contextHolder.setUser(null);
|
|
188
|
-
setSignUpState({
|
|
189
|
-
error: (0, _helpers.errorHandler)(e)
|
|
190
|
-
});
|
|
191
|
-
} finally {
|
|
192
|
-
setSignUpState({
|
|
193
|
-
loading: false
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
};
|
|
197
124
|
const signUpUser = async _payload => {
|
|
198
125
|
const {
|
|
199
126
|
events
|
|
200
127
|
} = _payload,
|
|
201
|
-
payload = (0, _objectWithoutPropertiesLoose2.default)(_payload,
|
|
128
|
+
payload = (0, _objectWithoutPropertiesLoose2.default)(_payload, _excluded2);
|
|
202
129
|
setSignUpState({
|
|
203
130
|
loading: true
|
|
204
131
|
});
|
|
@@ -206,10 +133,6 @@ var _default = (store, api, sharedActions) => {
|
|
|
206
133
|
if (phoneNumberStrategy != null && phoneNumberStrategy.required && phoneNumberStrategy != null && phoneNumberStrategy.enabled && payload.phoneNumber) {
|
|
207
134
|
return signUpUserWithPhoneNumber(_payload);
|
|
208
135
|
}
|
|
209
|
-
const usernameStrategy = store.auth.signUpState.strategies.username;
|
|
210
|
-
if (usernameStrategy != null && usernameStrategy.required && usernameStrategy != null && usernameStrategy.enabled && payload.username) {
|
|
211
|
-
return signUpUserWithUsername(_payload);
|
|
212
|
-
}
|
|
213
136
|
try {
|
|
214
137
|
const {
|
|
215
138
|
routes,
|
|
@@ -327,6 +250,7 @@ var _default = (store, api, sharedActions) => {
|
|
|
327
250
|
resetSignUpState,
|
|
328
251
|
resetSignUpStateSoft,
|
|
329
252
|
signUpUser,
|
|
253
|
+
signUpUserWithPhoneNumber,
|
|
330
254
|
loadAllowSignUps,
|
|
331
255
|
loadSignUpStrategies
|
|
332
256
|
};
|
|
@@ -55,7 +55,8 @@ var _default = (store, api, sharedActions) => {
|
|
|
55
55
|
const {
|
|
56
56
|
callback,
|
|
57
57
|
expiresInMinutes,
|
|
58
|
-
shouldSendEmail
|
|
58
|
+
shouldSendEmail,
|
|
59
|
+
roleIds
|
|
59
60
|
} = payload;
|
|
60
61
|
actions.setTeamError({
|
|
61
62
|
key: _interfaces.TeamStateKeys.CREATE_TOKEN_LINK,
|
|
@@ -68,9 +69,10 @@ var _default = (store, api, sharedActions) => {
|
|
|
68
69
|
const [enhancedInviteUserModalFlag] = await actions.getFeatureFlags(['invite_user_modal_enhancements_frontend']);
|
|
69
70
|
let data;
|
|
70
71
|
if (enhancedInviteUserModalFlag) {
|
|
71
|
-
data = await api.teams.
|
|
72
|
+
data = await api.teams.createInviteUserLinkV2({
|
|
72
73
|
expiresInMinutes: expiresInMinutes != null ? expiresInMinutes : 43200,
|
|
73
|
-
shouldSendEmail: shouldSendEmail != null ? shouldSendEmail : true
|
|
74
|
+
shouldSendEmail: shouldSendEmail != null ? shouldSendEmail : true,
|
|
75
|
+
roleIds: roleIds != null ? roleIds : []
|
|
74
76
|
});
|
|
75
77
|
} else {
|
|
76
78
|
data = await api.teams.createInviteUserLink({
|
|
@@ -129,9 +131,7 @@ var _default = (store, api, sharedActions) => {
|
|
|
129
131
|
});
|
|
130
132
|
try {
|
|
131
133
|
await api.teams.deleteInviteUserLink();
|
|
132
|
-
|
|
133
|
-
inviteTokenState: undefined
|
|
134
|
-
});
|
|
134
|
+
await __getInvitationLinkConfig();
|
|
135
135
|
callback == null ? void 0 : callback(true);
|
|
136
136
|
} catch (e) {
|
|
137
137
|
actions.setTeamError({
|
|
@@ -265,8 +265,12 @@ var _default = (store, api, sharedActions) => {
|
|
|
265
265
|
|
|
266
266
|
// Fetch roles, permissions, user roles, user groups, and all groups in parallel
|
|
267
267
|
const [{
|
|
268
|
+
items: userUsernames
|
|
269
|
+
}, {
|
|
268
270
|
items: roles
|
|
269
|
-
}, permissions, userRoles, userGroups, groups] = await Promise.all([
|
|
271
|
+
}, permissions, userRoles, userGroups, groups] = await Promise.all([userIds.length > 0 ? api.users.getUsersUsernames({
|
|
272
|
+
userIds
|
|
273
|
+
}) : [], api.teams.loadAvailableRoles(), api.teams.loadAvailablePermissions(), userIds.length > 0 ? api.users.getUsersRoles({
|
|
270
274
|
ids: userIds
|
|
271
275
|
}) : [], userIds.length > 0 ? api.users.getUsersGroups({
|
|
272
276
|
ids: userIds
|
|
@@ -276,6 +280,7 @@ var _default = (store, api, sharedActions) => {
|
|
|
276
280
|
|
|
277
281
|
// Map user roles and groups to users
|
|
278
282
|
const usersWithRolesAndGroups = users.map(user => {
|
|
283
|
+
var _userUsernames$find;
|
|
279
284
|
// Find user's role IDs
|
|
280
285
|
const userRoleData = userRoles.find(ur => ur.userId === user.id);
|
|
281
286
|
const userRoleIds = (userRoleData == null ? void 0 : userRoleData.roleIds) || [];
|
|
@@ -286,6 +291,12 @@ var _default = (store, api, sharedActions) => {
|
|
|
286
291
|
const userGroupIds = (userGroupData == null ? void 0 : userGroupData.groupIds) || [];
|
|
287
292
|
const userGroupsFull = groups.filter(g => userGroupIds.includes(g.id));
|
|
288
293
|
|
|
294
|
+
// Find user's username
|
|
295
|
+
const userUsername = userUsernames == null ? void 0 : (_userUsernames$find = userUsernames.find(username => username.userId === user.id)) == null ? void 0 : _userUsernames$find.username;
|
|
296
|
+
if (!user.name) {
|
|
297
|
+
user.name = userUsername;
|
|
298
|
+
}
|
|
299
|
+
|
|
289
300
|
//@ts-ignore
|
|
290
301
|
return (0, _extends2.default)({}, user, {
|
|
291
302
|
roles: userRolesFull,
|
package/node/auth/helpers.js
CHANGED
|
@@ -53,7 +53,7 @@ Object.keys(_helpers3).forEach(function (key) {
|
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
55
|
});
|
|
56
|
-
const _excluded = ["phoneNumber", "email"
|
|
56
|
+
const _excluded = ["phoneNumber", "email"],
|
|
57
57
|
_excluded2 = ["authenticatedUrl"];
|
|
58
58
|
const isMfaRequired = (user, appName) => {
|
|
59
59
|
const contextHolder = _restApi.ContextHolder.for(appName);
|
|
@@ -108,8 +108,7 @@ exports.getUri = getUri;
|
|
|
108
108
|
const prepareIdentifiersForSignup = payload => {
|
|
109
109
|
const {
|
|
110
110
|
phoneNumber,
|
|
111
|
-
email
|
|
112
|
-
username
|
|
111
|
+
email
|
|
113
112
|
} = payload,
|
|
114
113
|
finalDto = (0, _objectWithoutPropertiesLoose2.default)(payload, _excluded);
|
|
115
114
|
if (email != null && email.length) {
|
|
@@ -122,11 +121,6 @@ const prepareIdentifiersForSignup = payload => {
|
|
|
122
121
|
phoneNumber
|
|
123
122
|
});
|
|
124
123
|
}
|
|
125
|
-
if (username != null && username.length) {
|
|
126
|
-
Object.assign(finalDto, {
|
|
127
|
-
username
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
124
|
return finalDto;
|
|
131
125
|
};
|
|
132
126
|
exports.prepareIdentifiersForSignup = prepareIdentifiersForSignup;
|
package/node/auth/interfaces.js
CHANGED
|
@@ -28,7 +28,6 @@ exports.AuthenticationTypes = AuthenticationTypes;
|
|
|
28
28
|
AuthenticationTypes["SOCIAL_LOGIN"] = "SOCIAL_LOGIN";
|
|
29
29
|
AuthenticationTypes["PASSWORD"] = "PASSWORD";
|
|
30
30
|
AuthenticationTypes["PHONE_NUMBER"] = "PHONE_NUMBER";
|
|
31
|
-
AuthenticationTypes["USERNAME"] = "USERNAME";
|
|
32
31
|
})(AuthenticationTypes || (exports.AuthenticationTypes = AuthenticationTypes = {}));
|
|
33
32
|
let AdminPortalPagesForEvents; // noinspection JSUnusedGlobalSymbols
|
|
34
33
|
exports.AdminPortalPagesForEvents = AdminPortalPagesForEvents;
|
package/node/index.js
CHANGED
package/node/toolkit/index.js
CHANGED
|
@@ -8,6 +8,7 @@ var _exportNames = {
|
|
|
8
8
|
FronteggNativeModule: true,
|
|
9
9
|
snapshot: true,
|
|
10
10
|
subscribe: true,
|
|
11
|
+
ref: true,
|
|
11
12
|
createProxy: true
|
|
12
13
|
};
|
|
13
14
|
Object.defineProperty(exports, "FronteggNativeModule", {
|
|
@@ -22,6 +23,12 @@ Object.defineProperty(exports, "createProxy", {
|
|
|
22
23
|
return _proxy.createProxy;
|
|
23
24
|
}
|
|
24
25
|
});
|
|
26
|
+
Object.defineProperty(exports, "ref", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function () {
|
|
29
|
+
return _valtio.ref;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
25
32
|
Object.defineProperty(exports, "snapshot", {
|
|
26
33
|
enumerable: true,
|
|
27
34
|
get: function () {
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frontegg/redux-store",
|
|
3
|
-
"version": "7.84.0
|
|
3
|
+
"version": "7.84.0",
|
|
4
4
|
"main": "./node/index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Frontegg LTD",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@babel/runtime": "^7.18.6",
|
|
9
9
|
"@frontegg/entitlements-javascript-commons": "1.1.2",
|
|
10
|
-
"@frontegg/rest-api": "7.84.0
|
|
10
|
+
"@frontegg/rest-api": "7.84.0",
|
|
11
11
|
"fast-deep-equal": "3.1.3",
|
|
12
12
|
"get-value": "^3.0.1",
|
|
13
13
|
"proxy-compare": "^3.0.0",
|
package/toolkit/index.d.ts
CHANGED
|
@@ -2,5 +2,5 @@ export { default as FronteggNativeModule } from './FronteggNativeModule';
|
|
|
2
2
|
export * from './store';
|
|
3
3
|
import { INTERNAL_Snapshot as Snapshot } from '../valtio';
|
|
4
4
|
export type { Snapshot };
|
|
5
|
-
export { snapshot, subscribe } from '../valtio';
|
|
5
|
+
export { snapshot, subscribe, ref } from '../valtio';
|
|
6
6
|
export { createProxy } from './proxy';
|
package/toolkit/index.js
CHANGED