mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	fixed markAsUnreadForAll permissions
This commit is contained in:
		| @@ -150,11 +150,42 @@ SocketTopics.markCategoryTopicsRead = function(socket, cid, callback) { | ||||
| }; | ||||
|  | ||||
| SocketTopics.markAsUnreadForAll = function(socket, tids, callback) { | ||||
| 	if(!Array.isArray(tids)) { | ||||
| 	if (!Array.isArray(tids)) { | ||||
| 		return callback(new Error('[[error:invalid-tid]]')); | ||||
| 	} | ||||
|  | ||||
| 	if (!socket.uid) { | ||||
| 		return callback(new Error('[[error:no-privileges]]')); | ||||
| 	} | ||||
|  | ||||
| 	user.isAdministrator(socket.uid, function(err, isAdmin) { | ||||
| 		if (err) { | ||||
| 			return callback(err); | ||||
| 		} | ||||
|  | ||||
| 		async.each(tids, function(tid, next) { | ||||
| 			async.waterfall([ | ||||
| 				function(next) { | ||||
| 					threadTools.exists(tid, next); | ||||
| 				}, | ||||
| 				function(exists, next) { | ||||
| 					if (!exists) { | ||||
| 						return next(new Error('[[error:invalid-tid]]')); | ||||
| 					} | ||||
| 					topics.getTopicField(tid, 'cid', next); | ||||
| 				}, | ||||
| 				function(cid, next) { | ||||
| 					user.isModerator(socket.uid, cid, next); | ||||
| 				} | ||||
| 			], function(err, isMod) { | ||||
| 				if (err) { | ||||
| 					return next(err); | ||||
| 				} | ||||
|  | ||||
| 				if (!isAdmin && !isMod) { | ||||
| 					return next(new Error('[[error:no-privileges]]')); | ||||
| 				} | ||||
|  | ||||
| 				topics.markAsUnreadForAll(tid, function(err) { | ||||
| 					if(err) { | ||||
| 						return next(err); | ||||
| @@ -168,7 +199,9 @@ SocketTopics.markAsUnreadForAll = function(socket, tids, callback) { | ||||
| 						next(); | ||||
| 					}); | ||||
| 				}); | ||||
| 			}); | ||||
| 		}, callback); | ||||
| 	}); | ||||
| }; | ||||
|  | ||||
| SocketTopics.delete = function(socket, data, callback) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user