properly fix #2586

v1.18.x
barisusakli 10 years ago
parent d7c27b35ab
commit a8de1c1465

@ -17,15 +17,11 @@ var async = require('async'),
return callback(new Error('[[error:not-logged-in]]'));
}
posts.getPostFields(pid, ['pid', 'uid', 'timestamp'], function (err, postData) {
posts.getPostFields(pid, ['pid', 'uid'], function (err, postData) {
if (err) {
return callback(err);
}
if (uid === parseInt(postData.uid, 10)) {
return callback(new Error('[[error:cant-vote-self-post]]'));
}
var now = Date.now();
if(type === 'upvote' && !unvote) {
@ -167,16 +163,24 @@ var async = require('async'),
};
function unvote(pid, uid, command, callback) {
Favourites.hasVoted(pid, uid, function(err, voteStatus) {
async.parallel({
owner: function(next) {
posts.getPostField(pid, 'uid', next);
},
voteStatus: function(next) {
Favourites.hasVoted(pid, uid, next);
}
}, function(err, results) {
if (err) {
return callback(err);
}
if (!voteStatus || (!voteStatus.upvoted && !voteStatus.downvoted)) {
return callback();
if (parseInt(uid, 10) === parseInt(results.owner, 10)) {
return callback(new Error('[[error:cant-vote-self-post]]'));
}
var hook,
var voteStatus = results.voteStatus,
hook,
current = voteStatus.upvoted ? 'upvote' : 'downvote';
if (voteStatus.upvoted && command === 'downvote' || voteStatus.downvoted && command === 'upvote') {
@ -188,17 +192,17 @@ var async = require('async'),
current = 'unvote';
}
vote(voteStatus.upvoted ? 'downvote' : 'upvote', true, pid, uid, function(err, data) {
if (err) {
return callback(err);
}
plugins.fireHook('action:post.' + hook, {
pid: pid,
uid: uid,
current: current
});
callback(null, data);
plugins.fireHook('action:post.' + hook, {
pid: pid,
uid: uid,
current: current
});
if (!voteStatus || (!voteStatus.upvoted && !voteStatus.downvoted)) {
return callback();
}
vote(voteStatus.upvoted ? 'downvote' : 'upvote', true, pid, uid, callback);
});
}

Loading…
Cancel
Save