Vulcan/packages/nova-settings/lib/methods.js

39 lines
1.2 KiB
JavaScript
Raw Normal View History

2016-08-08 11:18:21 +09:00
import Telescope from 'meteor/nova:lib';
2016-06-23 15:00:58 +09:00
import Users from 'meteor/nova:users';
2016-04-15 11:11:13 +09:00
Telescope.settings.collection.smartMethods({
editName: "settings.edit"
2016-04-21 15:09:03 +09:00
});
Meteor.methods({
"settings.getJSON": function () {
2016-07-21 14:51:58 +09:00
if (Users.isAdminById(this.userId)) {
2016-04-21 15:09:03 +09:00
return Meteor.settings;
} else {
return {};
}
},
"settings.exportToJSON": function () {
2016-07-21 14:51:58 +09:00
if (Users.isAdminById(this.userId)) {
2016-04-21 15:09:03 +09:00
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 () {
2016-07-21 14:51:58 +09:00
if (Users.isAdminById(this.userId)) {
2016-04-21 15:09:03 +09:00
const settings = Telescope.settings.collection.findOne();
Telescope.settings.collection.update(settings._id, {}, {validate: false});
}
}
})