@frontegg/redux-store 6.81.0 → 6.82.0-alpha.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.
@@ -1,4 +1,5 @@
1
1
  import { ITeamUserRole, ITeamUser, QuerySort, QueryFilter, ITeamUserPermission, ISubTenantUser } from '@frontegg/rest-api';
2
+ import { GroupsState } from '../GroupsState/interfaces';
2
3
  import { LoaderIndicatorState, WithCallback } from '../../interfaces';
3
4
  export declare enum TeamStateKeys {
4
5
  USERS = "USERS",
@@ -38,10 +39,13 @@ export declare type LoadRolesAndPermissionsPayload = WithCallback<{}, {
38
39
  roles: ITeamUserRole[];
39
40
  permissions: ITeamUserPermission[];
40
41
  }>;
42
+ export interface ITeamStateUser extends ITeamUser {
43
+ groups?: GroupsState['groups'];
44
+ }
41
45
  export interface TeamState {
42
46
  loaders: LoaderIndicatorState<TeamStateKeys>;
43
47
  errors: LoaderIndicatorState<TeamStateKeys>;
44
- users: ITeamUser[];
48
+ users: ITeamStateUser[];
45
49
  allUsers: ISubTenantUser[];
46
50
  allUsersQueryParams: {
47
51
  _offset: number;
@@ -28,7 +28,20 @@ import { authStoreName } from '../../constants';
28
28
  import { delay } from '../utils';
29
29
  import { allUsersDemo, permissionsDemo, rolesDemo, usersDemo, userTeamDemo } from '../dummy';
30
30
  import { v4 as uuidv4 } from 'uuid';
31
+ import { GroupRelations } from '../GroupsState/interfaces';
31
32
  const selectTeamState = () => sagaSelect(_ => _[authStoreName].teamState);
33
+ function* getGroupsForUsers() {
34
+ try {
35
+ const {
36
+ groups
37
+ } = yield call(api.groups.getGroups, {
38
+ _groupsRelations: GroupRelations.roles
39
+ });
40
+ return groups;
41
+ } catch (e) {
42
+ return [];
43
+ }
44
+ }
32
45
 
33
46
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
47
  function* loadUsers({
@@ -63,14 +76,23 @@ function* loadUsers({
63
76
  items: roles
64
77
  }, {
65
78
  items: permissions
66
- }] = yield all([call(api.teams.loadUsers, {
79
+ }, groups] = yield all([call(api.teams.loadUsers, {
67
80
  pageSize,
68
81
  pageOffset,
69
82
  filter,
70
83
  sort
71
- }), call(api.teams.loadAvailableRoles), call(api.teams.loadAvailablePermissions)]);
84
+ }), call(api.teams.loadAvailableRoles), call(api.teams.loadAvailablePermissions), call(getGroupsForUsers)]);
85
+
86
+ //TODO: extend users type with groups in rest-api
87
+ const usersWithGroups = users.map(user => {
88
+ var _user$groups;
89
+ const userGroupsFullData = user == null ? void 0 : (_user$groups = user.groups) == null ? void 0 : _user$groups.map(group => groups.filter(g => g.id === group.id)).flat();
90
+ return _extends({}, user, {
91
+ groups: userGroupsFullData
92
+ });
93
+ });
72
94
  yield put(actions.setTeamState({
73
- users,
95
+ users: usersWithGroups,
74
96
  totalPages,
75
97
  totalItems,
76
98
  roles,
@@ -377,6 +399,7 @@ function* updateUser({
377
399
  callback == null ? void 0 : callback(newUser);
378
400
  yield put(actions.setTeamState({
379
401
  users: teamState.users.map(user => user.id === newUser.id ? _extends({}, user, newUser, {
402
+ groups: user.groups,
380
403
  createdAt: user.createdAt,
381
404
  customData: user.customData,
382
405
  lastLogin: user.lastLogin
package/auth/dummy.d.ts CHANGED
@@ -4,6 +4,7 @@ import { IGroup } from '../auth/GroupsState/interfaces';
4
4
  import { User } from './interfaces';
5
5
  import { ProfileState } from './ProfileState/interfaces';
6
6
  import { SSOState } from './SSOState/interfaces';
7
+ import { ITeamStateUser } from './TeamState/interfaces';
7
8
  export declare const apiTokensDataDemo: IApiTokensData;
8
9
  export declare const apiTokensDataTenantDemo: ITenantApiTokensData;
9
10
  export declare const rolesAdminViewerDemo: IRole[];
@@ -22,8 +23,8 @@ export declare const samlMetadataDemo: ISamlMetadata;
22
23
  export declare const rolesDemo: ITeamUserRole[];
23
24
  export declare const ssoStateDemo: SSOState;
24
25
  export declare const permissionsDemo: ITeamUserPermission[];
25
- export declare const userTeamDemo2: ITeamUser;
26
- export declare const userTeamDemo: ITeamUser;
26
+ export declare const userTeamDemo2: ITeamStateUser;
27
+ export declare const userTeamDemo: ITeamStateUser;
27
28
  export declare const userSubTenantDemo: ISubTenantUser;
28
29
  export declare const usersDemo: ITeamUser[];
29
30
  export declare const allUsersDemo: ISubTenantUser[];
package/auth/dummy.js CHANGED
@@ -216,7 +216,14 @@ export const userTeamDemo2 = {
216
216
  customData: undefined,
217
217
  lastLogin: undefined,
218
218
  mfaEnabled: undefined,
219
- roles: [rolesAdminViewerDemo[0]]
219
+ roles: [rolesAdminViewerDemo[0]],
220
+ groups: [{
221
+ id: 'id2',
222
+ name: 'Developers',
223
+ color: '#03A9F4',
224
+ roles: [rolesAdminViewerDemo[0]],
225
+ managedBy: GroupManagedByEnum.FRONTEGG
226
+ }]
220
227
  }; // TODO add verified to ITeamUser
221
228
 
222
229
  export const userTeamDemo = {
@@ -235,7 +242,14 @@ export const userTeamDemo = {
235
242
  customData: undefined,
236
243
  lastLogin: new Date(2022, 5, 25).toISOString(),
237
244
  mfaEnabled: undefined,
238
- roles: [rolesAdminViewerDemo[1]]
245
+ roles: [rolesAdminViewerDemo[1]],
246
+ groups: [{
247
+ id: 'id1',
248
+ name: 'Designers',
249
+ color: '#E1F5E2',
250
+ roles: [rolesAdminViewerDemo[0]],
251
+ managedBy: GroupManagedByEnum.FRONTEGG
252
+ }]
239
253
  };
240
254
  export const userSubTenantDemo = {
241
255
  metadata: '',
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v6.81.0
1
+ /** @license Frontegg v6.82.0-alpha.0
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
@@ -16,6 +16,7 @@ var _constants = require("../../constants");
16
16
  var _utils = require("../utils");
17
17
  var _dummy = require("../dummy");
18
18
  var _uuid = require("uuid");
19
+ var _interfaces2 = require("../GroupsState/interfaces");
19
20
  const _excluded = ["callback"],
20
21
  _excluded2 = ["roles"],
21
22
  _excluded3 = ["callback"],
@@ -37,6 +38,18 @@ const _excluded = ["callback"],
37
38
  _excluded19 = ["callback"],
38
39
  _excluded20 = ["callback"];
39
40
  const selectTeamState = () => (0, _effects.select)(_ => _[_constants.authStoreName].teamState);
41
+ function* getGroupsForUsers() {
42
+ try {
43
+ const {
44
+ groups
45
+ } = yield (0, _effects.call)(_restApi.api.groups.getGroups, {
46
+ _groupsRelations: _interfaces2.GroupRelations.roles
47
+ });
48
+ return groups;
49
+ } catch (e) {
50
+ return [];
51
+ }
52
+ }
40
53
 
41
54
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
55
  function* loadUsers({
@@ -71,14 +84,23 @@ function* loadUsers({
71
84
  items: roles
72
85
  }, {
73
86
  items: permissions
74
- }] = yield (0, _effects.all)([(0, _effects.call)(_restApi.api.teams.loadUsers, {
87
+ }, groups] = yield (0, _effects.all)([(0, _effects.call)(_restApi.api.teams.loadUsers, {
75
88
  pageSize,
76
89
  pageOffset,
77
90
  filter,
78
91
  sort
79
- }), (0, _effects.call)(_restApi.api.teams.loadAvailableRoles), (0, _effects.call)(_restApi.api.teams.loadAvailablePermissions)]);
92
+ }), (0, _effects.call)(_restApi.api.teams.loadAvailableRoles), (0, _effects.call)(_restApi.api.teams.loadAvailablePermissions), (0, _effects.call)(getGroupsForUsers)]);
93
+
94
+ //TODO: extend users type with groups in rest-api
95
+ const usersWithGroups = users.map(user => {
96
+ var _user$groups;
97
+ const userGroupsFullData = user == null ? void 0 : (_user$groups = user.groups) == null ? void 0 : _user$groups.map(group => groups.filter(g => g.id === group.id)).flat();
98
+ return (0, _extends2.default)({}, user, {
99
+ groups: userGroupsFullData
100
+ });
101
+ });
80
102
  yield (0, _effects.put)(_reducer.actions.setTeamState({
81
- users,
103
+ users: usersWithGroups,
82
104
  totalPages,
83
105
  totalItems,
84
106
  roles,
@@ -385,6 +407,7 @@ function* updateUser({
385
407
  callback == null ? void 0 : callback(newUser);
386
408
  yield (0, _effects.put)(_reducer.actions.setTeamState({
387
409
  users: teamState.users.map(user => user.id === newUser.id ? (0, _extends2.default)({}, user, newUser, {
410
+ groups: user.groups,
388
411
  createdAt: user.createdAt,
389
412
  customData: user.customData,
390
413
  lastLogin: user.lastLogin
@@ -241,7 +241,14 @@ const userTeamDemo2 = {
241
241
  customData: undefined,
242
242
  lastLogin: undefined,
243
243
  mfaEnabled: undefined,
244
- roles: [rolesAdminViewerDemo[0]]
244
+ roles: [rolesAdminViewerDemo[0]],
245
+ groups: [{
246
+ id: 'id2',
247
+ name: 'Developers',
248
+ color: '#03A9F4',
249
+ roles: [rolesAdminViewerDemo[0]],
250
+ managedBy: _restApi.GroupManagedByEnum.FRONTEGG
251
+ }]
245
252
  }; // TODO add verified to ITeamUser
246
253
  exports.userTeamDemo2 = userTeamDemo2;
247
254
  const userTeamDemo = {
@@ -260,7 +267,14 @@ const userTeamDemo = {
260
267
  customData: undefined,
261
268
  lastLogin: new Date(2022, 5, 25).toISOString(),
262
269
  mfaEnabled: undefined,
263
- roles: [rolesAdminViewerDemo[1]]
270
+ roles: [rolesAdminViewerDemo[1]],
271
+ groups: [{
272
+ id: 'id1',
273
+ name: 'Designers',
274
+ color: '#E1F5E2',
275
+ roles: [rolesAdminViewerDemo[0]],
276
+ managedBy: _restApi.GroupManagedByEnum.FRONTEGG
277
+ }]
264
278
  };
265
279
  exports.userTeamDemo = userTeamDemo;
266
280
  const userSubTenantDemo = {
package/node/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v6.81.0
1
+ /** @license Frontegg v6.82.0-alpha.0
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontegg/redux-store",
3
- "version": "6.81.0",
3
+ "version": "6.82.0-alpha.0",
4
4
  "main": "./node/index.js",
5
5
  "license": "MIT",
6
6
  "author": "Frontegg LTD",