@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 +20 -16
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +21 -17
- package/dist/index.umd.js.map +1 -1
- package/package.json +5 -5
- package/src/components/roles/RolesDetailsForm.tsx +12 -12
- package/src/hooks/useBuildUserManagement.tsx +20 -5
@@ -260,29 +260,29 @@ export function RolesDetailsForm({
|
|
260
260
|
align="center">
|
261
261
|
<Checkbox
|
262
262
|
disabled={isAdmin || defaultCreate || !editable}
|
263
|
-
checked={(isAdmin || defaultCreate || getIn(values, `collectionPermissions.${col.
|
264
|
-
onCheckedChange={(checked) => setFieldValue(`collectionPermissions.${col.
|
263
|
+
checked={(isAdmin || defaultCreate || getIn(values, `collectionPermissions.${col.id}.create`)) ?? false}
|
264
|
+
onCheckedChange={(checked) => setFieldValue(`collectionPermissions.${col.id}.create`, checked)}/>
|
265
265
|
</TableCell>
|
266
266
|
<TableCell
|
267
267
|
align="center">
|
268
268
|
<Checkbox
|
269
269
|
disabled={isAdmin || defaultRead || !editable}
|
270
|
-
checked={(isAdmin || defaultRead || getIn(values, `collectionPermissions.${col.
|
271
|
-
onCheckedChange={(checked) => setFieldValue(`collectionPermissions.${col.
|
270
|
+
checked={(isAdmin || defaultRead || getIn(values, `collectionPermissions.${col.id}.read`)) ?? false}
|
271
|
+
onCheckedChange={(checked) => setFieldValue(`collectionPermissions.${col.id}.read`, checked)}/>
|
272
272
|
</TableCell>
|
273
273
|
<TableCell
|
274
274
|
align="center">
|
275
275
|
<Checkbox
|
276
276
|
disabled={isAdmin || defaultEdit || !editable}
|
277
|
-
checked={(isAdmin || defaultEdit || getIn(values, `collectionPermissions.${col.
|
278
|
-
onCheckedChange={(checked) => setFieldValue(`collectionPermissions.${col.
|
277
|
+
checked={(isAdmin || defaultEdit || getIn(values, `collectionPermissions.${col.id}.edit`)) ?? false}
|
278
|
+
onCheckedChange={(checked) => setFieldValue(`collectionPermissions.${col.id}.edit`, checked)}/>
|
279
279
|
</TableCell>
|
280
280
|
<TableCell
|
281
281
|
align="center">
|
282
282
|
<Checkbox
|
283
283
|
disabled={isAdmin || defaultDelete || !editable}
|
284
|
-
checked={(isAdmin || defaultDelete || getIn(values, `collectionPermissions.${col.
|
285
|
-
onCheckedChange={(checked) => setFieldValue(`collectionPermissions.${col.
|
284
|
+
checked={(isAdmin || defaultDelete || getIn(values, `collectionPermissions.${col.id}.delete`)) ?? false}
|
285
|
+
onCheckedChange={(checked) => setFieldValue(`collectionPermissions.${col.id}.delete`, checked)}/>
|
286
286
|
</TableCell>
|
287
287
|
|
288
288
|
<TableCell
|
@@ -292,10 +292,10 @@ export function RolesDetailsForm({
|
|
292
292
|
<Button
|
293
293
|
className={"color-inherit"}
|
294
294
|
onClick={() => {
|
295
|
-
setFieldValue(`collectionPermissions.${col.
|
296
|
-
setFieldValue(`collectionPermissions.${col.
|
297
|
-
setFieldValue(`collectionPermissions.${col.
|
298
|
-
setFieldValue(`collectionPermissions.${col.
|
295
|
+
setFieldValue(`collectionPermissions.${col.id}.create`, true);
|
296
|
+
setFieldValue(`collectionPermissions.${col.id}.read`, true);
|
297
|
+
setFieldValue(`collectionPermissions.${col.id}.edit`, true);
|
298
|
+
setFieldValue(`collectionPermissions.${col.id}.delete`, true);
|
299
299
|
}}
|
300
300
|
disabled={isAdmin || !editable}
|
301
301
|
variant={"text"}>
|
@@ -2,10 +2,18 @@ import React, { useCallback, useEffect } from "react";
|
|
2
2
|
import equal from "react-fast-compare"
|
3
3
|
|
4
4
|
import { UserManagement } from "../types";
|
5
|
-
import {
|
5
|
+
import {
|
6
|
+
Authenticator,
|
7
|
+
DataSourceDelegate,
|
8
|
+
Entity,
|
9
|
+
PermissionsBuilder,
|
10
|
+
removeUndefined,
|
11
|
+
Role,
|
12
|
+
User
|
13
|
+
} from "@firecms/core";
|
6
14
|
import { resolveUserRolePermissions } from "../utils";
|
7
15
|
|
8
|
-
type UserWithRoleIds = User & { roles: string[] };
|
16
|
+
type UserWithRoleIds = Omit<User, "roles"> & { roles: string[] };
|
9
17
|
|
10
18
|
export interface UserManagementParams {
|
11
19
|
|
@@ -154,15 +162,22 @@ export function useBuildUserManagement({
|
|
154
162
|
const roleIds = user.roles?.map(r => r.id);
|
155
163
|
const email = user.email?.toLowerCase().trim();
|
156
164
|
if (!email) throw Error("Email is required");
|
165
|
+
|
166
|
+
const userExists = users.find(u => u.email?.toLowerCase() === email);
|
157
167
|
const data = {
|
158
168
|
...user,
|
159
|
-
roles: roleIds
|
169
|
+
roles: roleIds ?? []
|
160
170
|
};
|
171
|
+
if (!userExists) {
|
172
|
+
// @ts-ignore
|
173
|
+
data.created_on = new Date();
|
174
|
+
}
|
175
|
+
|
161
176
|
return dataSourceDelegate.saveEntity({
|
162
177
|
status: "existing",
|
163
178
|
path: usersPath,
|
164
179
|
entityId: email,
|
165
|
-
values: data
|
180
|
+
values: removeUndefined(data)
|
166
181
|
}).then(() => user);
|
167
182
|
}, [usersPath, dataSourceDelegate?.initialised]);
|
168
183
|
|
@@ -178,7 +193,7 @@ export function useBuildUserManagement({
|
|
178
193
|
status: "existing",
|
179
194
|
path: rolesPath,
|
180
195
|
entityId: id,
|
181
|
-
values: roleData
|
196
|
+
values: removeUndefined(roleData)
|
182
197
|
}).then(() => {
|
183
198
|
return;
|
184
199
|
});
|