| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- const mongoose = require('mongoose');
- function omitInsecureAttributes(user) {
- // omit password
- delete user.password;
- // omit apiToken
- delete user.apiToken;
- // omit email
- if (!user.isEmailPublished) {
- delete user.email;
- }
- return user;
- }
- function serializeUserSecurely(user) {
- const User = mongoose.model('User');
- // return when it is not a user object
- if (user == null || !(user instanceof User)) {
- return user;
- }
- let serialized = user;
- // invoke toObject if page is a model instance
- if (user.toObject != null) {
- serialized = user.toObject();
- }
- omitInsecureAttributes(serialized);
- return serialized;
- }
- module.exports = {
- omitInsecureAttributes,
- serializeUserSecurely,
- };
|