fix(chat): #5864 API should return flagged messages in chat only to mods

This commit is contained in:
Saravanan Ganesh
2015-10-19 21:43:24 -07:00
parent 58801f5025
commit df7fd2e036
2 changed files with 9 additions and 1 deletions
+8
View File
@@ -149,6 +149,10 @@ api.get = function(req, res, next) {
// so that users with no party don't get a 404 on every access to the site
return res.json(group);
}
//Remove flagged messages if the user is not mod
if (!user.contributor.admin) {
group.chat = _.filter(group.chat, function(message) { return !message.flagCount || message.flagCount < 2; });
}
//Since we have a limit on how many members are populate to the group, we want to make sure the user is always in the group
var userInGroup = _.find(group.members, function(member){ return member._id == user._id; });
//If the group is private or the group is a party, then the user must be a member of the group based on access restrictions above
@@ -271,6 +275,10 @@ api.getChat = function(req, res, next) {
q.exec(function(err, group){
if (err) return next(err);
if (!group && gid!=='party') return res.json(404,{err: "Group not found or you don't have access."});
//Remove flagged messages if the user is not mod
if (!user.contributor.admin) {
group.chat = _.filter(group.chat, function(message) { return !message.flagCount || message.flagCount < 2; });
}
res.json(res.locals.group.chat);
gid = null;
});
@@ -1,7 +1,7 @@
mixin chatMessages(inbox)
ul.list-unstyled.tavern-chat
- var ngRepeat = inbox ? 'message in user.inbox.messages | toArray:true | orderBy:"sort":true' : 'message in group.chat track by message.id'
li.chat-message(ng-repeat=ngRepeat, ng-class=':: {highlight: isUserMentioned(user,message) || message.uuid=="system", "own-message": user._id == message.uuid}', ng-if="!message.flagCount || message.flagCount < 2 || user.contributor.admin")
li.chat-message(ng-repeat=ngRepeat, ng-class=':: {highlight: isUserMentioned(user,message) || message.uuid=="system", "own-message": user._id == message.uuid}')
span.pull-right.text-danger(ng-if="user.contributor.admin && message.flagCount > 0")
| {{message.flagCount > 1 ? "Message Hidden" : "1 flag"}}
.scrollable-message(ng-class='{"transparent": message.sent || message.flags[user._id] || (user.contributor.admin && message.flagCount > 1)}')