| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | AccountSettings = new Mongo.Collection('accountSettings');AccountSettings.attachSchema(  new SimpleSchema({    _id: {      type: String,    },    booleanValue: {      type: Boolean,      optional: true,    },    sort: {      type: Number,      decimal: true,    },    createdAt: {      type: Date,      optional: true,      // eslint-disable-next-line consistent-return      autoValue() {        if (this.isInsert) {          return new Date();        } else if (this.isUpsert) {          return { $setOnInsert: new Date() };        } else {          this.unset();        }      },    },    modifiedAt: {      type: Date,      denyUpdate: false,      // eslint-disable-next-line consistent-return      autoValue() {        if (this.isInsert || this.isUpsert || this.isUpdate) {          return new Date();        } else {          this.unset();        }      },    },  }),);AccountSettings.allow({  update(userId) {    const user = Users.findOne(userId);    return user && user.isAdmin;  },});if (Meteor.isServer) {  Meteor.startup(() => {    AccountSettings._collection._ensureIndex({ modifiedAt: -1 });    AccountSettings.upsert(      { _id: 'accounts-allowEmailChange' },      {        $setOnInsert: {          booleanValue: false,          sort: 0,        },      },    );    AccountSettings.upsert(      { _id: 'accounts-allowUserNameChange' },      {        $setOnInsert: {          booleanValue: false,          sort: 1,        },      },    );    AccountSettings.upsert(      { _id: 'accounts-allowUserDelete' },      {        $setOnInsert: {          booleanValue: false,          sort: 0,        },      },    );  });}AccountSettings.helpers({  allowEmailChange() {    return AccountSettings.findOne('accounts-allowEmailChange').booleanValue;  },  allowUserNameChange() {    return AccountSettings.findOne('accounts-allowUserNameChange').booleanValue;  },  allowUserDelete() {    return AccountSettings.findOne('accounts-allowUserDelete').booleanValue;  },});export default AccountSettings;
 |