mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-30 18:46:01 +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;
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
groups.getGroupNameByGroupSlug(req.params.slug, next);
|
||||
},
|
||||
function (_groupName, next) {
|
||||
if (!_groupName) {
|
||||
return callback();
|
||||
}
|
||||
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);
|
||||
},
|
||||
], function (err, users) {
|
||||
if (err || !groupName) {
|
||||
return next(err);
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
var breadcrumbs = helpers.buildBreadcrumbs([
|
||||
|
||||
@@ -296,7 +296,7 @@ var utils = require('../public/src/utils');
|
||||
};
|
||||
|
||||
Groups.isHidden = function (groupName, callback) {
|
||||
db.getObjectField(groupName, 'hidden', function (err, isHidden) {
|
||||
db.getObjectField('group:' + groupName, 'hidden', function (err, isHidden) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ describe('Controllers', function () {
|
||||
|
||||
var tid;
|
||||
var cid;
|
||||
var fooUid;
|
||||
|
||||
before(function (done) {
|
||||
async.series({
|
||||
@@ -33,6 +34,7 @@ describe('Controllers', function () {
|
||||
return done(err);
|
||||
}
|
||||
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) {
|
||||
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) {
|
||||
db.emptydb(done);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user