mirror of
https://github.com/kremalicious/umami.git
synced 2025-02-14 21:10:34 +01:00
Refactor env check.
This commit is contained in:
parent
ba63991a92
commit
fc9584eb44
@ -17,7 +17,7 @@ import styles from './Header.module.css';
|
|||||||
export default function Header() {
|
export default function Header() {
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
const { pathname } = useRouter();
|
const { pathname } = useRouter();
|
||||||
const { updatesDisabled } = useConfig();
|
const { updatesDisabled, adminDisabled } = useConfig();
|
||||||
const isSharePage = pathname.includes('/share/');
|
const isSharePage = pathname.includes('/share/');
|
||||||
const allowUpdate = user?.isAdmin && !updatesDisabled && !isSharePage;
|
const allowUpdate = user?.isAdmin && !updatesDisabled && !isSharePage;
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ export default function Header() {
|
|||||||
<Link href="/realtime">
|
<Link href="/realtime">
|
||||||
<FormattedMessage id="label.realtime" defaultMessage="Realtime" />
|
<FormattedMessage id="label.realtime" defaultMessage="Realtime" />
|
||||||
</Link>
|
</Link>
|
||||||
{!process.env.isAdminDisabled && (
|
{!adminDisabled && (
|
||||||
<Link href="/settings">
|
<Link href="/settings">
|
||||||
<FormattedMessage id="label.settings" defaultMessage="Settings" />
|
<FormattedMessage id="label.settings" defaultMessage="Settings" />
|
||||||
</Link>
|
</Link>
|
||||||
|
@ -8,10 +8,12 @@ import User from 'assets/user.svg';
|
|||||||
import styles from './UserButton.module.css';
|
import styles from './UserButton.module.css';
|
||||||
import { AUTH_TOKEN } from 'lib/constants';
|
import { AUTH_TOKEN } from 'lib/constants';
|
||||||
import useUser from 'hooks/useUser';
|
import useUser from 'hooks/useUser';
|
||||||
|
import useConfig from 'hooks/useConfig';
|
||||||
|
|
||||||
export default function UserButton() {
|
export default function UserButton() {
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const { adminDisabled } = useConfig();
|
||||||
|
|
||||||
const menuOptions = [
|
const menuOptions = [
|
||||||
{
|
{
|
||||||
@ -28,7 +30,7 @@ export default function UserButton() {
|
|||||||
{
|
{
|
||||||
label: <FormattedMessage id="label.profile" defaultMessage="Profile" />,
|
label: <FormattedMessage id="label.profile" defaultMessage="Profile" />,
|
||||||
value: 'profile',
|
value: 'profile',
|
||||||
hidden: process.env.isAdminDisabled,
|
hidden: adminDisabled,
|
||||||
},
|
},
|
||||||
{ label: <FormattedMessage id="label.logout" defaultMessage="Logout" />, value: 'logout' },
|
{ label: <FormattedMessage id="label.logout" defaultMessage="Logout" />, value: 'logout' },
|
||||||
];
|
];
|
||||||
|
@ -36,7 +36,6 @@ module.exports = {
|
|||||||
env: {
|
env: {
|
||||||
currentVersion: pkg.version,
|
currentVersion: pkg.version,
|
||||||
isProduction: process.env.NODE_ENV === 'production',
|
isProduction: process.env.NODE_ENV === 'production',
|
||||||
isAdminDisabled: process.env.DISABLE_ADMIN,
|
|
||||||
},
|
},
|
||||||
basePath: process.env.BASE_PATH,
|
basePath: process.env.BASE_PATH,
|
||||||
output: 'standalone',
|
output: 'standalone',
|
||||||
|
@ -2,6 +2,7 @@ import Head from 'next/head';
|
|||||||
import { useRouter } from 'next/router';
|
import { useRouter } from 'next/router';
|
||||||
import { IntlProvider } from 'react-intl';
|
import { IntlProvider } from 'react-intl';
|
||||||
import useLocale from 'hooks/useLocale';
|
import useLocale from 'hooks/useLocale';
|
||||||
|
import useConfig from 'hooks/useConfig';
|
||||||
import 'styles/variables.css';
|
import 'styles/variables.css';
|
||||||
import 'styles/bootstrap-grid.css';
|
import 'styles/bootstrap-grid.css';
|
||||||
import 'styles/index.css';
|
import 'styles/index.css';
|
||||||
@ -23,6 +24,11 @@ const Intl = ({ children }) => {
|
|||||||
export default function App({ Component, pageProps }) {
|
export default function App({ Component, pageProps }) {
|
||||||
const { basePath } = useRouter();
|
const { basePath } = useRouter();
|
||||||
const { dir } = useLocale();
|
const { dir } = useLocale();
|
||||||
|
const { uiDisabled } = useConfig();
|
||||||
|
|
||||||
|
if (uiDisabled) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Intl>
|
<Intl>
|
||||||
|
@ -7,6 +7,9 @@ export default async (req, res) => {
|
|||||||
trackerScriptName: process.env.TRACKER_SCRIPT_NAME,
|
trackerScriptName: process.env.TRACKER_SCRIPT_NAME,
|
||||||
updatesDisabled: !!process.env.DISABLE_UPDATES,
|
updatesDisabled: !!process.env.DISABLE_UPDATES,
|
||||||
telemetryDisabled: !!process.env.DISABLE_TELEMETRY,
|
telemetryDisabled: !!process.env.DISABLE_TELEMETRY,
|
||||||
|
loginDisabled: !!process.env.DISABLE_LOGIN,
|
||||||
|
adminDisabled: !!process.env.DISABLE_ADMIN,
|
||||||
|
uiDisabled: !!process.env.DISABLE_UI,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,11 +4,11 @@ import TestConsole from 'components/pages/TestConsole';
|
|||||||
import useRequireLogin from 'hooks/useRequireLogin';
|
import useRequireLogin from 'hooks/useRequireLogin';
|
||||||
import useUser from 'hooks/useUser';
|
import useUser from 'hooks/useUser';
|
||||||
|
|
||||||
export default function ConsolePage({ enabled, pageDisabled }) {
|
export default function ConsolePage({ pageDisabled }) {
|
||||||
const { loading } = useRequireLogin();
|
const { loading } = useRequireLogin();
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
|
|
||||||
if (pageDisabled || loading || !enabled || !user?.isAdmin) {
|
if (pageDisabled || loading || !user?.isAdmin) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -22,8 +22,7 @@ export default function ConsolePage({ enabled, pageDisabled }) {
|
|||||||
export async function getServerSideProps() {
|
export async function getServerSideProps() {
|
||||||
return {
|
return {
|
||||||
props: {
|
props: {
|
||||||
pageDisabled: !!process.env.DISABLE_UI,
|
pageDisabled: !process.env.ENABLE_TEST_CONSOLE,
|
||||||
enabled: !!process.env.ENABLE_TEST_CONSOLE,
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ import useRequireLogin from 'hooks/useRequireLogin';
|
|||||||
import { useRouter } from 'next/router';
|
import { useRouter } from 'next/router';
|
||||||
import useUser from 'hooks/useUser';
|
import useUser from 'hooks/useUser';
|
||||||
|
|
||||||
export default function DashboardPage({ pageDisabled }) {
|
export default function DashboardPage() {
|
||||||
const {
|
const {
|
||||||
query: { id },
|
query: { id },
|
||||||
isReady,
|
isReady,
|
||||||
@ -14,7 +14,7 @@ export default function DashboardPage({ pageDisabled }) {
|
|||||||
const { loading } = useRequireLogin();
|
const { loading } = useRequireLogin();
|
||||||
const user = useUser();
|
const user = useUser();
|
||||||
|
|
||||||
if (pageDisabled || !user || !isReady || loading) {
|
if (!user || !isReady || loading) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -26,11 +26,3 @@ export default function DashboardPage({ pageDisabled }) {
|
|||||||
</Layout>
|
</Layout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getServerSideProps() {
|
|
||||||
return {
|
|
||||||
props: {
|
|
||||||
pageDisabled: !!process.env.DISABLE_UI,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
@ -17,8 +17,7 @@ export default function LoginPage({ pageDisabled }) {
|
|||||||
export async function getServerSideProps() {
|
export async function getServerSideProps() {
|
||||||
return {
|
return {
|
||||||
props: {
|
props: {
|
||||||
pageDisabled:
|
pageDisabled: !!(process.env.DISABLE_LOGIN || process.env.DISABLE_ADMIN),
|
||||||
!!process.env.DISABLE_LOGIN || !!process.env.DISABLE_UI || !!process.env.isAdminDisabled,
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -3,10 +3,10 @@ import Layout from 'components/layout/Layout';
|
|||||||
import RealtimeDashboard from 'components/pages/RealtimeDashboard';
|
import RealtimeDashboard from 'components/pages/RealtimeDashboard';
|
||||||
import useRequireLogin from 'hooks/useRequireLogin';
|
import useRequireLogin from 'hooks/useRequireLogin';
|
||||||
|
|
||||||
export default function RealtimePage({ pageDisabled }) {
|
export default function RealtimePage() {
|
||||||
const { loading } = useRequireLogin();
|
const { loading } = useRequireLogin();
|
||||||
|
|
||||||
if (pageDisabled || loading) {
|
if (loading) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -16,11 +16,3 @@ export default function RealtimePage({ pageDisabled }) {
|
|||||||
</Layout>
|
</Layout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getServerSideProps() {
|
|
||||||
return {
|
|
||||||
props: {
|
|
||||||
pageDisabled: !!process.env.DISABLE_UI,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
@ -1,11 +1,3 @@
|
|||||||
import Index from './index';
|
import Index from './index';
|
||||||
|
|
||||||
export default Index;
|
export default Index;
|
||||||
|
|
||||||
export async function getServerSideProps() {
|
|
||||||
return {
|
|
||||||
props: {
|
|
||||||
pageDisabled: !!process.env.DISABLE_UI,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
@ -2,11 +2,13 @@ import React from 'react';
|
|||||||
import Layout from 'components/layout/Layout';
|
import Layout from 'components/layout/Layout';
|
||||||
import Settings from 'components/pages/Settings';
|
import Settings from 'components/pages/Settings';
|
||||||
import useRequireLogin from 'hooks/useRequireLogin';
|
import useRequireLogin from 'hooks/useRequireLogin';
|
||||||
|
import useConfig from 'hooks/useConfig';
|
||||||
|
|
||||||
export default function SettingsPage({ pageDisabled }) {
|
export default function SettingsPage() {
|
||||||
const { loading } = useRequireLogin();
|
const { loading } = useRequireLogin();
|
||||||
|
const { adminDisabled } = useConfig();
|
||||||
|
|
||||||
if (pageDisabled || loading) {
|
if (adminDisabled || loading) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -16,11 +18,3 @@ export default function SettingsPage({ pageDisabled }) {
|
|||||||
</Layout>
|
</Layout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getServerSideProps() {
|
|
||||||
return {
|
|
||||||
props: {
|
|
||||||
pageDisabled: !!process.env.DISABLE_UI || !!process.env.isAdminDisabled,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
@ -1,11 +1,3 @@
|
|||||||
import Index from './index';
|
import Index from './index';
|
||||||
|
|
||||||
export default Index;
|
export default Index;
|
||||||
|
|
||||||
export async function getServerSideProps() {
|
|
||||||
return {
|
|
||||||
props: {
|
|
||||||
pageDisabled: !!process.env.DISABLE_UI,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
@ -4,13 +4,13 @@ import Layout from 'components/layout/Layout';
|
|||||||
import WebsiteDetails from 'components/pages/WebsiteDetails';
|
import WebsiteDetails from 'components/pages/WebsiteDetails';
|
||||||
import useShareToken from 'hooks/useShareToken';
|
import useShareToken from 'hooks/useShareToken';
|
||||||
|
|
||||||
export default function SharePage({ pageDisabled }) {
|
export default function SharePage() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { id } = router.query;
|
const { id } = router.query;
|
||||||
const shareId = id?.[0];
|
const shareId = id?.[0];
|
||||||
const shareToken = useShareToken(shareId);
|
const shareToken = useShareToken(shareId);
|
||||||
|
|
||||||
if (pageDisabled || !shareToken) {
|
if (!shareToken) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -20,11 +20,3 @@ export default function SharePage({ pageDisabled }) {
|
|||||||
</Layout>
|
</Layout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getServerSideProps() {
|
|
||||||
return {
|
|
||||||
props: {
|
|
||||||
pageDisabled: !!process.env.DISABLE_UI,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
@ -4,12 +4,12 @@ import Layout from 'components/layout/Layout';
|
|||||||
import WebsiteDetails from 'components/pages/WebsiteDetails';
|
import WebsiteDetails from 'components/pages/WebsiteDetails';
|
||||||
import useRequireLogin from 'hooks/useRequireLogin';
|
import useRequireLogin from 'hooks/useRequireLogin';
|
||||||
|
|
||||||
export default function DetailsPage({ pageDisabled }) {
|
export default function DetailsPage() {
|
||||||
const { loading } = useRequireLogin();
|
const { loading } = useRequireLogin();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { id } = router.query;
|
const { id } = router.query;
|
||||||
|
|
||||||
if (pageDisabled || !id || loading) {
|
if (!id || loading) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -21,11 +21,3 @@ export default function DetailsPage({ pageDisabled }) {
|
|||||||
</Layout>
|
</Layout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getServerSideProps() {
|
|
||||||
return {
|
|
||||||
props: {
|
|
||||||
pageDisabled: !!process.env.DISABLE_UI,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user