diff --git a/packages/web/src/components/AppConnectionContextMenu/index.jsx b/packages/web/src/components/AppConnectionContextMenu/index.jsx
index a544d005..fb94e4b3 100644
--- a/packages/web/src/components/AppConnectionContextMenu/index.jsx
+++ b/packages/web/src/components/AppConnectionContextMenu/index.jsx
@@ -8,6 +8,7 @@ import * as URLS from 'config/urls';
import useFormatMessage from 'hooks/useFormatMessage';
import { ConnectionPropType } from 'propTypes/propTypes';
import { useQueryClient } from '@tanstack/react-query';
+import Can from 'components/Can';
function ContextMenu(props) {
const {
@@ -44,34 +45,57 @@ function ContextMenu(props) {
hideBackdrop={false}
anchorEl={anchorEl}
>
-
-
-
-
-
+
-
- {formatMessage('connection.delete')}
-
+
+ {(allowed) => (
+
+ {formatMessage('connection.testConnection')}
+
+ )}
+
+
+
+ {(allowed) => (
+
+ {formatMessage('connection.reconnect')}
+
+ )}
+
+
+
+ {(allowed) => (
+
+ {formatMessage('connection.delete')}
+
+ )}
+
);
}
diff --git a/packages/web/src/components/AppConnections/index.jsx b/packages/web/src/components/AppConnections/index.jsx
index da1e1280..32a71346 100644
--- a/packages/web/src/components/AppConnections/index.jsx
+++ b/packages/web/src/components/AppConnections/index.jsx
@@ -3,6 +3,7 @@ import PropTypes from 'prop-types';
import AppConnectionRow from 'components/AppConnectionRow';
import NoResultFound from 'components/NoResultFound';
+import Can from 'components/Can';
import useFormatMessage from 'hooks/useFormatMessage';
import * as URLS from 'config/urls';
import useAppConnections from 'hooks/useAppConnections';
@@ -16,11 +17,15 @@ function AppConnections(props) {
if (!hasConnections) {
return (
-
+
+ {(allowed) => (
+
+ )}
+
);
}
diff --git a/packages/web/src/components/AppFlows/index.jsx b/packages/web/src/components/AppFlows/index.jsx
index ed984d2d..f715c7c7 100644
--- a/packages/web/src/components/AppFlows/index.jsx
+++ b/packages/web/src/components/AppFlows/index.jsx
@@ -5,6 +5,7 @@ import PaginationItem from '@mui/material/PaginationItem';
import * as URLS from 'config/urls';
import AppFlowRow from 'components/FlowRow';
+import Can from 'components/Can';
import NoResultFound from 'components/NoResultFound';
import useFormatMessage from 'hooks/useFormatMessage';
import useConnectionFlows from 'hooks/useConnectionFlows';
@@ -36,11 +37,20 @@ function AppFlows(props) {
if (!hasFlows) {
return (
-
+
+ {(allowed) => (
+
+ )}
+
);
}
diff --git a/packages/web/src/pages/Application/index.jsx b/packages/web/src/pages/Application/index.jsx
index e3084fab..e8c4ec5e 100644
--- a/packages/web/src/pages/Application/index.jsx
+++ b/packages/web/src/pages/Application/index.jsx
@@ -30,6 +30,7 @@ import AppIcon from 'components/AppIcon';
import Container from 'components/Container';
import PageTitle from 'components/PageTitle';
import useApp from 'hooks/useApp';
+import Can from 'components/Can';
const ReconnectConnection = (props) => {
const { application, onClose } = props;
@@ -92,7 +93,7 @@ export default function Application() {
}
return options;
- }, [appKey, appConfig?.data, currentUserAbility]);
+ }, [appKey, appConfig?.data, currentUserAbility, formatMessage]);
if (loading) return null;
@@ -118,37 +119,46 @@ export default function Application() {
+ {(allowed) => (
+ }
+ disabled={!allowed}
+ >
+ {formatMessage('app.createFlow')}
+
)}
- fullWidth
- icon={}
- disabled={!currentUserAbility.can('create', 'Flow')}
- >
- {formatMessage('app.createFlow')}
-
+
}
/>
disabled)
- }
- options={connectionOptions}
- />
+
+ {(allowed) => (
+ disabled)
+ }
+ options={connectionOptions}
+ />
+ )}
+
}
/>
@@ -169,17 +179,20 @@ export default function Application() {
label={formatMessage('app.connections')}
to={URLS.APP_CONNECTIONS(appKey)}
value={URLS.APP_CONNECTIONS_PATTERN}
- disabled={!app.supportsConnections}
+ disabled={
+ !currentUserAbility.can('read', 'Connection') ||
+ !app.supportsConnections
+ }
component={Link}
data-test="connections-tab"
/>
-
@@ -187,14 +200,20 @@ export default function Application() {
}
+ element={
+
+
+
+ }
/>
-
}
+ element={
+
+
+
+ }
/>
-
+
+
+
}
/>
+
+
+
}
/>
diff --git a/packages/web/src/pages/Applications/index.jsx b/packages/web/src/pages/Applications/index.jsx
index ed5940bb..399e64c4 100644
--- a/packages/web/src/pages/Applications/index.jsx
+++ b/packages/web/src/pages/Applications/index.jsx
@@ -84,10 +84,14 @@ export default function Applications() {
)}
{!isLoading && !hasApps && (
-
+
+ {(allowed) => (
+
+ )}
+
)}
{!isLoading &&