diff --git a/services/web/frontend/js/features/review-panel-new/components/review-panel-comment-options.tsx b/services/web/frontend/js/features/review-panel-new/components/review-panel-comment-options.tsx
index d0f4fb8f66..eacb1fa134 100644
--- a/services/web/frontend/js/features/review-panel-new/components/review-panel-comment-options.tsx
+++ b/services/web/frontend/js/features/review-panel-new/components/review-panel-comment-options.tsx
@@ -28,10 +28,15 @@ const ReviewPanelCommentOptions: FC<{
onEdit: () => void
onDelete: () => void
id: string
- belongsToCurrentUser: boolean
-}> = ({ onEdit, onDelete, id, belongsToCurrentUser }) => {
+ canEdit: boolean
+ canDelete: boolean
+}> = ({ onEdit, onDelete, id, canEdit, canDelete }) => {
const { t } = useTranslation()
+ if (!canEdit && !canDelete) {
+ return null
+ }
+
return (
- {belongsToCurrentUser && (
- {t('edit')}
+ {canEdit && {t('edit')}}
+ {canDelete && (
+ {t('delete')}
)}
- {t('delete')}
}
@@ -70,18 +75,20 @@ const ReviewPanelCommentOptions: FC<{
/>
- {belongsToCurrentUser && (
+ {canEdit && (
{t('edit')}
)}
-
-
- {t('delete')}
-
-
+ {canDelete && (
+
+
+ {t('delete')}
+
+
+ )}
}
diff --git a/services/web/frontend/js/features/review-panel-new/components/review-panel-message.tsx b/services/web/frontend/js/features/review-panel-new/components/review-panel-message.tsx
index 295633a492..34cb336be9 100644
--- a/services/web/frontend/js/features/review-panel-new/components/review-panel-message.tsx
+++ b/services/web/frontend/js/features/review-panel-new/components/review-panel-message.tsx
@@ -13,6 +13,7 @@ import { ExpandableContent } from './review-panel-expandable-content'
import ReviewPanelDeleteCommentModal from './review-panel-delete-comment-modal'
import { useUserContext } from '@/shared/context/user-context'
import ReviewPanelEntryUser from './review-panel-entry-user'
+import { usePermissionsContext } from '@/features/ide-react/context/permissions-context'
export const ReviewPanelMessage: FC<{
message: ReviewPanelCommentThreadMessage
@@ -36,6 +37,12 @@ export const ReviewPanelMessage: FC<{
const [deleting, setDeleting] = useState(false)
const [content, setContent] = useState(message.content)
const user = useUserContext()
+ const { write, trackedWrite } = usePermissionsContext()
+
+ const isCommentAuthor = user.id === message.user.id
+ const canEdit = isCommentAuthor
+ const canResolve = write || (trackedWrite && isCommentAuthor)
+ const canDelete = write || (trackedWrite && isCommentAuthor)
const handleEditOption = useCallback(() => setEditing(true), [])
const showDeleteModal = useCallback(() => setDeleting(true), [])
@@ -62,7 +69,7 @@ export const ReviewPanelMessage: FC<{
- {!editing && !isReply && !isThreadResolved && (
+ {!editing && !isReply && !isThreadResolved && canResolve && (