diff --git a/src/app/[orgId]/settings/general/page.tsx b/src/app/[orgId]/settings/general/page.tsx
index 518decf81..d10e600f0 100644
--- a/src/app/[orgId]/settings/general/page.tsx
+++ b/src/app/[orgId]/settings/general/page.tsx
@@ -36,7 +36,9 @@ import {
SettingsSectionDescription,
SettingsSectionBody,
SettingsSectionForm,
- SettingsSectionFooter
+ SettingsSectionFooter,
+ SettingsFormGrid,
+ SettingsFormCell
} from "@app/components/Settings";
import { useUserContext } from "@app/hooks/useUserContext";
import { useTranslations } from "next-intl";
@@ -242,7 +244,7 @@ function GeneralSectionForm({ org }: SectionFormProps) {
-
+
-
+
-
+
);
}
diff --git a/src/app/[orgId]/settings/general/security/page.tsx b/src/app/[orgId]/settings/general/security/page.tsx
index 9c1d012c9..fa8561f3d 100644
--- a/src/app/[orgId]/settings/general/security/page.tsx
+++ b/src/app/[orgId]/settings/general/security/page.tsx
@@ -41,7 +41,10 @@ import {
SettingsSectionTitle,
SettingsSectionDescription,
SettingsSectionBody,
- SettingsSectionForm
+ SettingsSectionForm,
+ SettingsSectionFooter,
+ SettingsFormGrid,
+ SettingsFormCell
} from "@app/components/Settings";
import { useTranslations } from "next-intl";
import { build } from "@server/build";
@@ -151,7 +154,15 @@ function LogRetentionSectionForm({ org }: SectionFormProps) {
const router = useRouter();
const t = useTranslations();
- const { isPaidUser, subscriptionTier } = usePaidStatus();
+ const {
+ isPaidUser,
+ subscriptionTier,
+ hasSaasSubscription,
+ hasEnterpriseLicense
+ } = usePaidStatus();
+ const showAccessLogsAlert =
+ (build === "saas" && !hasSaasSubscription(tierMatrix.accessLogs)) ||
+ ((build === "enterprise" || build === "oss") && !hasEnterpriseLicense);
const [, formAction, loadingSave] = useActionState(performSave, null);
const { env } = useEnvContext();
@@ -208,7 +219,7 @@ function LogRetentionSectionForm({ org }: SectionFormProps) {
-
+
-
+
-
+
);
}
@@ -962,7 +1005,7 @@ function SecuritySettingsSectionForm({ org }: SectionFormProps) {
-
+
-
+
-
+
>
);
diff --git a/src/components/AuthPageBrandingForm.tsx b/src/components/AuthPageBrandingForm.tsx
index 5561df314..b46699311 100644
--- a/src/components/AuthPageBrandingForm.tsx
+++ b/src/components/AuthPageBrandingForm.tsx
@@ -15,12 +15,18 @@ import { useActionState } from "react";
import { useForm } from "react-hook-form";
import z from "zod";
import {
+ SettingsFormCell,
+ SettingsFormGrid,
SettingsSection,
SettingsSectionBody,
SettingsSectionDescription,
+ SettingsSectionFooter,
SettingsSectionForm,
SettingsSectionHeader,
- SettingsSectionTitle
+ SettingsSectionTitle,
+ SettingsSubsectionDescription,
+ SettingsSubsectionHeader,
+ SettingsSubsectionTitle
} from "./Settings";
import { useEnvContext } from "@app/hooks/useEnvContext";
@@ -176,89 +182,228 @@ export default function AuthPageBrandingForm({
-
-
-
+
-
+
{branding && (
+
>
);
diff --git a/src/components/AuthPageSettings.tsx b/src/components/AuthPageSettings.tsx
index a76f13232..d5c75d69e 100644
--- a/src/components/AuthPageSettings.tsx
+++ b/src/components/AuthPageSettings.tsx
@@ -20,7 +20,10 @@ import {
SettingsSectionTitle,
SettingsSectionDescription,
SettingsSectionBody,
- SettingsSectionForm
+ SettingsSectionForm,
+ SettingsSectionFooter,
+ SettingsFormGrid,
+ SettingsFormCell
} from "@app/components/Settings";
import { useTranslations } from "next-intl";
import { GetLoginPageResponse } from "@server/routers/loginPage/types";
@@ -284,145 +287,167 @@ function AuthPageSettings({
-
-
-
+
-
+
-
+
{/* Domain Picker Modal */}