@firecms/user_management 3.0.0-canary.116 → 3.0.0-canary.118

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/dist/index.es.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import React, { useEffect, useCallback, useContext, useState } from "react";
2
2
  import equal from "react-fast-compare";
3
+ import { removeUndefined, toSnakeCase, FieldCaption, DeleteConfirmationDialog, useNavigationController, useSnackbarController, useAuthController, useCustomizationController, defaultDateFormat } from "@firecms/core";
3
4
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
4
5
  import { getColorSchemeForSeed, Chip, Dialog, DialogContent, Typography, TextField, Paper, Table, TableHeader, TableCell, TableBody, TableRow, Tooltip, Checkbox, Button, Select, SelectItem, DialogActions, LoadingButton, DoneIcon, IconButton, DeleteIcon, CenteredView, Container, AddIcon, MultiSelect, MultiSelectItem } from "@firecms/ui";
5
6
  import * as Yup from "yup";
6
- import { toSnakeCase, FieldCaption, DeleteConfirmationDialog, useNavigationController, useSnackbarController, useAuthController, useCustomizationController, defaultDateFormat } from "@firecms/core";
7
7
  import { useCreateFormex, getIn, Formex } from "@firecms/formex";
8
8
  import { format } from "date-fns";
9
9
  import * as locales from "date-fns/locale";
@@ -219,15 +219,19 @@ function useBuildUserManagement({
219
219
  const roleIds = user.roles?.map((r) => r.id);
220
220
  const email = user.email?.toLowerCase().trim();
221
221
  if (!email) throw Error("Email is required");
222
+ const userExists = users.find((u) => u.email?.toLowerCase() === email);
222
223
  const data = {
223
224
  ...user,
224
- roles: roleIds
225
+ roles: roleIds ?? []
225
226
  };
227
+ if (!userExists) {
228
+ data.created_on = /* @__PURE__ */ new Date();
229
+ }
226
230
  return dataSourceDelegate.saveEntity({
227
231
  status: "existing",
228
232
  path: usersPath,
229
233
  entityId: email,
230
- values: data
234
+ values: removeUndefined(data)
231
235
  }).then(() => user);
232
236
  }, [usersPath, dataSourceDelegate?.initialised]);
233
237
  const saveRole = useCallback((role) => {
@@ -242,7 +246,7 @@ function useBuildUserManagement({
242
246
  status: "existing",
243
247
  path: rolesPath,
244
248
  entityId: id,
245
- values: roleData
249
+ values: removeUndefined(roleData)
246
250
  }).then(() => {
247
251
  return;
248
252
  });
@@ -646,8 +650,8 @@ function RolesDetailsForm({
646
650
  Checkbox,
647
651
  {
648
652
  disabled: isAdmin || defaultCreate || !editable,
649
- checked: (isAdmin || defaultCreate || getIn(values, `collectionPermissions.${col.path}.create`)) ?? false,
650
- onCheckedChange: (checked) => setFieldValue(`collectionPermissions.${col.path}.create`, checked)
653
+ checked: (isAdmin || defaultCreate || getIn(values, `collectionPermissions.${col.id}.create`)) ?? false,
654
+ onCheckedChange: (checked) => setFieldValue(`collectionPermissions.${col.id}.create`, checked)
651
655
  }
652
656
  )
653
657
  }
@@ -660,8 +664,8 @@ function RolesDetailsForm({
660
664
  Checkbox,
661
665
  {
662
666
  disabled: isAdmin || defaultRead || !editable,
663
- checked: (isAdmin || defaultRead || getIn(values, `collectionPermissions.${col.path}.read`)) ?? false,
664
- onCheckedChange: (checked) => setFieldValue(`collectionPermissions.${col.path}.read`, checked)
667
+ checked: (isAdmin || defaultRead || getIn(values, `collectionPermissions.${col.id}.read`)) ?? false,
668
+ onCheckedChange: (checked) => setFieldValue(`collectionPermissions.${col.id}.read`, checked)
665
669
  }
666
670
  )
667
671
  }
@@ -674,8 +678,8 @@ function RolesDetailsForm({
674
678
  Checkbox,
675
679
  {
676
680
  disabled: isAdmin || defaultEdit || !editable,
677
- checked: (isAdmin || defaultEdit || getIn(values, `collectionPermissions.${col.path}.edit`)) ?? false,
678
- onCheckedChange: (checked) => setFieldValue(`collectionPermissions.${col.path}.edit`, checked)
681
+ checked: (isAdmin || defaultEdit || getIn(values, `collectionPermissions.${col.id}.edit`)) ?? false,
682
+ onCheckedChange: (checked) => setFieldValue(`collectionPermissions.${col.id}.edit`, checked)
679
683
  }
680
684
  )
681
685
  }
@@ -688,8 +692,8 @@ function RolesDetailsForm({
688
692
  Checkbox,
689
693
  {
690
694
  disabled: isAdmin || defaultDelete || !editable,
691
- checked: (isAdmin || defaultDelete || getIn(values, `collectionPermissions.${col.path}.delete`)) ?? false,
692
- onCheckedChange: (checked) => setFieldValue(`collectionPermissions.${col.path}.delete`, checked)
695
+ checked: (isAdmin || defaultDelete || getIn(values, `collectionPermissions.${col.id}.delete`)) ?? false,
696
+ onCheckedChange: (checked) => setFieldValue(`collectionPermissions.${col.id}.delete`, checked)
693
697
  }
694
698
  )
695
699
  }
@@ -707,10 +711,10 @@ function RolesDetailsForm({
707
711
  {
708
712
  className: "color-inherit",
709
713
  onClick: () => {
710
- setFieldValue(`collectionPermissions.${col.path}.create`, true);
711
- setFieldValue(`collectionPermissions.${col.path}.read`, true);
712
- setFieldValue(`collectionPermissions.${col.path}.edit`, true);
713
- setFieldValue(`collectionPermissions.${col.path}.delete`, true);
714
+ setFieldValue(`collectionPermissions.${col.id}.create`, true);
715
+ setFieldValue(`collectionPermissions.${col.id}.read`, true);
716
+ setFieldValue(`collectionPermissions.${col.id}.edit`, true);
717
+ setFieldValue(`collectionPermissions.${col.id}.delete`, true);
714
718
  },
715
719
  disabled: isAdmin || !editable,
716
720
  variant: "text",