diff --git a/packages/e2e-tests/tests/admin/applications.spec.js b/packages/e2e-tests/tests/admin/applications.spec.js index d66d5917..6704ac24 100644 --- a/packages/e2e-tests/tests/admin/applications.spec.js +++ b/packages/e2e-tests/tests/admin/applications.spec.js @@ -402,4 +402,21 @@ test.describe('Admin Applications', () => { await expect(newConnectionOption).toHaveCount(0); await expect(newOAuthConnectionOption).toHaveCount(0); }); + + test('only disable option should be visible for non-OAuth integrations', async ({ + adminApplicationsPage, + adminApplicationSettingsPage, + adminApplicationOAuthClientsPage, + page, + }) => { + await adminApplicationsPage.openApplication('RSS'); + await expect(page.url()).toContain('/admin-settings/apps/rss/settings'); + + await expect( + adminApplicationSettingsPage.useOnlyPredefinedAuthClients + ).toHaveCount(0); + await expect(adminApplicationOAuthClientsPage.authClientsTab).toHaveCount( + 0 + ); + }); }); diff --git a/packages/web/src/components/AdminApplicationSettings/index.jsx b/packages/web/src/components/AdminApplicationSettings/index.jsx index 99b46a74..9f20281d 100644 --- a/packages/web/src/components/AdminApplicationSettings/index.jsx +++ b/packages/web/src/components/AdminApplicationSettings/index.jsx @@ -12,18 +12,22 @@ import { Switch } from './style'; import useEnqueueSnackbar from 'hooks/useEnqueueSnackbar'; import useAdminCreateAppConfig from 'hooks/useAdminCreateAppConfig'; import useAdminUpdateAppConfig from 'hooks/useAdminUpdateAppConfig'; +import useApp from 'hooks/useApp'; -function AdminApplicationSettings(props) { +function AdminApplicationSettings({ appKey }) { const formatMessage = useFormatMessage(); const enqueueSnackbar = useEnqueueSnackbar(); - const { data: appConfig, isLoading: loading } = useAppConfig(props.appKey); + const { data: appData, loading: appLoading } = useApp(appKey); + const app = appData?.data || {}; + + const { data: appConfig, isLoading: loading } = useAppConfig(appKey); const { mutateAsync: createAppConfig, isPending: isCreateAppConfigPending } = - useAdminCreateAppConfig(props.appKey); + useAdminCreateAppConfig(appKey); const { mutateAsync: updateAppConfig, isPending: isUpdateAppConfigPending } = - useAdminUpdateAppConfig(props.appKey); + useAdminUpdateAppConfig(appKey); const handleSubmit = async (values) => { try { @@ -46,11 +50,13 @@ function AdminApplicationSettings(props) { const defaultValues = useMemo( () => ({ - useOnlyPredefinedAuthClients: - appConfig?.data?.useOnlyPredefinedAuthClients || false, + ...(app.supportsOauthClients && { + useOnlyPredefinedAuthClients: + appConfig?.data?.useOnlyPredefinedAuthClients || false, + }), disabled: appConfig?.data?.disabled || false, }), - [appConfig?.data], + [appConfig?.data, app.supportsOauthClients], ); return ( @@ -60,17 +66,21 @@ function AdminApplicationSettings(props) { render={({ formState: { isDirty } }) => ( - + {app.supportsOauthClients && ( + <> + - + + + )} {formatMessage('adminAppsSettings.save')}