diff --git a/src/events.js b/src/events.js index 2a05ede75c..2217ca3b51 100644 --- a/src/events.js +++ b/src/events.js @@ -25,6 +25,7 @@ events.types = [ 'post-delete', 'post-restore', 'post-purge', + 'post-change-owner', 'topic-delete', 'topic-restore', 'topic-purge', diff --git a/src/posts/user.js b/src/posts/user.js index 9205bed2f4..02c0c694ea 100644 --- a/src/posts/user.js +++ b/src/posts/user.js @@ -163,6 +163,7 @@ module.exports = function (Posts) { reduceCounters(postsByUser), updateTopicPosters(postData, toUid), ]); + return postData; }; async function reduceCounters(postsByUser) { diff --git a/src/socket.io/posts/tools.js b/src/socket.io/posts/tools.js index 7723320d5a..6c78b80c3e 100644 --- a/src/socket.io/posts/tools.js +++ b/src/socket.io/posts/tools.js @@ -172,6 +172,17 @@ module.exports = function (SocketPosts) { throw new Error('[[error:no-privileges]]'); } - await posts.changeOwner(data.pids, data.toUid); + var postData = await posts.changeOwner(data.pids, data.toUid); + var logs = postData.map(({ pid, uid, cid }) => (events.log({ + type: 'post-change-owner', + uid: socket.uid, + ip: socket.ip, + targetUid: data.toUid, + pid: pid, + originalUid: uid, + cid: cid, + }))); + + await Promise.all(logs); }; };