mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	only use unique cids in isModerator
This commit is contained in:
		| @@ -179,7 +179,7 @@ var async = require('async'), | |||||||
| 		Topics.getTopicsData(tids, function(err, topics) { | 		Topics.getTopicsData(tids, function(err, topics) { | ||||||
| 			function mapFilter(array, field) { | 			function mapFilter(array, field) { | ||||||
| 				return array.map(function(topic) { | 				return array.map(function(topic) { | ||||||
| 					return topic && topic[field]; | 					return topic && topic[field].toString(); | ||||||
| 				}).filter(function(value, index, array) { | 				}).filter(function(value, index, array) { | ||||||
| 					return utils.isNumber(value) && array.indexOf(value) === index; | 					return utils.isNumber(value) && array.indexOf(value) === index; | ||||||
| 				}); | 				}); | ||||||
|   | |||||||
							
								
								
									
										22
									
								
								src/user.js
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								src/user.js
									
									
									
									
									
								
							| @@ -394,10 +394,28 @@ var	async = require('async'), | |||||||
|  |  | ||||||
| 	User.isModerator = function(uid, cid, callback) { | 	User.isModerator = function(uid, cid, callback) { | ||||||
| 		if (Array.isArray(cid)) { | 		if (Array.isArray(cid)) { | ||||||
| 			var groupNames = cid.map(function(cid) { | 			var uniqueCids = cid.filter(function(cid, index, array) { | ||||||
|  | 				return array.indexOf(cid) === index; | ||||||
|  | 			}); | ||||||
|  |  | ||||||
|  | 			var groupNames = uniqueCids.map(function(cid) { | ||||||
| 				return 'cid:' + cid + ':privileges:mods'; | 				return 'cid:' + cid + ':privileges:mods'; | ||||||
| 			}); | 			}); | ||||||
| 			groups.isMemberOfGroups(uid, groupNames, callback); |  | ||||||
|  | 			groups.isMemberOfGroups(uid, groupNames, function(err, isMembers) { | ||||||
|  | 				if (err) { | ||||||
|  | 					return callback(err); | ||||||
|  | 				} | ||||||
|  |  | ||||||
|  | 				var map = {}; | ||||||
|  | 				uniqueCids.forEach(function(cid, index) { | ||||||
|  | 					map[cid] = isMembers[index]; | ||||||
|  | 				}); | ||||||
|  |  | ||||||
|  | 				callback(null, cid.map(function(cid) { | ||||||
|  | 					return map[cid]; | ||||||
|  | 				})); | ||||||
|  | 			}); | ||||||
| 		} else { | 		} else { | ||||||
| 			if (Array.isArray(uid)) { | 			if (Array.isArray(uid)) { | ||||||
| 				groups.isMembers(uid, 'cid:' + cid + ':privileges:mods', callback); | 				groups.isMembers(uid, 'cid:' + cid + ':privileges:mods', callback); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user