| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- const { serializeUserSecurely } = require('./user-serializer');
- function depopulate(page, attributeName) {
- // revert the ObjectID
- if (page[attributeName] != null && page[attributeName]._id != null) {
- page[attributeName] = page[attributeName]._id;
- }
- }
- function serializeInsecureUserAttributes(page) {
- if (page.lastUpdateUser != null && page.lastUpdateUser._id != null) {
- page.lastUpdateUser = serializeUserSecurely(page.lastUpdateUser);
- }
- if (page.creator != null && page.creator._id != null) {
- page.creator = serializeUserSecurely(page.creator);
- }
- if (page.revision != null && page.revision.author != null && page.revision.author._id != null) {
- page.revision.author = serializeUserSecurely(page.revision.author);
- }
- return page;
- }
- function serializePageSecurely(page) {
- let serialized = page;
- // invoke toObject if page is a model instance
- if (page.toObject != null) {
- serialized = page.toObject();
- }
- // depopulate revision
- depopulate(serialized, 'revision');
- serializeInsecureUserAttributes(serialized);
- return serialized;
- }
- module.exports = {
- serializePageSecurely,
- };
|