From 85ecdf307228b94fc5bba5c0679b8d05122df8fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20FAMIBELLE-PRONZOLA?= Date: Sat, 4 Jul 2026 11:36:50 +0400 Subject: [PATCH] fix: retirer l'override register qui exposait le hash de mot de passe --- .../users-permissions/strapi-server.js | 87 ------------------- 1 file changed, 87 deletions(-) delete mode 100644 src/extensions/users-permissions/strapi-server.js diff --git a/src/extensions/users-permissions/strapi-server.js b/src/extensions/users-permissions/strapi-server.js deleted file mode 100644 index 0234d43..0000000 --- a/src/extensions/users-permissions/strapi-server.js +++ /dev/null @@ -1,87 +0,0 @@ -'use strict'; - -const yup = require('yup'); - -module.exports = (plugin) => { - /** - * Validation custom (équivalent Strapi) - */ - const registerSchema = yup.object({ - username: yup.string().required(), - email: yup.string().email().required(), - password: yup.string().min(6).required(), - }); - - const validateRegisterBody = async (data) => { - try { - return await registerSchema.validate(data, { - abortEarly: false, - stripUnknown: true, - }); - } catch (err) { - const message = err.errors.join(', '); - throw new Error(message); - } - }; - - /** - * Override du controller register - */ - plugin.controllers.auth.register = async (ctx) => { - const { body } = ctx.request; - - // 🔒 1. Validation - let params; - try { - params = await validateRegisterBody(body); - } catch (err) { - return ctx.badRequest(err.message); - } - - const { email, username, password } = params; - - // 🔎 2. Vérifier si user existe déjà - const userService = strapi.service('plugin::users-permissions.user'); - - const existingUser = await userService.fetchAll({ - filters: { - $or: [{ email }, { username }], - }, - }); - - if (existingUser.length > 0) { - return ctx.badRequest('Email or Username already taken'); - } - - // ⚙️ 3. Récupérer rôle "authenticated" - const role = await strapi - .query('plugin::users-permissions.role') - .findOne({ where: { type: 'authenticated' } }); - - if (!role) { - return ctx.badRequest('Default role not found'); - } - - // 👤 4. Création user - const newUser = await userService.add({ - username, - email, - password, - role: role.id, - confirmed: false, - }); - - // 🔑 5. Générer JWT - const jwtService = strapi.service('plugin::users-permissions.jwt'); - - const token = jwtService.issue({ id: newUser.id }); - - // 📤 6. Réponse - ctx.send({ - jwt: token, - user: newUser, - }); - }; - - return plugin; -}; \ No newline at end of file