mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	closes #5159
This commit is contained in:
		| @@ -115,19 +115,33 @@ groupsController.details = function (req, res, callback) { | |||||||
| 	}); | 	}); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| groupsController.members = function (req, res, next) { | groupsController.members = function (req, res, callback) { | ||||||
| 	var groupName; | 	var groupName; | ||||||
| 	async.waterfall([ | 	async.waterfall([ | ||||||
| 		function (next) { | 		function (next) { | ||||||
| 			groups.getGroupNameByGroupSlug(req.params.slug, next); | 			groups.getGroupNameByGroupSlug(req.params.slug, next); | ||||||
| 		}, | 		}, | ||||||
| 		function (_groupName, next) { | 		function (_groupName, next) { | ||||||
|  | 			if (!_groupName) { | ||||||
|  | 				return callback(); | ||||||
|  | 			} | ||||||
| 			groupName = _groupName; | 			groupName = _groupName; | ||||||
|  | 			async.parallel({ | ||||||
|  | 				isAdminOrGlobalMod: async.apply(user.isAdminOrGlobalMod, req.uid), | ||||||
|  | 				isMember: async.apply(groups.isMember, req.uid, groupName), | ||||||
|  | 				isHidden: async.apply(groups.isHidden, groupName) | ||||||
|  | 			}, next); | ||||||
|  | 		}, | ||||||
|  | 		function (results, next) { | ||||||
|  | 			if (results.isHidden && !results.isMember && !results.isAdminOrGlobalMod) { | ||||||
|  | 				return callback(); | ||||||
|  | 			} | ||||||
|  |  | ||||||
| 			user.getUsersFromSet('group:' + groupName + ':members', req.uid, 0, 49, next); | 			user.getUsersFromSet('group:' + groupName + ':members', req.uid, 0, 49, next); | ||||||
| 		}, | 		}, | ||||||
| 	], function (err, users) { | 	], function (err, users) { | ||||||
| 		if (err || !groupName) { | 		if (err) { | ||||||
| 			return next(err); | 			return callback(err); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		var breadcrumbs = helpers.buildBreadcrumbs([ | 		var breadcrumbs = helpers.buildBreadcrumbs([ | ||||||
|   | |||||||
| @@ -296,7 +296,7 @@ var utils = require('../public/src/utils'); | |||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	Groups.isHidden = function (groupName, callback) { | 	Groups.isHidden = function (groupName, callback) { | ||||||
| 		db.getObjectField(groupName, 'hidden', function (err, isHidden) { | 		db.getObjectField('group:' + groupName, 'hidden', function (err, isHidden) { | ||||||
| 			if (err) { | 			if (err) { | ||||||
| 				return callback(err); | 				return callback(err); | ||||||
| 			} | 			} | ||||||
|   | |||||||
| @@ -16,6 +16,7 @@ describe('Controllers', function () { | |||||||
|  |  | ||||||
| 	var tid; | 	var tid; | ||||||
| 	var cid; | 	var cid; | ||||||
|  | 	var fooUid; | ||||||
|  |  | ||||||
| 	before(function (done) { | 	before(function (done) { | ||||||
| 		async.series({ | 		async.series({ | ||||||
| @@ -33,6 +34,7 @@ describe('Controllers', function () { | |||||||
| 				return done(err); | 				return done(err); | ||||||
| 			} | 			} | ||||||
| 			cid = results.category.cid; | 			cid = results.category.cid; | ||||||
|  | 			fooUid = results.user; | ||||||
|  |  | ||||||
| 			topics.post({uid: results.user, title: 'test topic title', content: 'test topic content', cid: results.category.cid}, function (err, result) { | 			topics.post({uid: results.user, title: 'test topic title', content: 'test topic content', cid: results.category.cid}, function (err, result) { | ||||||
| 				tid = result.topicData.tid; | 				tid = result.topicData.tid; | ||||||
| @@ -382,6 +384,84 @@ describe('Controllers', function () { | |||||||
| 		}); | 		}); | ||||||
| 	}); | 	}); | ||||||
|  |  | ||||||
|  | 	it('should load users page', function (done) { | ||||||
|  | 		request(nconf.get('url') + '/users', function (err, res, body) { | ||||||
|  | 			assert.ifError(err); | ||||||
|  | 			assert.equal(res.statusCode, 200); | ||||||
|  | 			assert(body); | ||||||
|  | 			done(); | ||||||
|  | 		}); | ||||||
|  | 	}); | ||||||
|  |  | ||||||
|  | 	it('should load users page', function (done) { | ||||||
|  | 		request(nconf.get('url') + '/users?section=online', function (err, res, body) { | ||||||
|  | 			assert.ifError(err); | ||||||
|  | 			assert.equal(res.statusCode, 200); | ||||||
|  | 			assert(body); | ||||||
|  | 			done(); | ||||||
|  | 		}); | ||||||
|  | 	}); | ||||||
|  |  | ||||||
|  | 	it('should load users search page', function (done) { | ||||||
|  | 		request(nconf.get('url') + '/users?term=bar§ion=sort-posts', function (err, res, body) { | ||||||
|  | 			assert.ifError(err); | ||||||
|  | 			assert.equal(res.statusCode, 200); | ||||||
|  | 			assert(body); | ||||||
|  | 			done(); | ||||||
|  | 		}); | ||||||
|  | 	}); | ||||||
|  |  | ||||||
|  | 	it('should load groups page', function (done) { | ||||||
|  | 		request(nconf.get('url') + '/groups', function (err, res, body) { | ||||||
|  | 			assert.ifError(err); | ||||||
|  | 			assert.equal(res.statusCode, 200); | ||||||
|  | 			assert(body); | ||||||
|  | 			done(); | ||||||
|  | 		}); | ||||||
|  | 	}); | ||||||
|  |  | ||||||
|  | 	it('should load group details page', function (done) { | ||||||
|  | 		var groups = require('../src/groups'); | ||||||
|  | 		groups.create({ | ||||||
|  | 			name: 'group-details', | ||||||
|  | 			description: 'Foobar!', | ||||||
|  | 			hidden: 0 | ||||||
|  | 		}, function (err) { | ||||||
|  | 			assert.ifError(err); | ||||||
|  | 			request(nconf.get('url') + '/groups/group-details', function (err, res, body) { | ||||||
|  | 				assert.ifError(err); | ||||||
|  | 				assert.equal(res.statusCode, 200); | ||||||
|  | 				assert(body); | ||||||
|  | 				done(); | ||||||
|  | 			}); | ||||||
|  | 		}); | ||||||
|  | 	}); | ||||||
|  |  | ||||||
|  | 	it('should load group members page', function (done) { | ||||||
|  | 		request(nconf.get('url') + '/groups/group-details/members', function (err, res, body) { | ||||||
|  | 			assert.ifError(err); | ||||||
|  | 			assert.equal(res.statusCode, 200); | ||||||
|  | 			assert(body); | ||||||
|  | 			done(); | ||||||
|  | 		}); | ||||||
|  | 	}); | ||||||
|  |  | ||||||
|  | 	it('should 404 when trying to load group members of hidden group', function (done) { | ||||||
|  | 		var groups = require('../src/groups'); | ||||||
|  | 		groups.create({ | ||||||
|  | 			name: 'hidden-group', | ||||||
|  | 			description: 'Foobar!', | ||||||
|  | 			hidden: 1 | ||||||
|  | 		}, function (err) { | ||||||
|  | 			assert.ifError(err); | ||||||
|  | 			request(nconf.get('url') + '/groups/hidden-group/members', function (err, res, body) { | ||||||
|  | 				assert.ifError(err); | ||||||
|  | 				assert.equal(res.statusCode, 404); | ||||||
|  | 				done(); | ||||||
|  | 			}); | ||||||
|  | 		}); | ||||||
|  | 	}); | ||||||
|  |  | ||||||
| 	after(function (done) { | 	after(function (done) { | ||||||
| 		db.emptydb(done); | 		db.emptydb(done); | ||||||
| 	}); | 	}); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user