From 06238f689415e216cf131e9e295fae8c4e9566a2 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Tue, 27 Jan 2015 11:12:14 -0500 Subject: [PATCH] partial fix to #2655 --- src/upgrade.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/upgrade.js b/src/upgrade.js index 506639c463..d433c9c06f 100644 --- a/src/upgrade.js +++ b/src/upgrade.js @@ -688,11 +688,22 @@ Upgrade.upgrade = function(callback) { updatesMade = true; winston.info('[2015/01/19] Generating group slugs'); - Groups.list({}, function(err, groups) { + async.waterfall([ + async.apply(db.getSetMembers, 'groups'), + function(groups, next) { + async.filter(groups, function(groupName, next) { + db.getObjectField('group:' + groupName, 'hidden', function(err, hidden) { + next((err || parseInt(hidden, 10)) ? false : true); + }); + }, function(groups) { + next(null, groups); + }); + } + ], function(err, groups) { var tasks = []; - groups.forEach(function(groupObj) { - tasks.push(async.apply(db.setObjectField, 'group:' + groupObj.name, 'slug', Utils.slugify(groupObj.name))); - tasks.push(async.apply(db.setObjectField, 'groupslug:groupname', Utils.slugify(groupObj.name), groupObj.name)); + groups.forEach(function(groupName) { + tasks.push(async.apply(db.setObjectField, 'group:' + groupName, 'slug', Utils.slugify(groupName))); + tasks.push(async.apply(db.setObjectField, 'groupslug:groupname', Utils.slugify(groupName), groupName)); }); // Administrator group