feat(forums): forum Moderators manage by oper/admin

This commit is contained in:
OldHawk
2017-07-04 16:07:30 +08:00
parent 672cf10a15
commit f0b101dd91
10 changed files with 232 additions and 3 deletions

View File

@@ -74,6 +74,65 @@ exports.update = function (req, res) {
});
};
/**
* addModerator
* @param req
* @param res
*/
exports.addModerator = function (req, res) {
var forum = req.forum;
var mu = req.nameuser;
var om = [];
forum.moderators.forEach(function (m) {
om.push(m._id.toString());
});
if (om.indexOf(mu._id.toString()) >= 0) {
return res.status(422).send({
message: 'username "' + mu.username + '" already exist!'
});
} else {
forum.moderators.push(mu);
forum.save(function (err) {
if (err) {
return res.status(422).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json(forum);
}
});
}
};
exports.removeModerator = function (req, res) {
var forum = req.forum;
var mu = req.nameuser;
var om = [];
forum.moderators.forEach(function (m) {
om.push(m._id.toString());
});
if (om.indexOf(mu._id.toString()) < 0) {
return res.status(422).send({
message: 'username "' + mu.username + '" not exist!'
});
} else {
forum.moderators.splice(om.indexOf(mu._id.toString()), 1);
forum.save(function (err) {
if (err) {
return res.status(422).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json(forum);
}
});
}
};
/**
* delete forum
* @param req
@@ -119,3 +178,24 @@ exports.forumByID = function (req, res, next, id) {
});
};
/**
* Invitation middleware
*/
exports.userByUsername = function (req, res, next, uname) {
User.findOne({
username: uname
})
.select('username displayName profileImageURL uploaded downloaded')
.exec(function (err, user) {
if (err) {
return next(err);
} else if (!user) {
return res.status(404).send({
message: 'No user with that username has been found'
});
}
req.nameuser = user;
next();
});
};