mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 19:15:58 +01:00 
			
		
		
		
	changed favouriting behaviour so that it no longer allows anons to favourite, and favouriting your own posts don't raise your rep count
This commit is contained in:
		
							
								
								
									
										38
									
								
								src/posts.js
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								src/posts.js
									
									
									
									
									
								
							| @@ -246,27 +246,48 @@ marked.setOptions({ | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  |  | ||||||
| 	Posts.favourite = function(io, pid, room_id, uid) { | 	Posts.favourite = function(pid, room_id, uid, socket) { | ||||||
|  | 		if (uid === 0) { | ||||||
|  | 			socket.emit('event:alert', { | ||||||
|  | 				alert_id: 'post_favourite', | ||||||
|  | 				title: 'Not Logged In', | ||||||
|  | 				message: 'Please log in in order to favourite this post', | ||||||
|  | 				type: 'error', | ||||||
|  | 				timeout: 5000 | ||||||
|  | 			}); | ||||||
|  | 			return; | ||||||
|  | 		} | ||||||
|  |  | ||||||
| 		RDB.get('pid:' + pid + ':uid', function(err, uid_of_poster) { | 		RDB.get('pid:' + pid + ':uid', function(err, uid_of_poster) { | ||||||
| 			RDB.handle(err); | 			RDB.handle(err); | ||||||
|  |  | ||||||
| 			Posts.hasFavourited(pid, uid, function(hasFavourited) { | 			Posts.hasFavourited(pid, uid, function(hasFavourited) { | ||||||
| 				if (hasFavourited == false) { | 				if (hasFavourited == false) { | ||||||
| 					RDB.sadd('pid:' + pid + ':users_favourited', uid); | 					RDB.sadd('pid:' + pid + ':users_favourited', uid); | ||||||
|  |  | ||||||
| 					user.incrementUserFieldBy(uid_of_poster, 'reputation', 1); |  | ||||||
| 					 |  | ||||||
| 					RDB.incr('pid:' + pid + ':rep'); | 					RDB.incr('pid:' + pid + ':rep'); | ||||||
|  |  | ||||||
|  | 					if (uid !== uid_of_poster) user.incrementUserFieldBy(uid_of_poster, 'reputation', 1); | ||||||
|  |  | ||||||
| 					if (room_id) { | 					if (room_id) { | ||||||
| 						io.sockets.in(room_id).emit('event:rep_up', {uid: uid_of_poster, pid: pid}); | 						io.sockets.in(room_id).emit('event:rep_up', {uid: uid !== uid_of_poster ? uid_of_poster : 0, pid: pid}); | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	Posts.unfavourite = function(io, pid, room_id, uid) { | 	Posts.unfavourite = function(pid, room_id, uid, socket) { | ||||||
|  | 		if (uid === 0) { | ||||||
|  | 			socket.emit('event:alert', { | ||||||
|  | 				alert_id: 'post_favourite', | ||||||
|  | 				title: 'Not Logged In', | ||||||
|  | 				message: 'Please log in in order to favourite this post', | ||||||
|  | 				type: 'error', | ||||||
|  | 				timeout: 5000 | ||||||
|  | 			}); | ||||||
|  | 			return; | ||||||
|  | 		} | ||||||
|  |  | ||||||
| 		RDB.get('pid:' + pid + ':uid', function(err, uid_of_poster) { | 		RDB.get('pid:' + pid + ':uid', function(err, uid_of_poster) { | ||||||
| 			RDB.handle(err); | 			RDB.handle(err); | ||||||
|  |  | ||||||
| @@ -274,11 +295,12 @@ marked.setOptions({ | |||||||
| 				if (hasFavourited == true) { | 				if (hasFavourited == true) { | ||||||
| 					 | 					 | ||||||
| 					RDB.srem('pid:' + pid + ':users_favourited', uid); | 					RDB.srem('pid:' + pid + ':users_favourited', uid); | ||||||
| 					user.incrementUserFieldBy(uid_of_poster, 'reputation', -1); |  | ||||||
| 					RDB.decr('pid:' + pid + ':rep'); | 					RDB.decr('pid:' + pid + ':rep'); | ||||||
|  | 					 | ||||||
|  | 					if (uid !== uid_of_poster) user.incrementUserFieldBy(uid_of_poster, 'reputation', -1); | ||||||
|  |  | ||||||
| 					if (room_id) { | 					if (room_id) { | ||||||
| 						io.sockets.in(room_id).emit('event:rep_down', {uid: uid_of_poster, pid: pid}); | 						io.sockets.in(room_id).emit('event:rep_down', {uid: uid !== uid_of_poster ? uid_of_poster : 0, pid: pid}); | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 			}); | 			}); | ||||||
|   | |||||||
| @@ -172,11 +172,11 @@ var SocketIO = require('socket.io').listen(global.server,{log:false}), | |||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
| 		socket.on('api:posts.favourite', function(data) { | 		socket.on('api:posts.favourite', function(data) { | ||||||
| 			posts.favourite(io, data.pid, data.room_id, uid); | 			posts.favourite(data.pid, data.room_id, uid, socket); | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
| 		socket.on('api:posts.unfavourite', function(data) { | 		socket.on('api:posts.unfavourite', function(data) { | ||||||
| 			posts.unfavourite(io, data.pid, data.room_id, uid); | 			posts.unfavourite(data.pid, data.room_id, uid, socket); | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
| 		socket.on('api:user.active.get_record', function() { | 		socket.on('api:user.active.get_record', function() { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user