diff --git a/web/src/app/admin/configuration/llm/CustomLLMProviderUpdateForm.tsx b/web/src/app/admin/configuration/llm/CustomLLMProviderUpdateForm.tsx index 5252e6aed..72fe281d2 100644 --- a/web/src/app/admin/configuration/llm/CustomLLMProviderUpdateForm.tsx +++ b/web/src/app/admin/configuration/llm/CustomLLMProviderUpdateForm.tsx @@ -51,11 +51,6 @@ export function CustomLLMProviderUpdateForm({ }) { const { mutate } = useSWRConfig(); - const isPaidEnterpriseFeaturesEnabled = usePaidEnterpriseFeaturesEnabled(); - - // EE only - const { data: userGroups, isLoading: userGroupsIsLoading } = useUserGroups(); - const [isTesting, setIsTesting] = useState(false); const [testError, setTestError] = useState(""); diff --git a/web/src/app/admin/connectors/[connector]/AddConnectorPage.tsx b/web/src/app/admin/connectors/[connector]/AddConnectorPage.tsx index 614ae6c92..1beb19977 100644 --- a/web/src/app/admin/connectors/[connector]/AddConnectorPage.tsx +++ b/web/src/app/admin/connectors/[connector]/AddConnectorPage.tsx @@ -247,7 +247,6 @@ export default function AddConnector({ indexingStart, refreshFreq, auto_sync_options, - is_public, ...connector_specific_config } = values; diff --git a/web/src/components/IsPublicGroupSelector.tsx b/web/src/components/IsPublicGroupSelector.tsx index 6c7aaa170..37a9d47b3 100644 --- a/web/src/components/IsPublicGroupSelector.tsx +++ b/web/src/components/IsPublicGroupSelector.tsx @@ -3,7 +3,7 @@ import React, { useState, useEffect } from "react"; import { FormikProps, FieldArray, ArrayHelpers, ErrorMessage } from "formik"; import { Text, Divider } from "@tremor/react"; import { FiUsers } from "react-icons/fi"; -import { UserGroup, User, UserRole } from "@/lib/types"; +import { UserGroup, UserRole } from "@/lib/types"; import { useUserGroups } from "@/lib/hooks"; import { BooleanFormField } from "@/components/admin/connectors/Field"; import { useUser } from "./user/UserProvider"; diff --git a/web/src/components/admin/connectors/AccessTypeForm.tsx b/web/src/components/admin/connectors/AccessTypeForm.tsx index f3a7eef11..22a6a0df3 100644 --- a/web/src/components/admin/connectors/AccessTypeForm.tsx +++ b/web/src/components/admin/connectors/AccessTypeForm.tsx @@ -9,6 +9,9 @@ import { Text, Title } from "@tremor/react"; import { useUser } from "@/components/user/UserProvider"; import { useField } from "formik"; import { AutoSyncOptions } from "./AutoSyncOptions"; +import { useContext } from "react"; +import { SettingsContext } from "@/components/settings/SettingsProvider"; +import { usePaidEnterpriseFeaturesEnabled } from "@/components/settings/usePaidEnterpriseFeaturesEnabled"; function isValidAutoSyncSource( value: ConfigurableSources @@ -24,6 +27,8 @@ export function AccessTypeForm({ const [access_type, meta, access_type_helpers] = useField("access_type"); + const isPaidEnterpriseEnabled = usePaidEnterpriseFeaturesEnabled(); + const settings = useContext(SettingsContext); const isAutoSyncSupported = isValidAutoSyncSource(connector); const { isLoadingUser, isAdmin } = useUser(); @@ -55,34 +60,42 @@ export function AccessTypeForm({ } return ( -
-
- -
-

- Control who has access to the documents indexed by this connector. -

- - {isAdmin && ( + <> + {isPaidEnterpriseEnabled && ( <> - - access_type_helpers.setValue(selected as AccessType) - } - includeDefault={false} - /> - - {access_type.value === "sync" && isAutoSyncSupported && ( -
- +
+
+
- )} +

+ Control who has access to the documents indexed by this connector. +

+ + {isAdmin && ( + <> + + access_type_helpers.setValue(selected as AccessType) + } + includeDefault={false} + /> + + {access_type.value === "sync" && isAutoSyncSupported && ( +
+ +
+ )} + + )} +
)} -
+ ); } diff --git a/web/src/components/admin/connectors/AccessTypeGroupSelector.tsx b/web/src/components/admin/connectors/AccessTypeGroupSelector.tsx index 4a165515c..830ca5b50 100644 --- a/web/src/components/admin/connectors/AccessTypeGroupSelector.tsx +++ b/web/src/components/admin/connectors/AccessTypeGroupSelector.tsx @@ -10,6 +10,12 @@ import { useUser } from "@/components/user/UserProvider"; // This should be included for all forms that require groups / public access // to be set, and access to this / permissioning should be handled within this component itself. + +export type AccessTypeGroupSelectorFormType = { + access_type: AccessType; + groups: number[]; +}; + export function AccessTypeGroupSelector({}: {}) { const { data: userGroups, isLoading: userGroupsIsLoading } = useUserGroups(); const { isAdmin, user, isLoadingUser, isCurator } = useUser(); diff --git a/web/src/lib/connectors/connectors.ts b/web/src/lib/connectors/connectors.ts index 2a85990a5..dc11611a9 100644 --- a/web/src/lib/connectors/connectors.ts +++ b/web/src/lib/connectors/connectors.ts @@ -1,6 +1,7 @@ import * as Yup from "yup"; import { IsPublicGroupSelectorFormType } from "@/components/IsPublicGroupSelector"; import { ConfigurableSources, ValidInputTypes, ValidSources } from "../types"; +import { AccessTypeGroupSelectorFormType } from "@/components/admin/connectors/AccessTypeGroupSelector"; export type InputType = | "list" @@ -845,13 +846,13 @@ For example, specifying .*-support.* as a "channel" will cause the connector to }; export function createConnectorInitialValues( connector: ConfigurableSources -): Record & IsPublicGroupSelectorFormType { +): Record & AccessTypeGroupSelectorFormType { const configuration = connectorConfigs[connector]; return { name: "", groups: [], - is_public: true, + access_type: "public", ...configuration.values.reduce( (acc, field) => { if (field.type === "select") { @@ -876,6 +877,7 @@ export function createConnectorValidationSchema( const configuration = connectorConfigs[connector]; return Yup.object().shape({ + access_type: Yup.string().required("Access Type is required"), name: Yup.string().required("Connector Name is required"), ...configuration.values.reduce( (acc, field) => {