group titles

This commit is contained in:
barisusakli
2014-06-12 18:53:58 -04:00
parent e8b89513d4
commit 3b1e373e7b
4 changed files with 52 additions and 13 deletions

View File

@@ -221,21 +221,16 @@
};
Groups.update = function(groupName, values, callback) {
callback = callback || function() {};
db.exists('group:' + groupName, function (err, exists) {
if (!err && exists) {
// If the group was renamed, check for dupes
if (!values.name) {
db.setObject('group:' + groupName, values, callback);
} else {
if (callback) {
callback(new Error('[[error:group-name-change-not-allowed]]'));
}
}
} else {
if (callback) {
callback(new Error('[[error:no-group]]'));
}
if (err || !exists) {
return callback(err || new Error('[[error:no-group]]'));
}
db.setObject('group:' + groupName, {
userTitle: values.userTitle,
description: values.description
}, callback);
});
};
@@ -321,5 +316,39 @@
})
})
});
};
Groups.getUserGroups = function(uid, callback) {
var ignoredGroups = ['registered-users'];
db.getSetMembers('groups', function(err, groupNames) {
var groupKeys = groupNames.filter(function(groupName) {
return ignoredGroups.indexOf(groupName) === -1;
}).map(function(groupName) {
return 'group:' + groupName;
});
db.getObjectsFields(groupKeys, ['name', 'hidden', 'userTitle'], function(err, groupData) {
groupData = groupData.filter(function(group) {
return parseInt(group.hidden, 10) !== 1;
});
var groupSets = groupData.map(function(group) {
group.userTitle = group.userTitle || group.name;
return 'group:' + group.name + ':members';
})
db.isMemberOfSets(groupSets, uid, function(err, isMembers) {
for(var i=isMembers.length - 1; i>=0; --i) {
if (parseInt(isMembers[i], 10) !== 1) {
groupData.splice(i, 1);
}
}
callback(null, groupData);
});
});
});
}
}(module.exports));