diff --git a/client/src/components/comments/Comments/Item.jsx b/client/src/components/comments/Comments/Item.jsx index 5ca05f35..031ba710 100755 --- a/client/src/components/comments/Comments/Item.jsx +++ b/client/src/components/comments/Comments/Item.jsx @@ -60,15 +60,14 @@ const Item = React.memo(({ id }) => { isEditor = boardMembership.role === BoardMembershipRoles.EDITOR; } + const canEditOrDeleteAsMember = + isMember && + comment.userId === boardMembership.userId && + (isEditor || boardMembership.canComment); + return { - canEdit: - isMember && - comment.userId === boardMembership.userId && - (isEditor || boardMembership.canComment), - canDelete: - isManager || - isEditor || - (isMember && comment.userId === boardMembership.userId && boardMembership.canComment), + canEdit: canEditOrDeleteAsMember, + canDelete: isManager || canEditOrDeleteAsMember, }; }, shallowEqual); diff --git a/server/api/controllers/comments/delete.js b/server/api/controllers/comments/delete.js index c4a4abbb..c591abc7 100755 --- a/server/api/controllers/comments/delete.js +++ b/server/api/controllers/comments/delete.js @@ -44,6 +44,10 @@ module.exports = { const isProjectManager = await sails.helpers.users.isProjectManager(currentUser.id, project.id); if (!isProjectManager) { + if (comment.userId !== currentUser.id) { + throw Errors.NOT_ENOUGH_RIGHTS; + } + const boardMembership = await BoardMembership.qm.getOneByBoardIdAndUserId( board.id, currentUser.id, @@ -54,10 +58,6 @@ module.exports = { } if (boardMembership.role !== BoardMembership.Roles.EDITOR) { - if (comment.userId !== currentUser.id) { - throw Errors.NOT_ENOUGH_RIGHTS; - } - if (!boardMembership.canComment) { throw Errors.NOT_ENOUGH_RIGHTS; }