user-serializer.js 732 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const mongoose = require('mongoose');
  2. function omitInsecureAttributes(user) {
  3. // omit password
  4. delete user.password;
  5. // omit apiToken
  6. delete user.apiToken;
  7. // omit email
  8. if (!user.isEmailPublished) {
  9. delete user.email;
  10. }
  11. return user;
  12. }
  13. function serializeUserSecurely(user) {
  14. const User = mongoose.model('User');
  15. // return when it is not a user object
  16. if (user == null || !(user instanceof User)) {
  17. return user;
  18. }
  19. let serialized = user;
  20. // invoke toObject if page is a model instance
  21. if (user.toObject != null) {
  22. serialized = user.toObject();
  23. }
  24. omitInsecureAttributes(serialized);
  25. return serialized;
  26. }
  27. module.exports = {
  28. omitInsecureAttributes,
  29. serializeUserSecurely,
  30. };