mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-12 08:55:47 +01:00
options.unescape was not used correctly fix groups.update so it doesnt overwrite data if some fields are not passed in
This commit is contained in:
@@ -226,9 +226,9 @@ var async = require('async'),
|
|||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
results.base.name = !options.unescape ? validator.escape(results.base.name) : results.base.name;
|
results.base.name = !options.unescape ? validator.escape(results.base.name) : results.base.name;
|
||||||
results.base.description = options.unescape ? validator.escape(results.base.description) : results.base.description;
|
results.base.description = !options.unescape ? validator.escape(results.base.description) : results.base.description;
|
||||||
results.base.descriptionParsed = descriptionParsed;
|
results.base.descriptionParsed = descriptionParsed;
|
||||||
results.base.userTitle = options.unescape ? validator.escape(results.base.userTitle) : results.base.userTitle;
|
results.base.userTitle = !options.unescape ? validator.escape(results.base.userTitle) : results.base.userTitle;
|
||||||
results.base.userTitleEnabled = results.base.userTitleEnabled ? !!parseInt(results.base.userTitleEnabled, 10) : true;
|
results.base.userTitleEnabled = results.base.userTitleEnabled ? !!parseInt(results.base.userTitleEnabled, 10) : true;
|
||||||
results.base.createtimeISO = utils.toISOString(results.base.createtime);
|
results.base.createtimeISO = utils.toISOString(results.base.createtime);
|
||||||
results.base.members = results.users.filter(Boolean);
|
results.base.members = results.users.filter(Boolean);
|
||||||
@@ -538,14 +538,26 @@ var async = require('async'),
|
|||||||
}
|
}
|
||||||
|
|
||||||
var payload = {
|
var payload = {
|
||||||
userTitle: values.userTitle || '',
|
description: values.description || '',
|
||||||
userTitleEnabled: values.userTitleEnabled === true ? '1' : '0',
|
icon: values.icon || '',
|
||||||
description: values.description || '',
|
labelColor: values.labelColor || '#000000'
|
||||||
icon: values.icon || '',
|
};
|
||||||
labelColor: values.labelColor || '#000000',
|
|
||||||
hidden: values.hidden === true ? '1' : '0',
|
if (values.hasOwnProperty('userTitle')) {
|
||||||
'private': values.private === false ? '0' : '1'
|
payload.userTitle = values.userTitle || '';
|
||||||
};
|
}
|
||||||
|
|
||||||
|
if (values.hasOwnProperty('userTitleEnabled')) {
|
||||||
|
payload.userTitleEnabled = values.userTitleEnabled ? '1' : '0';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (values.hasOwnProperty('hidden')) {
|
||||||
|
payload.hidden = values.hidden ? '1' : '0';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (values.hasOwnProperty('private')) {
|
||||||
|
payload.private = values.private ? '1' : '0';
|
||||||
|
}
|
||||||
|
|
||||||
async.series([
|
async.series([
|
||||||
async.apply(updatePrivacy, groupName, values.private),
|
async.apply(updatePrivacy, groupName, values.private),
|
||||||
@@ -566,9 +578,15 @@ var async = require('async'),
|
|||||||
};
|
};
|
||||||
|
|
||||||
function updatePrivacy(groupName, newValue, callback) {
|
function updatePrivacy(groupName, newValue, callback) {
|
||||||
// Grab the group's current privacy value
|
if (!newValue) {
|
||||||
|
return callback();
|
||||||
|
}
|
||||||
|
|
||||||
Groups.getGroupFields(groupName, ['private'], function(err, currentValue) {
|
Groups.getGroupFields(groupName, ['private'], function(err, currentValue) {
|
||||||
currentValue = currentValue.private === '1'; // Now a Boolean
|
if (err) {
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
currentValue = currentValue.private === '1';
|
||||||
|
|
||||||
if (currentValue !== newValue && currentValue === true) {
|
if (currentValue !== newValue && currentValue === true) {
|
||||||
// Group is now public, so all pending users are automatically considered members
|
// Group is now public, so all pending users are automatically considered members
|
||||||
|
|||||||
Reference in New Issue
Block a user