fix: :bug: Link creator to event on sign-up
Tim Izzo tim@octree.ch
Mon, 02 Sep 2024 15:52:27 +0200
2 files changed,
31 insertions(+),
0 deletions(-)
A
backend/src/extensions/users-permissions/content-types/user/lifecycles.ts
@@ -0,0 +1,25 @@
+export default { + async afterCreate(event) { + const { result } = event; + if (result.email) { + const linkedEvents = await strapi.entityService.findMany( + "api::event.event", + { + filters: { email: result.email }, + populate: ["users"], + } + ); + for (const event of linkedEvents) { + strapi.log.info( + `Set user ${result.id} (${result.email}) as creator of event ${event.id} (${event.uuid})` + ); + await strapi.entityService.update("api::event.event", event.id, { + data: { + creator: result.id, + users: [...(event.users || []), result.id], + }, + }); + } + } + }, +};
M
backend/src/index.ts
→
backend/src/index.ts
@@ -1,5 +1,6 @@
import bootstrapActions from "./bootstrap"; import graphqlExtends from "./graphql"; +import userLifecycles from "./extensions/users-permissions/content-types/user/lifecycles"; export default { /**@@ -42,5 +43,10 @@ async bootstrap(context) {
for (let action of bootstrapActions) { await action(context); } + + strapi.db.lifecycles.subscribe({ + models: ["plugin::users-permissions.user"], + ...userLifecycles, + }); }, };