Removed public function in favor of filterForUser transformer

This commit is contained in:
Wyatt Johnson
2016-12-13 16:13:29 -07:00
parent 9bc81f97e5
commit 55bd600d96
3 changed files with 10 additions and 29 deletions
+9 -14
View File
@@ -84,7 +84,15 @@ SettingSchema.method('merge', function(src) {
*/
SettingSchema.method('filterForUser', function(user = false) {
if (!user || !user.roles.includes('admin')) {
return _.pick(this.toJSON(), ['moderation', 'infoBoxEnable', 'infoBoxContent']);
return _.pick(this.toJSON(), [
'moderation',
'infoBoxEnable',
'infoBoxContent',
'closeTimeout',
'closedMessage',
'charCountEnable',
'charCount'
]);
}
return this.toJSON();
@@ -106,11 +114,6 @@ const SettingService = module.exports = {};
*/
const selector = {id: '1'};
/**
* The list of settings that can be viewed publicly.
*/
const publicSettings = 'moderation infoBoxEnable infoBoxContent closeTimeout closedMessage charCountEnable charCount';
/**
* Cache expiry time in seconds for when the cached entry of the settings object
* expires. 2 minutes.
@@ -125,14 +128,6 @@ SettingService.retrieve = () => cache.wrap('settings', EXPIRY_TIME, () => {
return Setting.findOne(selector);
}).then((setting) => new Setting(setting));
/**
* Gets publicly available settings records
* @return {Promise} settings the publicly viewable settings record
*/
SettingService.public = () => cache.wrap('publicSettings', EXPIRY_TIME, () => {
return Setting.findOne(selector, publicSettings);
}).then((setting) => new Setting(setting));
/**
* This will update the settings object with whatever you pass in
* @param {object} setting a hash of whatever settings you want to update
+1 -1
View File
@@ -38,7 +38,7 @@ router.get('/', (req, res, next) => {
}),
// Get the moderation setting from the settings.
Setting.public()
Setting.retrieve()
])
.then(([asset, settings]) => {
-14
View File
@@ -20,20 +20,6 @@ describe('models.Setting', () => {
});
});
describe('#public()', () => {
it('should have a moderation field defined', () => {
return Setting.public().then(settings => {
expect(settings).to.have.property('moderation').and.to.equal('pre');
});
});
it('should not have the wordlist field defined', () => {
return Setting.public().then(settings => {
expect(settings).to.have.property('wordlist').and.to.have.length(0);
});
});
});
describe('#update()', () => {
it('should update the settings with a passed object', () => {
const mockSettings = {moderation: 'post', infoBoxEnable: true, infoBoxContent: 'yeah'};