Unverified Commit e36e5823 authored by Alexandr Tumaykin's avatar Alexandr Tumaykin Committed by GitHub

feat(security): disable access for anonymous users, when disablePublicMemos is true (#1966)

parent 4ac63ba1
...@@ -95,6 +95,8 @@ const Header = () => { ...@@ -95,6 +95,8 @@ const Header = () => {
</NavLink> </NavLink>
</> </>
)} )}
{!isVisitorMode && (
<>
<NavLink <NavLink
to="/explore" to="/explore"
id="header-explore" id="header-explore"
...@@ -109,6 +111,8 @@ const Header = () => { ...@@ -109,6 +111,8 @@ const Header = () => {
<Icon.Hash className="mr-3 w-6 h-auto opacity-70" /> {t("common.explore")} <Icon.Hash className="mr-3 w-6 h-auto opacity-70" /> {t("common.explore")}
</> </>
</NavLink> </NavLink>
</>
)}
{!isVisitorMode && ( {!isVisitorMode && (
<> <>
......
...@@ -64,10 +64,14 @@ const router = createBrowserRouter([ ...@@ -64,10 +64,14 @@ const router = createBrowserRouter([
} }
const { host, user } = store.getState().user; const { host, user } = store.getState().user;
const { systemStatus } = store.getState().global;
if (isNullorUndefined(host)) { if (isNullorUndefined(host)) {
return redirect("/auth"); return redirect("/auth");
} else if (isNullorUndefined(user)) { } else if (isNullorUndefined(user) && !systemStatus.disablePublicMemos) {
return redirect("/explore"); return redirect("/explore");
} else if (isNullorUndefined(user) && systemStatus.disablePublicMemos) {
return redirect("/auth");
} }
return null; return null;
}, },
...@@ -84,8 +88,10 @@ const router = createBrowserRouter([ ...@@ -84,8 +88,10 @@ const router = createBrowserRouter([
// do nth // do nth
} }
const { host } = store.getState().user; const { host, user } = store.getState().user;
if (isNullorUndefined(host)) { const { systemStatus } = store.getState().global;
if (isNullorUndefined(host) || (isNullorUndefined(user) && systemStatus.disablePublicMemos)) {
return redirect("/auth"); return redirect("/auth");
} }
return null; return null;
...@@ -103,8 +109,10 @@ const router = createBrowserRouter([ ...@@ -103,8 +109,10 @@ const router = createBrowserRouter([
// do nth // do nth
} }
const { host } = store.getState().user; const { host, user } = store.getState().user;
if (isNullorUndefined(host)) { const { systemStatus } = store.getState().global;
if (isNullorUndefined(host) || (isNullorUndefined(user) && systemStatus.disablePublicMemos)) {
return redirect("/auth"); return redirect("/auth");
} }
return null; return null;
...@@ -122,8 +130,10 @@ const router = createBrowserRouter([ ...@@ -122,8 +130,10 @@ const router = createBrowserRouter([
// do nth // do nth
} }
const { host } = store.getState().user; const { host, user } = store.getState().user;
if (isNullorUndefined(host)) { const { systemStatus } = store.getState().global;
if (isNullorUndefined(host) || (isNullorUndefined(user) && systemStatus.disablePublicMemos)) {
return redirect("/auth"); return redirect("/auth");
} }
return null; return null;
...@@ -141,8 +151,10 @@ const router = createBrowserRouter([ ...@@ -141,8 +151,10 @@ const router = createBrowserRouter([
// do nth // do nth
} }
const { host } = store.getState().user; const { host, user } = store.getState().user;
if (isNullorUndefined(host)) { const { systemStatus } = store.getState().global;
if (isNullorUndefined(host) || (isNullorUndefined(user) && systemStatus.disablePublicMemos)) {
return redirect("/auth"); return redirect("/auth");
} }
return null; return null;
...@@ -160,8 +172,10 @@ const router = createBrowserRouter([ ...@@ -160,8 +172,10 @@ const router = createBrowserRouter([
// do nth // do nth
} }
const { host } = store.getState().user; const { host, user } = store.getState().user;
if (isNullorUndefined(host)) { const { systemStatus } = store.getState().global;
if (isNullorUndefined(host) || (isNullorUndefined(user) && systemStatus.disablePublicMemos)) {
return redirect("/auth"); return redirect("/auth");
} }
return null; return null;
...@@ -180,8 +194,10 @@ const router = createBrowserRouter([ ...@@ -180,8 +194,10 @@ const router = createBrowserRouter([
// do nth // do nth
} }
const { host } = store.getState().user; const { host, user } = store.getState().user;
if (isNullorUndefined(host)) { const { systemStatus } = store.getState().global;
if (isNullorUndefined(host) || (isNullorUndefined(user) && systemStatus.disablePublicMemos)) {
return redirect("/auth"); return redirect("/auth");
} }
return null; return null;
...@@ -199,8 +215,10 @@ const router = createBrowserRouter([ ...@@ -199,8 +215,10 @@ const router = createBrowserRouter([
// do nth // do nth
} }
const { host } = store.getState().user; const { host, user } = store.getState().user;
if (isNullorUndefined(host)) { const { systemStatus } = store.getState().global;
if (isNullorUndefined(host) || (isNullorUndefined(user) && systemStatus.disablePublicMemos)) {
return redirect("/auth"); return redirect("/auth");
} }
return null; return null;
...@@ -220,8 +238,10 @@ const router = createBrowserRouter([ ...@@ -220,8 +238,10 @@ const router = createBrowserRouter([
// do nth // do nth
} }
const { host } = store.getState().user; const { host, user } = store.getState().user;
if (isNullorUndefined(host)) { const { systemStatus } = store.getState().global;
if (isNullorUndefined(host) || (isNullorUndefined(user) && systemStatus.disablePublicMemos)) {
return redirect("/auth"); return redirect("/auth");
} }
return null; return null;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment