Make require-login work

This commit is contained in:
binwiederhier
2025-05-24 14:46:18 -04:00
parent 1561251028
commit 74ea78fbdc
8 changed files with 54 additions and 43 deletions

View File

@@ -9,6 +9,7 @@ var config = {
base_url: window.location.origin, // Change to test against a different server
app_root: "/",
enable_login: true,
require_login: true,
enable_signup: true,
enable_payments: false,
enable_reservations: true,

View File

@@ -164,36 +164,39 @@ const NavList = (props) => {
<ListItemText primary={t("nav_button_account")} />
</ListItemButton>
)}
{session.exists() || !config.require_login && (
<ListItemButton onClick={() => navigate(routes.settings)} selected={location.pathname === routes.settings}>
<ListItemIcon>
<SettingsIcon />
</ListItemIcon>
<ListItemText primary={t("nav_button_settings")} />
</ListItemButton>
)}
{session.exists() ||
(!config.require_login && (
<ListItemButton onClick={() => navigate(routes.settings)} selected={location.pathname === routes.settings}>
<ListItemIcon>
<SettingsIcon />
</ListItemIcon>
<ListItemText primary={t("nav_button_settings")} />
</ListItemButton>
))}
<ListItemButton onClick={() => openUrl("/docs")}>
<ListItemIcon>
<ArticleIcon />
</ListItemIcon>
<ListItemText primary={t("nav_button_documentation")} />
</ListItemButton>
{session.exists() || !config.require_login && (
<ListItemButton onClick={() => props.onPublishMessageClick()}>
<ListItemIcon>
<Send />
</ListItemIcon>
<ListItemText primary={t("nav_button_publish_message")} />
</ListItemButton>
)}
{session.exists() || !config.require_login && (
<ListItemButton onClick={() => setSubscribeDialogOpen(true)}>
<ListItemIcon>
<AddIcon />
</ListItemIcon>
<ListItemText primary={t("nav_button_subscribe")} />
</ListItemButton>
)}
{session.exists() ||
(!config.require_login && (
<ListItemButton onClick={() => props.onPublishMessageClick()}>
<ListItemIcon>
<Send />
</ListItemIcon>
<ListItemText primary={t("nav_button_publish_message")} />
</ListItemButton>
))}
{session.exists() ||
(!config.require_login && (
<ListItemButton onClick={() => setSubscribeDialogOpen(true)}>
<ListItemIcon>
<AddIcon />
</ListItemIcon>
<ListItemText primary={t("nav_button_subscribe")} />
</ListItemButton>
))}
{showUpgradeBanner && (
// The text background gradient didn't seem to do well with switching between light/dark mode,
// So adding a `key` forces React to replace the entire component when the theme changes

View File

@@ -640,12 +640,16 @@ const NoSubscriptions = () => {
{!session.exists() && config.require_login && t("notifications_no_subscriptions_login_title")}
</Typography>
<Paragraph>
{!session.exists() && !config.require_login && t("notifications_no_subscriptions_description", {
linktext: t("nav_button_subscribe"),
})}
{!session.exists() && config.require_login && t("notifications_no_subscriptions_login_description", {
linktext: t("action_bar_sign_in"),
})}
{!session.exists() &&
!config.require_login &&
t("notifications_no_subscriptions_description", {
linktext: t("nav_button_subscribe"),
})}
{!session.exists() &&
config.require_login &&
t("notifications_no_subscriptions_login_description", {
linktext: t("action_bar_sign_in"),
})}
</Paragraph>
<Paragraph>
<ForMoreDetails />

View File

@@ -66,20 +66,20 @@ const maybeUpdateAccountSettings = async (payload) => {
};
const Preferences = () => {
if (!session.exists() or !config.requireLogin) {
if (!session.exists() || !config.require_login) {
window.location.href = routes.app;
return <></>;
}
return (
<Container maxWidth="md" sx={{ marginTop: 3, marginBottom: 3 }}>
<Stack spacing={3}>
<Notifications />
<Reservations />
<Users />
<Appearance />
</Stack>
</Container>
);
return (
<Container maxWidth="md" sx={{ marginTop: 3, marginBottom: 3 }}>
<Stack spacing={3}>
<Notifications />
<Reservations />
<Users />
<Appearance />
</Stack>
</Container>
);
};
const Notifications = () => {