mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-12 08:55:47 +01:00
reverting groups.js to 4701eb1cee
This commit is contained in:
@@ -4,23 +4,7 @@
|
|||||||
var async = require('async'),
|
var async = require('async'),
|
||||||
winston = require('winston'),
|
winston = require('winston'),
|
||||||
user = require('./user'),
|
user = require('./user'),
|
||||||
db = require('./database'),
|
db = require('./database');
|
||||||
utils = require('../public/src/utils'),
|
|
||||||
|
|
||||||
filterGroups = function(groups, options) {
|
|
||||||
// Remove system, hidden, or deleted groups from this list
|
|
||||||
if (groups && !options.showAllGroups) {
|
|
||||||
return groups.filter(function (group) {
|
|
||||||
if (group.deleted || (group.hidden && !group.system) || (!options.showSystemGroups && group.system)) {
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
return groups;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Groups.list = function(options, callback) {
|
Groups.list = function(options, callback) {
|
||||||
db.getSetMembers('groups', function (err, groupNames) {
|
db.getSetMembers('groups', function (err, groupNames) {
|
||||||
@@ -28,7 +12,18 @@
|
|||||||
async.map(groupNames, function (groupName, next) {
|
async.map(groupNames, function (groupName, next) {
|
||||||
Groups.get(groupName, options, next);
|
Groups.get(groupName, options, next);
|
||||||
}, function (err, groups) {
|
}, function (err, groups) {
|
||||||
callback(err, filterGroups(groups, options));
|
// Remove system, hidden, or deleted groups from this list
|
||||||
|
if (!options.showAllGroups) {
|
||||||
|
groups = groups.filter(function (group) {
|
||||||
|
if (group.deleted || (group.hidden && !group.system) || (!options.showSystemGroups && group.system)) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
callback(err, groups);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
callback(null, []);
|
callback(null, []);
|
||||||
@@ -78,12 +73,10 @@
|
|||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
// User counts
|
|
||||||
results.base.count = numUsers || results.users.length;
|
results.base.count = numUsers || results.users.length;
|
||||||
results.base.members = results.users;
|
results.base.members = results.users;
|
||||||
results.base.memberCount = numUsers || results.users.length;
|
results.base.memberCount = numUsers || results.users.length;
|
||||||
|
|
||||||
results.base.slug = utils.slugify(results.base.name);
|
|
||||||
results.base.deleted = !!parseInt(results.base.deleted, 10);
|
results.base.deleted = !!parseInt(results.base.deleted, 10);
|
||||||
results.base.hidden = !!parseInt(results.base.hidden, 10);
|
results.base.hidden = !!parseInt(results.base.hidden, 10);
|
||||||
results.base.system = !!parseInt(results.base.system, 10);
|
results.base.system = !!parseInt(results.base.system, 10);
|
||||||
@@ -94,24 +87,6 @@
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
Groups.search = function(query, options, callback) {
|
|
||||||
if (query.length) {
|
|
||||||
db.getSetMembers('groups', function(err, groups) {
|
|
||||||
groups = groups.filter(function(groupName) {
|
|
||||||
return groupName.match(new RegExp(utils.escapeRegexChars(query), 'i'));
|
|
||||||
});
|
|
||||||
|
|
||||||
async.map(groups, function(groupName, next) {
|
|
||||||
Groups.get(groupName, options, next);
|
|
||||||
}, function(err, groups) {
|
|
||||||
callback(err, filterGroups(groups, options));
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
callback(null, []);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Groups.isMember = function(uid, groupName, callback) {
|
Groups.isMember = function(uid, groupName, callback) {
|
||||||
db.isSetMember('group:' + groupName + ':members', uid, callback);
|
db.isSetMember('group:' + groupName + ':members', uid, callback);
|
||||||
};
|
};
|
||||||
@@ -133,20 +108,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
Groups.exists = function(name, callback) {
|
Groups.exists = function(name, callback) {
|
||||||
name = utils.slugify(name);
|
db.isSetMember('groups', name, callback);
|
||||||
db.getSetMembers('groups', function(err, groupNames) {
|
|
||||||
if (err) {
|
|
||||||
return callback(err);
|
|
||||||
}
|
|
||||||
|
|
||||||
var matches = groupNames.map(function(groupName) {
|
|
||||||
return utils.slugify(groupName);
|
|
||||||
}).filter(function(groupName) {
|
|
||||||
return groupName === name;
|
|
||||||
});
|
|
||||||
|
|
||||||
callback(null, matches.length > 0 ? true : false);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Groups.create = function(name, description, callback) {
|
Groups.create = function(name, description, callback) {
|
||||||
|
|||||||
Reference in New Issue
Block a user