+
} severity="success" onClick={onAlertClick}>
+ {`${executor.executor_name} ${t('executor is an enterprise edition feature. You can start the set up but you will need a license key to execute your injects. We provide a 3 month trial to let you test the platform at full capacity.')} `}
+
{executor.executor_doc && (
{t('To install the agent please follow the ')}
diff --git a/openbas-front/src/admin/components/agents/ExecutorSelector.tsx b/openbas-front/src/admin/components/agents/ExecutorSelector.tsx
index 12ca968a1d..ad69cf1fff 100644
--- a/openbas-front/src/admin/components/agents/ExecutorSelector.tsx
+++ b/openbas-front/src/admin/components/agents/ExecutorSelector.tsx
@@ -5,6 +5,7 @@ import { makeStyles } from 'tss-react/mui';
import { useFormatter } from '../../../components/i18n';
import PlatformIcon from '../../../components/PlatformIcon';
import { type Executor } from '../../../utils/api-types';
+import EEChip from '../common/entreprise_edition/EEChip';
import ExecutorBanner from './ExecutorBanner';
const useStyles = makeStyles()(theme => ({
@@ -27,9 +28,10 @@ const useStyles = makeStyles()(theme => ({
interface ExecutorSelectorProps {
executor: Executor;
setSelectedExecutor: (executor: Executor) => void;
+ isEEExecutor?: boolean;
}
-const ExecutorSelector: React.FC = ({ executor, setSelectedExecutor }) => {
+const ExecutorSelector: React.FC = ({ executor, setSelectedExecutor, isEEExecutor = false }) => {
const theme = useTheme();
const { classes } = useStyles();
const { t } = useFormatter();
@@ -55,12 +57,13 @@ const ExecutorSelector: React.FC = ({ executor, setSelect
fontSize: 15,
padding: theme.spacing(2, 0, 1),
display: 'flex',
- alignItems: 'center',
justifyContent: 'center',
+ alignItems: 'center',
color: platforms.length === 0 ? theme.palette.text?.disabled : theme.palette.text?.primary,
}}
>
{`${t('Install')} ${executor.executor_name}`}
+ {isEEExecutor && }
= ({ agents }) => {
const { classes } = useStyles();
+ const theme = useTheme();
const bodyItemsStyles = useBodyItemsStyles();
const dispatch = useAppDispatch();
const { t, fldt } = useFormatter();
@@ -81,7 +84,9 @@ const AgentList: FunctionComponent = ({ agents }) => {
}}
/>
)}
- {executor?.executor_name ?? t('Unknown')}
+ {executor.executor_name ?? t('Unknown')}
+ {(executor.executor_type == 'openbas_tanium' || executor.executor_type == 'openbas_crowdstrike')
+ && }
>
);
},
diff --git a/openbas-front/src/admin/components/common/entreprise_edition/EEChip.tsx b/openbas-front/src/admin/components/common/entreprise_edition/EEChip.tsx
index fb864b683a..9e771256f1 100644
--- a/openbas-front/src/admin/components/common/entreprise_edition/EEChip.tsx
+++ b/openbas-front/src/admin/components/common/entreprise_edition/EEChip.tsx
@@ -1,4 +1,5 @@
import { Tooltip } from '@mui/material';
+import { type CSSProperties } from 'react';
import { makeStyles } from 'tss-react/mui';
import { useFormatter } from '../../../../components/i18n';
@@ -20,21 +21,25 @@ const useStyles = makeStyles<{ isClickable: boolean }>()((theme, { isClickable }
},
}));
-const EEChip = ({ clickable = false, featureDetectedInfo = '' }: {
+const EEChip = ({ clickable = false, featureDetectedInfo = null, style = {} }: {
clickable?: boolean;
- featureDetectedInfo?: string;
+ featureDetectedInfo?: string | null;
+ style?: CSSProperties;
}) => {
const { classes } = useStyles({ isClickable: clickable });
const { t } = useFormatter();
const { openDialog, setFeatureDetectedInfo } = useEnterpriseEdition();
const { isValidated: isEnterpriseEdition } = useEnterpriseEdition();
- setFeatureDetectedInfo(featureDetectedInfo);
+ if (featureDetectedInfo) {
+ setFeatureDetectedInfo(featureDetectedInfo);
+ }
return (
clickable && !isEnterpriseEdition && openDialog()}
+ style={style}
>
EE
diff --git a/openbas-front/src/admin/components/common/entreprise_edition/EnterpriseEditionAgreementDialog.tsx b/openbas-front/src/admin/components/common/entreprise_edition/EnterpriseEditionAgreementDialog.tsx
index 0f8440624c..db1194ad8d 100644
--- a/openbas-front/src/admin/components/common/entreprise_edition/EnterpriseEditionAgreementDialog.tsx
+++ b/openbas-front/src/admin/components/common/entreprise_edition/EnterpriseEditionAgreementDialog.tsx
@@ -32,24 +32,31 @@ const useStyles = makeStyles()(theme => ({
const EnterpriseEditionAgreementDialog = () => {
const { t } = useFormatter();
- const { open, closeDialog, featureDetectedInfo } = useEnterpriseEdition();
+ const { open, closeDialog, featureDetectedInfo, setFeatureDetectedInfo } = useEnterpriseEdition();
const { classes } = useStyles();
const dispatch = useAppDispatch();
const [enterpriseLicense, setEnterpriseLicense] = useState('');
+ const onCloseEnterpriseEditionDialog = () => {
+ closeDialog();
+ setFeatureDetectedInfo('');
+ };
+
const updateEnterpriseEdition = (data: SettingsEnterpriseEditionUpdateInput) => {
dispatch(updatePlatformEnterpriseEditionParameters(data));
- closeDialog();
+ onCloseEnterpriseEditionDialog();
};
+
const enableEnterpriseEdition = () => updateEnterpriseEdition({ platform_enterprise_license: enterpriseLicense });
+
return (