a huge frickin' number of changes for #2887. This is part of #2463

This commit is contained in:
Julian Lam
2015-03-25 15:42:15 -04:00
parent 815ea88fa5
commit 9b84a887d3
10 changed files with 299 additions and 129 deletions

View File

@@ -59,83 +59,53 @@ Categories.setPrivilege = function(socket, data, callback) {
return callback(new Error('[[error:invalid-data]]'));
}
groups[data.set ? 'join' : 'leave']('cid:' + data.cid + ':privileges:' + data.privilege, data.uid, callback);
groups[data.set ? 'join' : 'leave']('cid:' + data.cid + ':privileges:' + data.privilege, data.member, callback);
};
Categories.getPrivilegeSettings = function(socket, cid, callback) {
var privileges = ['find', 'read', 'topics:create', 'topics:reply', 'mods'];
async.reduce(privileges, [], function(members, privilege, next) {
groups.get('cid:' + cid + ':privileges:' + privilege, { expand: true }, function(err, groupObj) {
if (err || !groupObj) {
return next(null, members);
}
members = members.concat(groupObj.members);
next(null, members);
});
}, function(err, members) {
if (err) {
return callback(err);
}
// Remove duplicates
var present = [],
x = members.length,
uid;
while(x--) {
uid = parseInt(members[x].uid, 10);
if (present.indexOf(uid) !== -1) {
members.splice(x, 1);
} else {
present.push(uid);
}
}
callback(err, members);
});
privileges.categories.list(cid, callback);
};
Categories.setGroupPrivilege = function(socket, data, callback) {
if(!data) {
return callback(new Error('[[error:invalid-data]]'));
}
// Categories.setGroupPrivilege = function(socket, data, callback) {
// if(!data) {
// return callback(new Error('[[error:invalid-data]]'));
// }
groups[data.set ? 'join' : 'leave']('cid:' + data.cid + ':privileges:' + data.privilege, data.name, function (err) {
if (err) {
return callback(err);
}
// groups[data.set ? 'join' : 'leave']('cid:' + data.cid + ':privileges:' + data.privilege, data.name, function (err) {
// if (err) {
// return callback(err);
// }
groups.hide('cid:' + data.cid + ':privileges:' + data.privilege, callback);
});
};
// groups.hide('cid:' + data.cid + ':privileges:' + data.privilege, callback);
// });
// };
Categories.groupsList = function(socket, cid, callback) {
groups.list({
expand: false,
isAdmin: true,
showSystemGroups: true
}, function(err, data) {
if(err) {
return callback(err);
}
// Categories.groupsList = function(socket, cid, callback) {
// groups.list({
// expand: false,
// isAdmin: true,
// showSystemGroups: true
// }, function(err, data) {
// if(err) {
// return callback(err);
// }
// Remove privilege groups
data = data.filter(function(groupObj) {
return groupObj.name.indexOf(':privileges:') === -1;
});
// // Remove privilege groups
// data = data.filter(function(groupObj) {
// return groupObj.name.indexOf(':privileges:') === -1;
// });
async.map(data, function(groupObj, next) {
privileges.categories.groupPrivileges(cid, groupObj.name, function(err, privileges) {
if(err) {
return next(err);
}
// async.map(data, function(groupObj, next) {
// privileges.categories.groupPrivileges(cid, groupObj.name, function(err, privileges) {
// if(err) {
// return next(err);
// }
groupObj.privileges = privileges;
next(null, groupObj);
});
}, callback);
});
};
// groupObj.privileges = privileges;
// next(null, groupObj);
// });
// }, callback);
// });
// };
module.exports = Categories;