mirror of
https://github.com/usememos/memos.git
synced 2025-03-24 06:30:09 +01:00
chore: fix auth status checks
This commit is contained in:
parent
fa6693a7ae
commit
33dda9bf87
@ -14,6 +14,9 @@ func (s *APIV2Service) GetAuthStatus(ctx context.Context, _ *apiv2pb.GetAuthStat
|
||||
if err != nil {
|
||||
return nil, status.Errorf(codes.Unauthenticated, "failed to get current user: %v", err)
|
||||
}
|
||||
if user == nil {
|
||||
return nil, status.Errorf(codes.Unauthenticated, "user not found")
|
||||
}
|
||||
return &apiv2pb.GetAuthStatusResponse{
|
||||
User: convertUserFromStore(user),
|
||||
}, nil
|
||||
|
@ -21,7 +21,7 @@ import { useTranslate } from "@/utils/i18n";
|
||||
const DailyReview = () => {
|
||||
const t = useTranslate();
|
||||
const memoStore = useMemoStore();
|
||||
const user = useCurrentUser();
|
||||
const currentUser = useCurrentUser();
|
||||
const currentDateStamp = getDateStampByDate(getNormalizedDateString()) as number;
|
||||
const [selectedDateStamp, setSelectedDateStamp] = useState<number>(currentDateStamp as number);
|
||||
const [showDatePicker, toggleShowDatePicker] = useToggle(false);
|
||||
@ -31,7 +31,7 @@ const DailyReview = () => {
|
||||
const selectedDateStampWithOffset = selectedDateStamp;
|
||||
return (
|
||||
m.rowStatus === "NORMAL" &&
|
||||
m.creatorUsername === extractUsernameFromName(user.name) &&
|
||||
m.creatorUsername === extractUsernameFromName(currentUser.name) &&
|
||||
displayTimestamp >= selectedDateStampWithOffset &&
|
||||
displayTimestamp < selectedDateStampWithOffset + DAILY_TIMESTAMP
|
||||
);
|
||||
|
@ -27,10 +27,10 @@ const MemoDetail = () => {
|
||||
const t = useTranslate();
|
||||
const params = useParams();
|
||||
const navigateTo = useNavigateTo();
|
||||
const currentUser = useCurrentUser();
|
||||
const globalStore = useGlobalStore();
|
||||
const memoStore = useMemoStore();
|
||||
const userV1Store = useUserV1Store();
|
||||
const currentUser = useCurrentUser();
|
||||
const [creator, setCreator] = useState<User>();
|
||||
const { systemStatus } = globalStore.state;
|
||||
const memoId = Number(params.memoId);
|
||||
@ -101,7 +101,7 @@ const MemoDetail = () => {
|
||||
};
|
||||
|
||||
const disableOption = (v: string) => {
|
||||
const isAdminOrHost = currentUser.role === User_Role.ADMIN || currentUser.role === User_Role.HOST;
|
||||
const isAdminOrHost = currentUser?.role === User_Role.ADMIN || currentUser?.role === User_Role.HOST;
|
||||
|
||||
if (v === "PUBLIC" && !isAdminOrHost) {
|
||||
return systemStatus.disablePublicMemos;
|
||||
|
27
web/src/router/AuthStatusProvider.tsx
Normal file
27
web/src/router/AuthStatusProvider.tsx
Normal file
@ -0,0 +1,27 @@
|
||||
import { useEffect } from "react";
|
||||
import useCurrentUser from "@/hooks/useCurrentUser";
|
||||
import useNavigateTo from "@/hooks/useNavigateTo";
|
||||
|
||||
interface Props {
|
||||
children: React.ReactNode;
|
||||
}
|
||||
|
||||
const AuthStatusProvider = (props: Props) => {
|
||||
const navigateTo = useNavigateTo();
|
||||
const currentUser = useCurrentUser();
|
||||
|
||||
useEffect(() => {
|
||||
if (!currentUser) {
|
||||
// If not logged in, redirect to explore page by default.
|
||||
navigateTo("/explore");
|
||||
}
|
||||
}, []);
|
||||
|
||||
if (!currentUser) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return <>{props.children}</>;
|
||||
};
|
||||
|
||||
export default AuthStatusProvider;
|
@ -2,6 +2,7 @@ import { lazy } from "react";
|
||||
import { createBrowserRouter } from "react-router-dom";
|
||||
import App from "@/App";
|
||||
import { initialGlobalState } from "@/store/module";
|
||||
import AuthStatusProvider from "./AuthStatusProvider";
|
||||
|
||||
const Root = lazy(() => import("@/layouts/Root"));
|
||||
const SignIn = lazy(() => import("@/pages/SignIn"));
|
||||
@ -52,27 +53,51 @@ const router = createBrowserRouter([
|
||||
children: [
|
||||
{
|
||||
path: "",
|
||||
element: <Home />,
|
||||
element: (
|
||||
<AuthStatusProvider>
|
||||
<Home />
|
||||
</AuthStatusProvider>
|
||||
),
|
||||
},
|
||||
{
|
||||
path: "review",
|
||||
element: <DailyReview />,
|
||||
element: (
|
||||
<AuthStatusProvider>
|
||||
<DailyReview />
|
||||
</AuthStatusProvider>
|
||||
),
|
||||
},
|
||||
{
|
||||
path: "resources",
|
||||
element: <Resources />,
|
||||
element: (
|
||||
<AuthStatusProvider>
|
||||
<Resources />
|
||||
</AuthStatusProvider>
|
||||
),
|
||||
},
|
||||
{
|
||||
path: "inbox",
|
||||
element: <Inboxes />,
|
||||
element: (
|
||||
<AuthStatusProvider>
|
||||
<Inboxes />
|
||||
</AuthStatusProvider>
|
||||
),
|
||||
},
|
||||
{
|
||||
path: "archived",
|
||||
element: <Archived />,
|
||||
element: (
|
||||
<AuthStatusProvider>
|
||||
<Archived />
|
||||
</AuthStatusProvider>
|
||||
),
|
||||
},
|
||||
{
|
||||
path: "setting",
|
||||
element: <Setting />,
|
||||
element: (
|
||||
<AuthStatusProvider>
|
||||
<Setting />
|
||||
</AuthStatusProvider>
|
||||
),
|
||||
},
|
||||
{
|
||||
path: "explore",
|
||||
|
Loading…
x
Reference in New Issue
Block a user