Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

47 lignes
1.3 KiB

  1. // path: src/extensions/users-permissions/strapi-server.js
  2. module.exports = plugin => {
  3. const sanitizeOutput = (user) => {
  4. const {
  5. password, resetPasswordToken, confirmationToken, ...sanitizedUser
  6. } = user; // be careful, you need to omit other private attributes yourself
  7. return sanitizedUser;
  8. };
  9. plugin.controllers.user.me = async (ctx) => {
  10. if (!ctx.state.user) {
  11. return ctx.unauthorized();
  12. }
  13. const user = await strapi.entityService.findOne(
  14. 'plugin::users-permissions.user',
  15. ctx.state.user.id,
  16. { populate: ['role','company','division'] }
  17. );
  18. ctx.body = sanitizeOutput(user);
  19. };
  20. plugin.controllers.user.findOne = async (ctx) => {
  21. const user = await strapi.entityService.findOne(
  22. 'plugin::users-permissions.user',
  23. ctx.params.id,
  24. { ...ctx.params ,populate: ['role','company','division'],
  25. ...ctx.query,
  26. }
  27. );
  28. ctx.body = sanitizeOutput(user);
  29. };
  30. plugin.controllers.user.find = async (ctx) => {
  31. const users = await strapi.entityService.findMany(
  32. 'plugin::users-permissions.user',
  33. { ...ctx.params, populate: ['role', 'company','division'],
  34. ...ctx.query,
  35. }
  36. );
  37. ctx.body = users.map(user => sanitizeOutput(user));
  38. };
  39. return plugin;
  40. };