@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.
@@ -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.235",
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.235",
33
- "@firecms/formex": "^3.0.0-canary.235",
34
- "@firecms/ui": "^3.0.0-canary.235",
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": "d3f4ac352f53c76f2b8631e6d0cccec533dd5826"
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
@@ -44,4 +44,10 @@ export type UserManagement<USER extends User = User> = {
44
44
  rolesError?: Error;
45
45
  usersError?: Error;
46
46
 
47
+ /**
48
+ * Function to get a user by uid.
49
+ * @param uid
50
+ */
51
+ getUser: (uid: string) => User | null;
52
+
47
53
  };