Fix for marking a comment as read.
This commit is contained in:
parent
3b181d027c
commit
3b75230654
1 changed files with 24 additions and 21 deletions
|
@ -1311,30 +1311,32 @@ impl Perform for EditComment {
|
||||||
|
|
||||||
let user_id = claims.id;
|
let user_id = claims.id;
|
||||||
|
|
||||||
// Verify its the creator or a mod, or an admin
|
|
||||||
let orig_comment = CommentView::read(&conn, self.edit_id, None)?;
|
|
||||||
let mut editors: Vec<i32> = vec![self.creator_id];
|
|
||||||
editors.append(
|
|
||||||
&mut CommunityModeratorView::for_community(&conn, orig_comment.community_id)
|
|
||||||
?
|
|
||||||
.into_iter()
|
|
||||||
.map(|m| m.user_id)
|
|
||||||
.collect()
|
|
||||||
);
|
|
||||||
editors.append(
|
|
||||||
&mut UserView::admins(&conn)
|
|
||||||
?
|
|
||||||
.into_iter()
|
|
||||||
.map(|a| a.id)
|
|
||||||
.collect()
|
|
||||||
);
|
|
||||||
|
|
||||||
if !editors.contains(&user_id) {
|
|
||||||
return Err(self.error("Not allowed to edit comment."))?
|
|
||||||
}
|
|
||||||
|
|
||||||
// You are allowed to mark the comment as read even if you're banned.
|
// You are allowed to mark the comment as read even if you're banned.
|
||||||
if self.read.is_none() {
|
if self.read.is_none() {
|
||||||
|
|
||||||
|
// Verify its the creator or a mod, or an admin
|
||||||
|
let orig_comment = CommentView::read(&conn, self.edit_id, None)?;
|
||||||
|
let mut editors: Vec<i32> = vec![self.creator_id];
|
||||||
|
editors.append(
|
||||||
|
&mut CommunityModeratorView::for_community(&conn, orig_comment.community_id)
|
||||||
|
?
|
||||||
|
.into_iter()
|
||||||
|
.map(|m| m.user_id)
|
||||||
|
.collect()
|
||||||
|
);
|
||||||
|
editors.append(
|
||||||
|
&mut UserView::admins(&conn)
|
||||||
|
?
|
||||||
|
.into_iter()
|
||||||
|
.map(|a| a.id)
|
||||||
|
.collect()
|
||||||
|
);
|
||||||
|
|
||||||
|
if !editors.contains(&user_id) {
|
||||||
|
return Err(self.error("Not allowed to edit comment."))?
|
||||||
|
}
|
||||||
|
|
||||||
// Check for a community ban
|
// Check for a community ban
|
||||||
if CommunityUserBanView::get(&conn, user_id, orig_comment.community_id).is_ok() {
|
if CommunityUserBanView::get(&conn, user_id, orig_comment.community_id).is_ok() {
|
||||||
return Err(self.error("You have been banned from this community"))?
|
return Err(self.error("You have been banned from this community"))?
|
||||||
|
@ -1344,6 +1346,7 @@ impl Perform for EditComment {
|
||||||
if UserView::read(&conn, user_id)?.banned {
|
if UserView::read(&conn, user_id)?.banned {
|
||||||
return Err(self.error("You have been banned from the site"))?
|
return Err(self.error("You have been banned from the site"))?
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let content_slurs_removed = remove_slurs(&self.content.to_owned());
|
let content_slurs_removed = remove_slurs(&self.content.to_owned());
|
||||||
|
|
Loading…
Reference in a new issue