From 9befa6aca74e0ba53f2859d28ec30f82ab8b247f Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 31 Dec 2014 20:48:32 -0500 Subject: [PATCH] proper handling of post editing, integration with ACP toggle, #2569 --- public/src/modules/composer.js | 11 +++++++---- src/socket.io/modules.js | 3 ++- src/topics/posts.js | 5 +++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/public/src/modules/composer.js b/public/src/modules/composer.js index 6615c51df5..a07af172f1 100644 --- a/public/src/modules/composer.js +++ b/public/src/modules/composer.js @@ -154,6 +154,7 @@ define('composer', [ push({ pid: pid, + uid: threadData.uid, title: $('
').html(threadData.title).text(), body: threadData.body, modified: false, @@ -213,9 +214,11 @@ define('composer', [ } function createNewComposer(post_uuid) { - var allowTopicsThumbnail = config.allowTopicsThumbnail && composer.posts[post_uuid].isMain && (config.hasImageUploadPlugin || config.allowFileUploads); - var isTopic = composer.posts[post_uuid] ? !!composer.posts[post_uuid].cid : false; - var isMain = composer.posts[post_uuid] ? !!composer.posts[post_uuid].isMain : false; + var allowTopicsThumbnail = config.allowTopicsThumbnail && composer.posts[post_uuid].isMain && (config.hasImageUploadPlugin || config.allowFileUploads), + isTopic = composer.posts[post_uuid] ? !!composer.posts[post_uuid].cid : false, + isMain = composer.posts[post_uuid] ? !!composer.posts[post_uuid].isMain : false, + isEditing = composer.posts[post_uuid] ? !!composer.posts[post_uuid].pid : false, + isGuestPost = composer.posts[post_uuid] ? composer.posts[post_uuid].uid === '0' : null; composer.bsEnvironment = utils.findBootstrapEnvironment(); @@ -225,7 +228,7 @@ define('composer', [ allowTopicsThumbnail: allowTopicsThumbnail, showTags: isTopic || isMain, isTopic: isTopic, - allowGuestHandles: config.allowGuestHandles + showHandleInput: (app.user.uid === 0 || (isEditing && isGuestPost && app.user.isAdmin)) && config.allowGuestHandles }; parseAndTranslate(template, data, function(composerTemplate) { diff --git a/src/socket.io/modules.js b/src/socket.io/modules.js index a922613ac3..7c74530e3e 100644 --- a/src/socket.io/modules.js +++ b/src/socket.io/modules.js @@ -35,7 +35,7 @@ SocketModules.composer.push = function(socket, pid, callback) { if (err || !canRead) { return callback(err || new Error('[[error:no-privileges]]')); } - posts.getPostFields(pid, ['content', 'tid'], function(err, postData) { + posts.getPostFields(pid, ['content', 'tid', 'uid'], function(err, postData) { if(err || (!postData && !postData.content)) { return callback(err || new Error('[[error:invalid-pid]]')); } @@ -61,6 +61,7 @@ SocketModules.composer.push = function(socket, pid, callback) { callback(null, { pid: pid, + uid: postData.uid, body: postData.content, title: results.topic.title, topic_thumb: results.topic.thumb, diff --git a/src/topics/posts.js b/src/topics/posts.js index 6653c15934..c6e7829e5d 100644 --- a/src/topics/posts.js +++ b/src/topics/posts.js @@ -10,7 +10,8 @@ var async = require('async'), user = require('../user'), favourites = require('../favourites'), posts = require('../posts'), - privileges = require('../privileges'); + privileges = require('../privileges'), + meta = require('../meta'); module.exports = function(Topics) { @@ -130,7 +131,7 @@ module.exports = function(Topics) { } // Username override for guests, if enabled - if (parseInt(postObj.uid, 10) === 0 && postObj.handle) { + if (parseInt(meta.config.allowGuestHandles, 10) === 1 && parseInt(postObj.uid, 10) === 0 && postObj.handle) { postObj.user.username = postObj.handle; } }