@firecms/user_management 3.0.0-canary.235 → 3.0.0-canary.237
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 +40 -4
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +40 -4
- package/dist/index.umd.js.map +1 -1
- package/dist/types/user_management.d.ts +5 -0
- package/package.json +5 -5
- package/src/hooks/useBuildUserManagement.tsx +41 -0
- package/src/types/user_management.tsx +6 -0
@@ -32,4 +32,9 @@ export type UserManagement<USER extends User = User> = {
|
|
32
32
|
defineRolesFor: (user: User) => Promise<Role[] | undefined> | Role[] | undefined;
|
33
33
|
rolesError?: Error;
|
34
34
|
usersError?: Error;
|
35
|
+
/**
|
36
|
+
* Function to get a user by uid.
|
37
|
+
* @param uid
|
38
|
+
*/
|
39
|
+
getUser: (uid: string) => User | null;
|
35
40
|
};
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@firecms/user_management",
|
3
3
|
"type": "module",
|
4
|
-
"version": "3.0.0-canary.
|
4
|
+
"version": "3.0.0-canary.237",
|
5
5
|
"publishConfig": {
|
6
6
|
"access": "public"
|
7
7
|
},
|
@@ -29,9 +29,9 @@
|
|
29
29
|
"types": "dist/index.d.ts",
|
30
30
|
"source": "src/index.ts",
|
31
31
|
"dependencies": {
|
32
|
-
"@firecms/core": "^3.0.0-canary.
|
33
|
-
"@firecms/formex": "^3.0.0-canary.
|
34
|
-
"@firecms/ui": "^3.0.0-canary.
|
32
|
+
"@firecms/core": "^3.0.0-canary.237",
|
33
|
+
"@firecms/formex": "^3.0.0-canary.237",
|
34
|
+
"@firecms/ui": "^3.0.0-canary.237",
|
35
35
|
"date-fns": "^3.6.0"
|
36
36
|
},
|
37
37
|
"peerDependencies": {
|
@@ -57,5 +57,5 @@
|
|
57
57
|
"src",
|
58
58
|
"bin"
|
59
59
|
],
|
60
|
-
"gitHead": "
|
60
|
+
"gitHead": "20e10b4e0cd4b6a2f2831b219ce43a6d09047a54"
|
61
61
|
}
|
@@ -186,6 +186,22 @@ export function useBuildUserManagement<CONTROLLER extends AuthController<any> =
|
|
186
186
|
// @ts-ignore
|
187
187
|
data.created_on = new Date();
|
188
188
|
}
|
189
|
+
// delete the previous user entry if it exists and the uid has changed
|
190
|
+
if (userExists && userExists.uid !== user.uid) {
|
191
|
+
const entity: Entity<any> = {
|
192
|
+
values: {},
|
193
|
+
path: usersPath,
|
194
|
+
id: userExists.uid
|
195
|
+
}
|
196
|
+
await dataSourceDelegate.deleteEntity({ entity })
|
197
|
+
.then(() => {
|
198
|
+
console.debug("Deleted previous user", userExists);
|
199
|
+
})
|
200
|
+
.catch(e => {
|
201
|
+
console.error("Error deleting user", e);
|
202
|
+
});
|
203
|
+
|
204
|
+
}
|
189
205
|
|
190
206
|
return dataSourceDelegate.saveEntity({
|
191
207
|
status: "existing",
|
@@ -259,9 +275,14 @@ export function useBuildUserManagement<CONTROLLER extends AuthController<any> =
|
|
259
275
|
}, [roles, usersWithRoleIds]);
|
260
276
|
|
261
277
|
const authenticator: Authenticator<USER> = useCallback(({ user }) => {
|
278
|
+
|
262
279
|
if (loading) {
|
263
280
|
return false;
|
264
281
|
}
|
282
|
+
if (user === null) {
|
283
|
+
console.warn("User is null, returning");
|
284
|
+
return false;
|
285
|
+
}
|
265
286
|
|
266
287
|
if (users.length === 0) {
|
267
288
|
console.warn("No users created yet");
|
@@ -270,6 +291,18 @@ export function useBuildUserManagement<CONTROLLER extends AuthController<any> =
|
|
270
291
|
|
271
292
|
const mgmtUser = users.find(u => u.email?.toLowerCase() === user?.email?.toLowerCase());
|
272
293
|
if (mgmtUser) {
|
294
|
+
// check if the uid is updated in the user management system
|
295
|
+
if (mgmtUser.uid !== user.uid) {
|
296
|
+
console.warn("User uid has changed, updating user in user management system");
|
297
|
+
saveUser({
|
298
|
+
...mgmtUser,
|
299
|
+
uid: user.uid
|
300
|
+
}).then(() => {
|
301
|
+
console.debug("User updated in user management system", mgmtUser);
|
302
|
+
}).catch(e => {
|
303
|
+
console.error("Error updating user in user management system", e);
|
304
|
+
});
|
305
|
+
}
|
273
306
|
console.debug("User found in user management system", mgmtUser);
|
274
307
|
return true;
|
275
308
|
}
|
@@ -286,6 +319,13 @@ export function useBuildUserManagement<CONTROLLER extends AuthController<any> =
|
|
286
319
|
authController.setUserRoles?.(userRoles ?? []);
|
287
320
|
}, [userRoleIds]);
|
288
321
|
|
322
|
+
const getUser = useCallback((uid: string): USER | null => {
|
323
|
+
if (!users) return null;
|
324
|
+
const user = users.find(u => u.uid === uid);
|
325
|
+
return user ?? null;
|
326
|
+
}, [users]);
|
327
|
+
|
328
|
+
console.log("users", users);
|
289
329
|
return {
|
290
330
|
loading,
|
291
331
|
roles,
|
@@ -305,6 +345,7 @@ export function useBuildUserManagement<CONTROLLER extends AuthController<any> =
|
|
305
345
|
...authController,
|
306
346
|
initialLoading: authController.initialLoading || loading,
|
307
347
|
userRoles: userRoles,
|
348
|
+
getUser,
|
308
349
|
user: authController.user ? {
|
309
350
|
...authController.user,
|
310
351
|
roles: userRoles
|