diff --git a/imports/api/SiteSettings/SiteSettings.js b/imports/api/SiteSettings/SiteSettings.js index e690671..2bbd95f 100644 --- a/imports/api/SiteSettings/SiteSettings.js +++ b/imports/api/SiteSettings/SiteSettings.js @@ -40,6 +40,7 @@ SiteSettings.getSchema = type => new SimpleSchema({ type: String, description: String, value: SiteSettingsTypes[type].value, + isPublic: Boolean, createdAt: defaultCreatedAt, updatedAt: defaultUpdateAt }); diff --git a/imports/api/SiteSettings/server/publications.js b/imports/api/SiteSettings/server/publications.js index cd7f33d..ab9f1b2 100644 --- a/imports/api/SiteSettings/server/publications.js +++ b/imports/api/SiteSettings/server/publications.js @@ -3,4 +3,4 @@ import { Meteor } from 'meteor/meteor'; import SiteSettings from '../SiteSettings'; -Meteor.publish('settings', () => SiteSettings.find()); +Meteor.publish('settings', () => SiteSettings.find({ isPublic: true })); diff --git a/imports/startup/server/migrations.js b/imports/startup/server/migrations.js index 6002d4d..e58605f 100644 --- a/imports/startup/server/migrations.js +++ b/imports/startup/server/migrations.js @@ -117,6 +117,16 @@ Meteor.startup(() => { } }); + Migrations.add({ + version: 8, + up: function siteSettingsAddIndex() { + SiteSettings._ensureIndex({ isPublic: 1 }, { unique: 1 }); + SiteSettings.find({ isPublic: null }).forEach((setting) => { + SiteSettings.update({ _id: setting._id }, { $set: { isPublic: true } }); + }); + } + }); + // Set createdAt in users & subs Migrations.migrateTo('latest');