Skip to content

Commit

Permalink
[backend/frontend] Enhance opinions display, ensure permissions are c…
Browse files Browse the repository at this point in the history
…orrect (#8227, #8485, #8842)
  • Loading branch information
SamuelHassine committed Nov 2, 2024
1 parent 93b691b commit 589ace3
Show file tree
Hide file tree
Showing 20 changed files with 288 additions and 106 deletions.
2 changes: 2 additions & 0 deletions opencti-platform/opencti-front/lang/front/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -780,6 +780,7 @@
"Do you want to delete this notifier?": "Möchten Sie diesen Melder löschen?",
"Do you want to delete this observable?": "Möchten Sie diesen Beobachtungswert löschen?",
"Do you want to delete this observed data?": "Möchten Sie diese beobachteten Daten löschen?",
"Do you want to delete this opinion?": "Möchten Sie diese Stellungnahme löschen?",
"Do you want to delete this opinions?": "Möchten Sie diese Meinung löschen?",
"Do you want to delete this organization?": "Möchten Sie diese Organisation löschen?",
"Do you want to delete this playbook?": "Möchten Sie dieses Spielbuch löschen?",
Expand Down Expand Up @@ -1577,6 +1578,7 @@
"List": "Liste",
"List (distribution)": "Liste (Verteilung)",
"List of entities": "Liste der Entitäten",
"List of opinions": "Liste der Stellungnahmen",
"List separator": "Listentrennzeichen",
"List settings": "Listeneinstellungen",
"Listen queue": "Warteschlange abhören",
Expand Down
2 changes: 2 additions & 0 deletions opencti-platform/opencti-front/lang/front/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -780,6 +780,7 @@
"Do you want to delete this notifier?": "Do you want to delete this notifier?",
"Do you want to delete this observable?": "Do you want to delete this observable?",
"Do you want to delete this observed data?": "Do you want to delete this observed data?",
"Do you want to delete this opinion?": "Do you want to delete this opinion?",
"Do you want to delete this opinions?": "Do you want to delete this opinions?",
"Do you want to delete this organization?": "Do you want to delete this organization?",
"Do you want to delete this playbook?": "Do you want to delete this playbook?",
Expand Down Expand Up @@ -1577,6 +1578,7 @@
"List": "List",
"List (distribution)": "List (distribution)",
"List of entities": "List of entities",
"List of opinions": "List of opinions",
"List separator": "List separator",
"List settings": "List settings",
"Listen queue": "Listen queue",
Expand Down
2 changes: 2 additions & 0 deletions opencti-platform/opencti-front/lang/front/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -780,6 +780,7 @@
"Do you want to delete this notifier?": "¿Desea eliminar este notificador?",
"Do you want to delete this observable?": "¿Quieres borrar este observable?",
"Do you want to delete this observed data?": "¿Quieres borrar este conjunto de datos observados?",
"Do you want to delete this opinion?": "¿Quieres borrar esta opinión?",
"Do you want to delete this opinions?": "¿Quieres borrar esta opinión?",
"Do you want to delete this organization?": "¿Quieres borrar esta organización?",
"Do you want to delete this playbook?": "¿Quiere borrar este libro de jugadas?",
Expand Down Expand Up @@ -1577,6 +1578,7 @@
"List": "Lista",
"List (distribution)": "Lista (distribución)",
"List of entities": "Lista de entidades",
"List of opinions": "Lista de opiniones",
"List separator": "Separador de lista",
"List settings": "Configuración de la lista",
"Listen queue": "Cola de escucha",
Expand Down
2 changes: 2 additions & 0 deletions opencti-platform/opencti-front/lang/front/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -780,6 +780,7 @@
"Do you want to delete this notifier?": "Voulez-vous supprimer ce notificateur ?",
"Do you want to delete this observable?": "Souhaitez-vous supprimer cet observable ?",
"Do you want to delete this observed data?": "Souhaitez-vous supprimer cette données observée ?",
"Do you want to delete this opinion?": "Souhaitez-vous supprimer cet avis ?",
"Do you want to delete this opinions?": "Voulez-vous supprimer cette opinion ?",
"Do you want to delete this organization?": "Souhaitez-vous supprimer cette organisation ?",
"Do you want to delete this playbook?": "Voulez-vous supprimer ce playbook ?",
Expand Down Expand Up @@ -1577,6 +1578,7 @@
"List": "Liste",
"List (distribution)": "Liste (distribution)",
"List of entities": "Liste d'entités",
"List of opinions": "Liste des avis",
"List separator": "Séparateur de liste",
"List settings": "Paramètres de liste",
"Listen queue": "File d'attente d'écoute",
Expand Down
2 changes: 2 additions & 0 deletions opencti-platform/opencti-front/lang/front/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -780,6 +780,7 @@
"Do you want to delete this notifier?": "このノーティファイアを削除しますか?",
"Do you want to delete this observable?": "この観測結果を削除しますか?",
"Do you want to delete this observed data?": "この観測データを削除しますか?",
"Do you want to delete this opinion?": "この意見を削除しますか?",
"Do you want to delete this opinions?": "この意見を削除しますか?",
"Do you want to delete this organization?": "この組織を削除しますか?",
"Do you want to delete this playbook?": "このプレイブックを削除しますか?",
Expand Down Expand Up @@ -1577,6 +1578,7 @@
"List": "リスト",
"List (distribution)": "リスト(配布)",
"List of entities": "エンティティ一覧",
"List of opinions": "意見一覧",
"List separator": "リストのセパレータ",
"List settings": "リスト設定",
"Listen queue": "キューを聞く",
Expand Down
2 changes: 2 additions & 0 deletions opencti-platform/opencti-front/lang/front/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -780,6 +780,7 @@
"Do you want to delete this notifier?": "이 알림을 삭제하시겠습니까?",
"Do you want to delete this observable?": "이 관찰 가능 항목을 삭제하시겠습니까?",
"Do you want to delete this observed data?": "이 관찰된 데이터를 삭제하시겠습니까?",
"Do you want to delete this opinion?": "이 의견을 삭제하시겠습니까?",
"Do you want to delete this opinions?": "이 의견을 삭제하시겠습니까?",
"Do you want to delete this organization?": "이 조직을 삭제하시겠습니까?",
"Do you want to delete this playbook?": "이 플레이북을 삭제하시겠습니까?",
Expand Down Expand Up @@ -1577,6 +1578,7 @@
"List": "목록",
"List (distribution)": "목록 (분포)",
"List of entities": "엔터티 목록",
"List of opinions": "의견 목록",
"List separator": "목록 구분 기호",
"List settings": "목록 설정",
"Listen queue": "대기열 듣기",
Expand Down
2 changes: 2 additions & 0 deletions opencti-platform/opencti-front/lang/front/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -780,6 +780,7 @@
"Do you want to delete this notifier?": "您想删除此通知器吗?",
"Do you want to delete this observable?": "是否要删除此可观测数据?",
"Do you want to delete this observed data?": "是否要删除此观测数据?",
"Do you want to delete this opinion?": "您想删除此意见吗?",
"Do you want to delete this opinions?": "您想删除该意见吗?",
"Do you want to delete this organization?": "是否要删除此组织?",
"Do you want to delete this playbook?": "您要删除此剧本吗?",
Expand Down Expand Up @@ -1577,6 +1578,7 @@
"List": "列表",
"List (distribution)": "列表(分布)",
"List of entities": "实体列表",
"List of opinions": "意见列表",
"List separator": "列表分隔符",
"List settings": "列表设置",
"Listen queue": "监听队列",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ const WidgetRadar = ({
const labels = buildWidgetLabelsOption(data, groupBy);
return (
<Chart
options={radarChartOptions(theme, labels, simpleNumberFormat, [], true, false) as ApexOptions}
options={radarChartOptions(theme, labels, simpleNumberFormat, [], true) as ApexOptions}
series={chartData}
type="radar"
width="100%"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,6 @@ class AddOpinionsLinesContainer extends Component {
return (
<ListItem
key={opinion.id}
classes={{ root: classes.menuItem }}
divider={true}
button={true}
onClick={this.toggleOpinion.bind(this, opinion)}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ const OpinionComponent = ({ opinion, enableReferences }) => {
<OpinionDetails opinion={opinion} />
</Grid>
<Grid item xs={6}>
<StixDomainObjectOverview stixDomainObject={opinion} />
<StixDomainObjectOverview stixDomainObject={opinion} displayOpinions={false} />
</Grid>
<Grid item xs={12}>
<ContainerStixObjectsOrStixRelationships
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,18 @@ import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import Slide from '@mui/material/Slide';
import MoreVert from '@mui/icons-material/MoreVert';
import { graphql } from 'react-relay';
import ToggleButton from '@mui/material/ToggleButton';
import IconButton from '@mui/material/IconButton';
import { useFormatter } from '../../../../components/i18n';
import { QueryRenderer } from '../../../../relay/environment';
import { opinionEditionQuery } from './OpinionEdition';
import { CollaborativeSecurity } from '../../../../utils/Security';
import { KNOWLEDGE_KNUPDATE_KNDELETE } from '../../../../utils/hooks/useGranted';
import OpinionEditionContainer from './OpinionEditionContainer';
import useApiMutation from '../../../../utils/hooks/useApiMutation';

const Transition = React.forwardRef((props, ref) => (
<Slide direction="up" ref={ref} {...props} />
));
Transition.displayName = 'TransitionSlide';
import Transition from '../../../../components/Transition';

const OpinionPopoverDeletionMutation = graphql`
mutation OpinionPopoverDeletionMutation($id: ID!) {
Expand All @@ -32,7 +28,7 @@ const OpinionPopoverDeletionMutation = graphql`
}
`;

const OpinionPopover = (data) => {
const OpinionPopover = ({ opinion, variant = 'overview' }) => {
const navigate = useNavigate();
const { t_i18n } = useFormatter();
const [anchorEl, setAnchorEl] = useState(null);
Expand All @@ -50,11 +46,13 @@ const OpinionPopover = (data) => {
const submitDelete = () => {
setDeleting(true);
commit({
variables: { id: data.id },
variables: { id: opinion.id },
onCompleted: () => {
setDeleting(false);
handleClose();
navigate('/dashboard/analyses/opinions');
if (variant !== 'inList') {
navigate('/dashboard/analyses/opinions');
}
},
});
};
Expand All @@ -65,17 +63,29 @@ const OpinionPopover = (data) => {
const handleCloseEdit = () => setDisplayEdit(false);
return (
<>
<ToggleButton
value="popover"
size="small"
onClick={handleOpen}
>
<MoreVert fontSize="small" color="primary" />
</ToggleButton>
{variant === 'inList' ? (
<IconButton
onClick={handleOpen}
aria-haspopup="true"
size="large"
style={{ marginTop: 3 }}
color="primary"
>
<MoreVert />
</IconButton>
) : (
<ToggleButton
value="popover"
size="small"
onClick={handleOpen}
>
<MoreVert fontSize="small" color="primary" />
</ToggleButton>
)}
<Menu anchorEl={anchorEl} open={Boolean(anchorEl)} onClose={handleClose}>
<MenuItem onClick={handleOpenEdit}>{t_i18n('Update')}</MenuItem>
{variant !== 'inList' && <MenuItem onClick={handleOpenEdit}>{t_i18n('Update')}</MenuItem>}
<CollaborativeSecurity
data={data.opinion}
data={opinion}
needs={[KNOWLEDGE_KNUPDATE_KNDELETE]}
>
<MenuItem onClick={handleOpenDelete}>{t_i18n('Delete')}</MenuItem>
Expand All @@ -89,7 +99,7 @@ const OpinionPopover = (data) => {
>
<DialogContent>
<DialogContentText>
{t_i18n('Do you want to delete this opinions?')}
{t_i18n('Do you want to delete this opinion?')}
</DialogContentText>
</DialogContent>
<DialogActions>
Expand All @@ -101,22 +111,24 @@ const OpinionPopover = (data) => {
</Button>
</DialogActions>
</Dialog>
<QueryRenderer
query={opinionEditionQuery}
variables={{ id: data.id }}
render={({ props }) => {
if (props) {
return (
<OpinionEditionContainer
opinion={props.opinion}
handleClose={handleCloseEdit}
open={displayEdit}
/>
);
}
return <div />;
}}
/>
{variant !== 'inList' && (
<QueryRenderer
query={opinionEditionQuery}
variables={{ id: opinion.id }}
render={({ props }) => {
if (props) {
return (
<OpinionEditionContainer
opinion={props.opinion}
handleClose={handleCloseEdit}
open={displayEdit}
/>
);
}
return <div />;
}}
/>
)}
</>
);
};
Expand Down
Loading

0 comments on commit 589ace3

Please sign in to comment.