diff --git a/api/v1/system.go b/api/v1/system.go index adbb438e..4d9c6f38 100644 --- a/api/v1/system.go +++ b/api/v1/system.go @@ -72,26 +72,17 @@ func (s *APIV1Service) GetSystemStatus(c echo.Context) error { ctx := c.Request().Context() systemStatus := SystemStatus{ - Profile: *s.Profile, - DBSize: 0, - AllowSignUp: false, - DisablePasswordLogin: false, - DisablePublicMemos: false, - MaxUploadSizeMiB: 32, - AutoBackupInterval: 0, - AdditionalStyle: "", - AdditionalScript: "", + Profile: *s.Profile, + // Allow sign up by default. + AllowSignUp: true, + MaxUploadSizeMiB: 32, CustomizedProfile: CustomizedProfile{ - Name: "memos", - LogoURL: "", - Description: "", - Locale: "en", - Appearance: "system", - ExternalURL: "", + Name: "memos", + Locale: "en", + Appearance: "system", }, - StorageServiceID: DefaultStorage, - LocalStoragePath: "assets/{timestamp}_{filename}", - MemoDisplayWithUpdatedTs: false, + StorageServiceID: DefaultStorage, + LocalStoragePath: "assets/{timestamp}_{filename}", } hostUserType := store.RoleHost diff --git a/web/src/App.tsx b/web/src/App.tsx index bb697563..1a0fe56e 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -4,6 +4,7 @@ import { useTranslation } from "react-i18next"; import { Outlet } from "react-router-dom"; import storage from "./helpers/storage"; import { getSystemColorScheme } from "./helpers/utils"; +import useNavigateTo from "./hooks/useNavigateTo"; import Loading from "./pages/Loading"; import store from "./store"; import { useGlobalStore } from "./store/module"; @@ -11,12 +12,20 @@ import { useUserV1Store } from "./store/v1"; const App = () => { const { i18n } = useTranslation(); + const navigateTo = useNavigateTo(); const globalStore = useGlobalStore(); const { mode, setMode } = useColorScheme(); const userV1Store = useUserV1Store(); const [loading, setLoading] = useState(true); const { appearance, locale, systemStatus } = globalStore.state; + // Redirect to sign up page if no host. + useEffect(() => { + if (!systemStatus.host) { + navigateTo("/auth/signup"); + } + }, [systemStatus.host]); + useEffect(() => { const initialState = async () => { const { user } = store.getState().user;