diff --git a/site/src/AppRouter.tsx b/site/src/AppRouter.tsx index 28a3ca23815e6..c0cb0642f8367 100644 --- a/site/src/AppRouter.tsx +++ b/site/src/AppRouter.tsx @@ -77,7 +77,10 @@ const GeneralSettingsPage = lazy( ), ) const SecuritySettingsPage = lazy( - () => import("./pages/DeploySettingsPage/SecuritySettingsPage"), + () => + import( + "./pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPage" + ), ) const AppearanceSettingsPage = lazy( () => diff --git a/site/src/pages/DeploySettingsPage/SecuritySettingsPage.tsx b/site/src/pages/DeploySettingsPage/SecuritySettingsPage.tsx deleted file mode 100644 index 3a14de7711c66..0000000000000 --- a/site/src/pages/DeploySettingsPage/SecuritySettingsPage.tsx +++ /dev/null @@ -1,104 +0,0 @@ -import { useActor } from "@xstate/react" -import { FeatureNames } from "api/types" -import { - Badges, - DisabledBadge, - EnabledBadge, - EnterpriseBadge, -} from "components/DeploySettingsLayout/Badges" -import { useDeploySettings } from "components/DeploySettingsLayout/DeploySettingsLayout" -import { Header } from "components/DeploySettingsLayout/Header" -import OptionsTable from "components/DeploySettingsLayout/OptionsTable" -import { Stack } from "components/Stack/Stack" -import React, { useContext } from "react" -import { Helmet } from "react-helmet-async" -import { pageTitle } from "util/page" -import { XServiceContext } from "xServices/StateContext" - -const SecuritySettingsPage: React.FC = () => { - const { deploymentConfig: deploymentConfig } = useDeploySettings() - const xServices = useContext(XServiceContext) - const [entitlementsState] = useActor(xServices.entitlementsXService) - - return ( - <> - - Codestin Search App - - -
-
- - -
- -
-
- - - {entitlementsState.context.entitlements.features[ - FeatureNames.AuditLog - ].enabled ? ( - - ) : ( - - )} - - -
- -
-
- - - {entitlementsState.context.entitlements.features[ - FeatureNames.BrowserOnly - ].enabled ? ( - - ) : ( - - )} - - -
- -
-
- - -
-
- - ) -} - -export default SecuritySettingsPage diff --git a/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx new file mode 100644 index 0000000000000..914928094fe64 --- /dev/null +++ b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx @@ -0,0 +1,37 @@ +import { useActor } from "@xstate/react" +import { FeatureNames } from "api/types" +import { useDeploySettings } from "components/DeploySettingsLayout/DeploySettingsLayout" +import React, { useContext } from "react" +import { Helmet } from "react-helmet-async" +import { pageTitle } from "util/page" +import { XServiceContext } from "xServices/StateContext" +import { SecuritySettingsPageView } from "./SecuritySettingsPageView" + +const SecuritySettingsPage: React.FC = () => { + const { deploymentConfig: deploymentConfig } = useDeploySettings() + const xServices = useContext(XServiceContext) + const [entitlementsState] = useActor(xServices.entitlementsXService) + + return ( + <> + + Codestin Search App + + + + + ) +} + +export default SecuritySettingsPage diff --git a/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.stories.tsx b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.stories.tsx new file mode 100644 index 0000000000000..9bb3c570d1ff1 --- /dev/null +++ b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.stories.tsx @@ -0,0 +1,59 @@ +import { ComponentMeta, Story } from "@storybook/react" +import { + SecuritySettingsPageView, + SecuritySettingsPageViewProps, +} from "./SecuritySettingsPageView" + +export default { + title: "pages/SecuritySettingsPageView", + component: SecuritySettingsPageView, + argTypes: { + deploymentConfig: { + defaultValue: { + ssh_keygen_algorithm: { + name: "key", + usage: "something", + value: "1234", + }, + secure_auth_cookie: { + name: "key", + usage: "something", + value: "1234", + }, + tls: { + enable: { + name: "yes or no", + usage: "something", + value: true, + }, + cert_file: { + name: "yes or no", + usage: "something", + value: ["something"], + }, + key_file: { + name: "yes or no", + usage: "something", + value: ["something"], + }, + min_version: { + name: "yes or no", + usage: "something", + value: "something", + }, + }, + }, + }, + featureAuditLogEnabled: { + defaultValue: true, + }, + featureBrowserOnlyEnabled: { + defaultValue: true, + }, + }, +} as ComponentMeta + +const Template: Story = (args) => ( + +) +export const Page = Template.bind({}) diff --git a/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx new file mode 100644 index 0000000000000..01a98389cb352 --- /dev/null +++ b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx @@ -0,0 +1,87 @@ +import { DeploymentConfig } from "api/typesGenerated" +import { + Badges, + DisabledBadge, + EnabledBadge, + EnterpriseBadge, +} from "components/DeploySettingsLayout/Badges" +import { Header } from "components/DeploySettingsLayout/Header" +import OptionsTable from "components/DeploySettingsLayout/OptionsTable" +import { Stack } from "components/Stack/Stack" + +export type SecuritySettingsPageViewProps = { + deploymentConfig: Pick< + DeploymentConfig, + "tls" | "ssh_keygen_algorithm" | "secure_auth_cookie" + > + featureAuditLogEnabled: boolean + featureBrowserOnlyEnabled: boolean +} +export const SecuritySettingsPageView = ({ + deploymentConfig, + featureAuditLogEnabled, + featureBrowserOnlyEnabled, +}: SecuritySettingsPageViewProps): JSX.Element => ( + <> + +
+
+ + +
+ +
+
+ + + {featureAuditLogEnabled ? : } + + +
+ +
+
+ + + {featureBrowserOnlyEnabled ? : } + + +
+ +
+
+ + +
+
+ +)