From ea25d9437bb2e55b323ebb3f7767df967a278b3e Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Fri, 6 Jan 2023 21:50:59 +0000 Subject: [PATCH 1/4] refactor: move securitysettings to dir --- site/src/AppRouter.tsx | 2 +- .../{ => SecuritySettingsPage}/SecuritySettingsPage.tsx | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename site/src/pages/DeploySettingsPage/{ => SecuritySettingsPage}/SecuritySettingsPage.tsx (100%) diff --git a/site/src/AppRouter.tsx b/site/src/AppRouter.tsx index 28a3ca23815e6..ba3d8790bf0de 100644 --- a/site/src/AppRouter.tsx +++ b/site/src/AppRouter.tsx @@ -77,7 +77,7 @@ 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/SecuritySettingsPage.tsx similarity index 100% rename from site/src/pages/DeploySettingsPage/SecuritySettingsPage.tsx rename to site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx From bffe1b36635948463ec2c71b225ef59a21b6bd1e Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Fri, 6 Jan 2023 22:00:51 +0000 Subject: [PATCH 2/4] refactor: split page view SecuritySettingsPage --- site/src/AppRouter.tsx | 5 +- .../SecuritySettingsPage.tsx | 93 +++---------------- .../SecuritySettingsPageView.tsx | 92 ++++++++++++++++++ 3 files changed, 109 insertions(+), 81 deletions(-) create mode 100644 site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx diff --git a/site/src/AppRouter.tsx b/site/src/AppRouter.tsx index ba3d8790bf0de..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/SecuritySettingsPage"), + () => + import( + "./pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPage" + ), ) const AppearanceSettingsPage = lazy( () => diff --git a/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx index 3a14de7711c66..914928094fe64 100644 --- a/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx +++ b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPage.tsx @@ -1,19 +1,11 @@ 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" +import { SecuritySettingsPageView } from "./SecuritySettingsPageView" const SecuritySettingsPage: React.FC = () => { const { deploymentConfig: deploymentConfig } = useDeploySettings() @@ -25,78 +17,19 @@ const SecuritySettingsPage: React.FC = () => { {pageTitle("Security Settings")} - -
-
- -
- -
-
- - - {entitlementsState.context.entitlements.features[ - FeatureNames.AuditLog - ].enabled ? ( - - ) : ( - - )} - - -
- -
-
- - - {entitlementsState.context.entitlements.features[ - FeatureNames.BrowserOnly - ].enabled ? ( - - ) : ( - - )} - - -
- -
-
- - -
-
+ ) } diff --git a/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx new file mode 100644 index 0000000000000..4bf5f3b1ef49c --- /dev/null +++ b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx @@ -0,0 +1,92 @@ +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" +import { Helmet } from "react-helmet-async" +import { pageTitle } from "util/page" + +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 => ( + <> + + {pageTitle("Security Settings")} + + +
+
+ + +
+ +
+
+ + + {featureAuditLogEnabled ? : } + + +
+ +
+
+ + + {featureBrowserOnlyEnabled ? : } + + +
+ +
+
+ + +
+
+ +) From 8e0f2ea6460364eae6ab669033f4c98b7f80ae5b Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Fri, 6 Jan 2023 22:12:32 +0000 Subject: [PATCH 3/4] feat: add storybook for security page --- .../SecuritySettingsPageView.stories.tsx | 59 +++++++++++++++++++ .../SecuritySettingsPageView.tsx | 5 +- 2 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.stories.tsx 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 index 4bf5f3b1ef49c..ceb39d29d0c3d 100644 --- a/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx +++ b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx @@ -11,7 +11,7 @@ import { Stack } from "components/Stack/Stack" import { Helmet } from "react-helmet-async" import { pageTitle } from "util/page" -type SecuritySettingsPageViewProps = { +export type SecuritySettingsPageViewProps = { deploymentConfig: Pick< DeploymentConfig, "tls" | "ssh_keygen_algorithm" | "secure_auth_cookie" @@ -25,9 +25,6 @@ export const SecuritySettingsPageView = ({ featureBrowserOnlyEnabled, }: SecuritySettingsPageViewProps): JSX.Element => ( <> - - {pageTitle("Security Settings")} -
Date: Mon, 9 Jan 2023 20:37:54 +0000 Subject: [PATCH 4/4] fixup --- .../SecuritySettingsPage/SecuritySettingsPageView.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx index ceb39d29d0c3d..01a98389cb352 100644 --- a/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx +++ b/site/src/pages/DeploySettingsPage/SecuritySettingsPage/SecuritySettingsPageView.tsx @@ -8,8 +8,6 @@ import { import { Header } from "components/DeploySettingsLayout/Header" import OptionsTable from "components/DeploySettingsLayout/OptionsTable" import { Stack } from "components/Stack/Stack" -import { Helmet } from "react-helmet-async" -import { pageTitle } from "util/page" export type SecuritySettingsPageViewProps = { deploymentConfig: Pick<