Vulcan/packages/nova-settings/lib/methods.js
2016-06-23 15:00:58 +09:00

38 lines
No EOL
1.1 KiB
JavaScript

import Users from 'meteor/nova:users';
Telescope.settings.collection.smartMethods({
editName: "settings.edit"
});
Meteor.methods({
"settings.getJSON": function () {
if (Users.is.adminById(this.userId)) {
return Meteor.settings;
} else {
return {};
}
},
"settings.exportToJSON": function () {
if (Users.is.adminById(this.userId)) {
let settings = Telescope.settings.collection.findOne();
const schema = Telescope.settings.collection.simpleSchema()._schema;
const publicFields = Telescope.settings.collection.getPublicFields();
delete settings._id;
settings.public = {};
_.forEach(settings, (field, key) => {
if (_.contains(publicFields, key)) {
settings.public[key] = field;
delete settings[key];
}
});
console.log(JSON.stringify(settings, null, 2));
return settings;
}
},
"settings.clear": function () {
if (Users.is.adminById(this.userId)) {
const settings = Telescope.settings.collection.findOne();
Telescope.settings.collection.update(settings._id, {}, {validate: false});
}
}
})