From 18343dfbec45da9f14343441aa4ebc840b6cc584 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20L=C3=B3pez?= Date: Wed, 7 Sep 2022 19:31:38 +0200 Subject: [PATCH] Extra params in /api/passwordless/send-link endpoint Relates to Issue https://github.com/kucherenko/strapi-plugin-passwordless/issues/9 --- server/controllers/auth.js | 8 +++++++- server/services/passwordless.js | 8 +++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/server/controllers/auth.js b/server/controllers/auth.js index 5f24cee..4591ed1 100644 --- a/server/controllers/auth.js +++ b/server/controllers/auth.js @@ -86,6 +86,12 @@ module.exports = { const email = params.email ? params.email.trim().toLowerCase() : null; const context = params.context || {}; const username = params.username || null; + const keepParams = params.keepParams || []; + + const extraParams = keepParams.reduce((extra, param) => { + extra[param] = params[param]; + return extra; + }, {}); const isEmail = emailRegExp.test(email); @@ -95,7 +101,7 @@ module.exports = { let user; try { - user = await passwordless.user(email, username); + user = await passwordless.user(email, username, extraParams); } catch (e) { return ctx.badRequest('wrong.user') } diff --git a/server/services/passwordless.js b/server/services/passwordless.js index c0359e3..9d169c0 100644 --- a/server/services/passwordless.js +++ b/server/services/passwordless.js @@ -55,14 +55,16 @@ module.exports = ( const newUser = { email: user.email, username: user.username || user.email, - role: {id: role.id} + role: {id: role.id}, + ...user.extraParams }; + return strapi .query('plugin::users-permissions.user') .create({data: newUser, populate: ['role']}); }, - async user(email, username) { + async user(email, username, extraParams) { const settings = await this.settings(); const {user: userService} = strapi.plugins['users-permissions'].services; const user = email ? await this.fetchUser({email}) : null; @@ -74,7 +76,7 @@ module.exports = ( return userByUsername } if (email && settings.createUserIfNotExists) { - return this.createUser({email, username}) + return this.createUser({email, username, extraParams}) } return false; },