- Unauthorized
-
- You must be an admin to create posts.
-
-
- }
- >
-
-
-
+
+
>
);
diff --git a/src/routes/blog/edit/[id].tsx b/src/routes/blog/edit/[id].tsx
index f16bed0..306f444 100644
--- a/src/routes/blog/edit/[id].tsx
+++ b/src/routes/blog/edit/[id].tsx
@@ -2,7 +2,7 @@ import { Show } from "solid-js";
import { useParams, query } from "@solidjs/router";
import { Title, Meta } from "@solidjs/meta";
import { createAsync } from "@solidjs/router";
-import { getRequestEvent } from "solid-js/web";
+import { getEvent } from "vinxi/http";
import PostForm from "~/components/blog/PostForm";
import "../post.css";
@@ -10,9 +10,14 @@ const getPostForEdit = query(async (id: string) => {
"use server";
const { getPrivilegeLevel, getUserID, ConnectionFactory } =
await import("~/server/utils");
- const event = getRequestEvent()!;
- const privilegeLevel = await getPrivilegeLevel(event.nativeEvent);
- const userID = await getUserID(event.nativeEvent);
+ const event = getEvent()!;
+ const privilegeLevel = await getPrivilegeLevel(event);
+ const userID = await getUserID(event);
+
+ // Return 401 for non-admin users
+ if (privilegeLevel !== "admin") {
+ throw new Response("Unauthorized", { status: 401 });
+ }
const conn = ConnectionFactory();
const query = `SELECT * FROM Post WHERE id = ?`;
@@ -33,6 +38,10 @@ const getPostForEdit = query(async (id: string) => {
return { post, tags, privilegeLevel, userID };
}, "post-for-edit");
+export const route = {
+ load: ({ params }: { params: { id: string } }) => getPostForEdit(params.id)
+};
+
export default function EditPost() {
const params = useParams();
const data = createAsync(() => getPostForEdit(params.id));
@@ -64,31 +73,19 @@ export default function EditPost() {
/>
- Unauthorized
-
- You must be an admin to edit posts.
-
+ Loading post...
}
>
-
- Loading post...
-
- }
- >
-
-
+
>
);
diff --git a/vercel.json b/vercel.json
new file mode 100644
index 0000000..bb66237
--- /dev/null
+++ b/vercel.json
@@ -0,0 +1,22 @@
+{
+ "headers": [
+ {
+ "source": "/(.*)",
+ "headers": [
+ {
+ "key": "Cache-Control",
+ "value": "public, max-age=0, stale-while-revalidate=60"
+ }
+ ]
+ },
+ {
+ "source": "/_build/(.*)",
+ "headers": [
+ {
+ "key": "Cache-Control",
+ "value": "public, max-age=31536000, immutable"
+ }
+ ]
+ }
+ ]
+}