diff --git a/components/docs/modals.tsx b/components/docs/modals.tsx index 547d61ac..c8257ab3 100644 --- a/components/docs/modals.tsx +++ b/components/docs/modals.tsx @@ -12,7 +12,6 @@ import { IconGif, IconVideo, IconUpload, - IconFolder, } from "@tabler/icons-react"; import { docsPanelShadow } from "./shell"; import { diff --git a/components/sidebar.tsx b/components/sidebar.tsx index 06d4343a..bfc34842 100644 --- a/components/sidebar.tsx +++ b/components/sidebar.tsx @@ -33,9 +33,8 @@ import { IconClock, IconClockFilled, IconTarget, - IconDots, IconGridDots, - IconUserCircle, + IconChevronRight, } from "@tabler/icons-react"; import axios from "axios"; import clsx from "clsx"; @@ -60,138 +59,95 @@ function MobileWorkspaceSwitcher({ onSelect: (ws: any) => void; onGoHome: () => void; }) { - const [open, setOpen] = useState(false); - const [visible, setVisible] = useState(false); - const sheetRef = useRef(null); - - const openSheet = () => { - setOpen(true); - requestAnimationFrame(() => requestAnimationFrame(() => setVisible(true))); - }; - - const closeSheet = () => { - setVisible(false); - setTimeout(() => setOpen(false), 280); - }; + const [expanded, setExpanded] = useState(false); const otherWorkspaces = login?.workspaces?.filter( (ws: any) => ws.groupId !== workspace.groupId ) ?? []; + const currentName = resolveWorkspaceName( + login?.workspaces?.find((ws: any) => ws.groupId === workspace.groupId)?.customName, + workspace.groupName + ); + return ( - <> +
- {open && ( - <> -
- -
-
-
-
- -
-

Workspaces

- -
- -
-

- Current -

-
- -
-

- {resolveWorkspaceName(login?.workspaces?.find((ws: any) => ws.groupId === workspace.groupId)?.customName, workspace.groupName)} -

-

Active

-
- -
-
- +
+
+
{otherWorkspaces.length > 0 ? ( -
-

- Switch to -

-
- {otherWorkspaces.map((ws: any) => ( - - ))} -
-
+ otherWorkspaces.map((ws: any) => ( + + )) ) : ( -
-

- No other workspaces available -

-
+

+ No other workspaces available +

)} + +
- - )} - +
+
+
); } @@ -688,22 +644,40 @@ const Sidebar: NextPage = ({ isCollapsed, setIsCollapsed }) => { ); })} - {morePages.length > 0 && ( - - )} + + + + Menu + + {mobileMoreOpen && ( + + )} +
= ({ isCollapsed, setIsCollapsed }) => {
-
-
- { - setWorkspace({ - ...workspace, - groupId: ws.groupId, - groupName: ws.groupName, - groupThumbnail: ws.groupThumbnail, - customName: ws.customName - }); - router.push(`/workspace/${ws.groupId}`); - closeMoreSheet(); - }} - onGoHome={() => { - closeMoreSheet(); - router.push("/"); - }} - /> - +
+
+
+

+ {login?.displayname} +

+

+ @{login?.username} +

+
-
-
- {morePages.map((page) => { - const isActive = router.asPath === page.href.replace("[id]", workspace.groupId.toString()); - const IconComponent = isActive ? (page.filledIcon || page.icon) : page.icon; - const hasBadge = navBadgeCount(page.name) > 0; - const badgeCount = navBadgeCount(page.name); + { + setWorkspace({ + ...workspace, + groupId: ws.groupId, + groupName: ws.groupName, + groupThumbnail: ws.groupThumbnail, + customName: ws.customName + }); + router.push(`/workspace/${ws.groupId}`); + closeMoreSheet(); + }} + onGoHome={() => { + closeMoreSheet(); + router.push("/"); + }} + /> +
- return ( -
- {page.name} - - ); - })} -
+ + {page.name} + + + + ); + })} +
+
+ )} -
- -
- +
+

+ Account +

+
+ + +
-
+
)} @@ -833,4 +847,4 @@ const Sidebar: NextPage = ({ isCollapsed, setIsCollapsed }) => { ); }; -export default Sidebar; \ No newline at end of file +export default Sidebar; diff --git a/components/topbar.tsx b/components/topbar.tsx index 2786e69f..a3876990 100644 --- a/components/topbar.tsx +++ b/components/topbar.tsx @@ -171,26 +171,32 @@ const Topbar: NextPage = () => { return ( <> -
+
Planetary
diff --git a/lib/security.ts b/lib/security.ts new file mode 100644 index 00000000..efca04b8 --- /dev/null +++ b/lib/security.ts @@ -0,0 +1,38 @@ +import type { + NextApiHandler, + NextApiRequest, + NextApiResponse +} from "next"; + +export function verifyWorkspace(req: NextApiRequest): boolean { + const { id: workspaceId } = req.query; + if (!workspaceId) return true; + + const workspace = Array.isArray(workspaceId) ? workspaceId[0] : workspaceId; + + const isValidWorkspaceId = /^[A-Za-z0-9_-]+$/.test(workspace); + if (!isValidWorkspaceId) return false; + return true +} + +export function withHandler( + handler: (req: NextApiRequest, res: NextApiResponse) => any, +): NextApiHandler { + return async (req: NextApiRequest, res: NextApiResponse) => { + try { + if (!verifyWorkspace(req)) return res.status(400).send({ + success: false, + error: "Not valid workspace" + }); + + return handler(req, res); + } catch (error) { + console.error("Handler error:", error); + + return res.status(500).json({ + success: false, + error: "Internal Server Error", + }); + } + }; +} \ No newline at end of file diff --git a/lib/withAuth.ts b/lib/withAuth.ts index bf74d625..d1cee31f 100644 --- a/lib/withAuth.ts +++ b/lib/withAuth.ts @@ -12,6 +12,7 @@ import * as cookie from "cookie"; import * as crypto from "crypto"; import { getConfig } from "@/utils/configEngine"; import prisma from "@/utils/database"; +import { verifyWorkspace } from "./security"; if (process.env.NODE_ENV === "production") { const secret = @@ -56,6 +57,10 @@ export function withAuth( handler: (req: AuthenticatedRequest, res: NextApiResponse) => any, ): NextApiHandler { return async (req: NextApiRequest, res: NextApiResponse) => { + if (!verifyWorkspace(req)) return res.status(400).send({ + success: false, + error: "Not valid workspace" + }); try { const cookies = cookie.parse(req.headers.cookie || ""); @@ -115,6 +120,10 @@ export function withKey( handler: (req: NextApiRequest, res: NextApiResponse) => any, ): NextApiHandler { return async (req: NextApiRequest, res: NextApiResponse) => { + if (!verifyWorkspace(req)) return res.status(400).send({ + success: false, + error: "Not valid workspace" + }) const { id } = req.query; try { const auth = req.headers.authorization; diff --git a/pages/api/setup/opencloudtest.ts b/pages/api/setup/opencloudtest.ts index 2367a160..1275470b 100644 --- a/pages/api/setup/opencloudtest.ts +++ b/pages/api/setup/opencloudtest.ts @@ -1,6 +1,6 @@ import { NextApiResponse } from "next"; import axios from "axios"; -import { AuthenticatedRequest, withAuth } from "@/lib/withAuth"; +import { AuthenticatedRequest } from "@/lib/withAuth"; interface OpenCloudKeyRes { name: string; diff --git a/pages/api/user/firstLogin.ts b/pages/api/user/firstLogin.ts index 5d2d8abe..9183ac93 100644 --- a/pages/api/user/firstLogin.ts +++ b/pages/api/user/firstLogin.ts @@ -1,5 +1,5 @@ // Next.js API route support: https://nextjs.org/docs/api-routes/introduction -import type { NextApiRequest, NextApiResponse } from 'next' +import type { NextApiResponse } from 'next' import prisma from '@/utils/database'; import { AuthenticatedRequest, withAuth } from '@/lib/withAuth'; diff --git a/pages/api/workspace/[id]/activity/history/[userId].ts b/pages/api/workspace/[id]/activity/history/[userId].ts index 20bbe9cc..5578f1ea 100644 --- a/pages/api/workspace/[id]/activity/history/[userId].ts +++ b/pages/api/workspace/[id]/activity/history/[userId].ts @@ -1,6 +1,5 @@ -import { withPermissionCheck } from "@/utils/permissionsManager"; import { AuthenticatedRequest, withAuth } from "@/lib/withAuth"; -import type { NextApiRequest, NextApiResponse } from "next"; +import type { NextApiResponse } from "next"; import prisma from "@/utils/database"; export default withAuth(async function handler( diff --git a/pages/api/workspace/[id]/allies/[aid]/delete.ts b/pages/api/workspace/[id]/allies/[aid]/delete.ts index dde8ba60..e9c1b5ce 100644 --- a/pages/api/workspace/[id]/allies/[aid]/delete.ts +++ b/pages/api/workspace/[id]/allies/[aid]/delete.ts @@ -1,11 +1,7 @@ // Next.js API route support: https://nextjs.org/docs/api-routes/introduction -import type { NextApiRequest, NextApiResponse } from 'next' -import { fetchworkspace, getConfig, setConfig } from '@/utils/configEngine' -import prisma, { inactivityNotice } from '@/utils/database'; -// import { withAuth } from '@/lib/withSession' +import type { NextApiResponse } from 'next' +import prisma from '@/utils/database'; import { withPermissionCheck } from '@/utils/permissionsManager' -import { getUsername, getThumbnail, getDisplayName } from '@/utils/userinfoEngine' -import * as noblox from 'noblox.js' import { AuthenticatedRequest } from '@/lib/withAuth'; type Data = { success: boolean diff --git a/pages/api/workspace/[id]/allies/[aid]/discipline.ts b/pages/api/workspace/[id]/allies/[aid]/discipline.ts index 244a92b2..33b4afba 100644 --- a/pages/api/workspace/[id]/allies/[aid]/discipline.ts +++ b/pages/api/workspace/[id]/allies/[aid]/discipline.ts @@ -1,4 +1,4 @@ -import type { NextApiRequest, NextApiResponse } from "next"; +import type { NextApiResponse } from "next"; import { AuthenticatedRequest, withAuth } from "@/lib/withAuth"; import prisma from "@/utils/database"; import { getConfig } from "@/utils/configEngine"; diff --git a/pages/api/workspace/[id]/allies/[aid]/notes.ts b/pages/api/workspace/[id]/allies/[aid]/notes.ts index 102f5e3b..b8a4070f 100644 --- a/pages/api/workspace/[id]/allies/[aid]/notes.ts +++ b/pages/api/workspace/[id]/allies/[aid]/notes.ts @@ -1,5 +1,5 @@ // Next.js API route support: https://nextjs.org/docs/api-routes/introduction -import type { NextApiRequest, NextApiResponse } from 'next' +import type { NextApiResponse } from 'next' import prisma from '@/utils/database'; import { AuthenticatedRequest, withAuth } from '@/lib/withAuth'; diff --git a/pages/api/workspace/[id]/allies/[aid]/reps.ts b/pages/api/workspace/[id]/allies/[aid]/reps.ts index fb460123..72ad8236 100644 --- a/pages/api/workspace/[id]/allies/[aid]/reps.ts +++ b/pages/api/workspace/[id]/allies/[aid]/reps.ts @@ -1,11 +1,7 @@ // Next.js API route support: https://nextjs.org/docs/api-routes/introduction -import type { NextApiRequest, NextApiResponse } from 'next' -import { fetchworkspace, getConfig, setConfig } from '@/utils/configEngine' -import prisma, { inactivityNotice } from '@/utils/database'; -// import { withAuth } from '@/lib/withSession' +import type { NextApiResponse } from 'next' +import prisma from '@/utils/database'; import { withPermissionCheck } from '@/utils/permissionsManager' -import { getUsername, getThumbnail, getDisplayName } from '@/utils/userinfoEngine' -import * as noblox from 'noblox.js' import { AuthenticatedRequest } from '@/lib/withAuth'; type Data = { success: boolean diff --git a/pages/api/workspace/[id]/allies/[aid]/update.ts b/pages/api/workspace/[id]/allies/[aid]/update.ts index 0950de1d..69b2feaa 100644 --- a/pages/api/workspace/[id]/allies/[aid]/update.ts +++ b/pages/api/workspace/[id]/allies/[aid]/update.ts @@ -1,4 +1,4 @@ -import type { NextApiRequest, NextApiResponse } from 'next'; +import type { NextApiResponse } from 'next'; import prisma from '@/utils/database'; import { AuthenticatedRequest, withAuth } from '@/lib/withAuth'; diff --git a/pages/api/workspace/[id]/allies/[aid]/visits/[vid].ts b/pages/api/workspace/[id]/allies/[aid]/visits/[vid].ts index f0478afb..6d01b1ae 100644 --- a/pages/api/workspace/[id]/allies/[aid]/visits/[vid].ts +++ b/pages/api/workspace/[id]/allies/[aid]/visits/[vid].ts @@ -1,10 +1,6 @@ // Next.js API route support: https://nextjs.org/docs/api-routes/introduction -import type { NextApiRequest, NextApiResponse } from 'next' -import { fetchworkspace, getConfig, setConfig } from '@/utils/configEngine' -import prisma, { allyVisit } from '@/utils/database'; -import { withPermissionCheck } from '@/utils/permissionsManager' -import { getUsername, getThumbnail, getDisplayName } from '@/utils/userinfoEngine' -import * as noblox from 'noblox.js' +import type { NextApiResponse } from 'next' +import prisma from '@/utils/database'; import { AuthenticatedRequest, withAuth } from '@/lib/withAuth'; type Data = { success: boolean diff --git a/pages/api/workspace/[id]/allies/[aid]/visits/index.ts b/pages/api/workspace/[id]/allies/[aid]/visits/index.ts index 9519882b..edc0a5fe 100644 --- a/pages/api/workspace/[id]/allies/[aid]/visits/index.ts +++ b/pages/api/workspace/[id]/allies/[aid]/visits/index.ts @@ -1,8 +1,7 @@ // Next.js API route support: https://nextjs.org/docs/api-routes/introduction -import type { NextApiRequest, NextApiResponse } from 'next' +import type { NextApiResponse } from 'next' import prisma from '@/utils/database'; import { AuthenticatedRequest, withAuth } from '@/lib/withAuth'; -// import { withAuth } from '@/lib/withSession' type Data = { success: boolean diff --git a/pages/api/workspace/[id]/allies/new.ts b/pages/api/workspace/[id]/allies/new.ts index febc7bc6..d4faecae 100644 --- a/pages/api/workspace/[id]/allies/new.ts +++ b/pages/api/workspace/[id]/allies/new.ts @@ -1,8 +1,7 @@ // Next.js API route support: https://nextjs.org/docs/api-routes/introduction -import type { NextApiRequest, NextApiResponse } from 'next' +import type { NextApiResponse } from 'next' import prisma from '@/utils/database'; import { withPermissionCheck } from '@/utils/permissionsManager' -import moment from 'moment'; import * as noblox from 'noblox.js' import { AuthenticatedRequest } from '@/lib/withAuth'; type Data = { diff --git a/pages/api/workspace/[id]/announcement/update.ts b/pages/api/workspace/[id]/announcement/update.ts index 43f7a5a5..f921ca99 100644 --- a/pages/api/workspace/[id]/announcement/update.ts +++ b/pages/api/workspace/[id]/announcement/update.ts @@ -1,4 +1,4 @@ -import type { NextApiRequest, NextApiResponse } from "next"; +import type { NextApiResponse } from "next"; import prisma from "@/utils/database"; import { withPermissionCheck } from "@/utils/permissionsManager"; import { logAudit } from "@/utils/logs"; diff --git a/pages/api/workspace/[id]/api-keys/[keyId]/create.ts b/pages/api/workspace/[id]/api-keys/[keyId]/create.ts index a3c7449d..cd2fa3fe 100644 --- a/pages/api/workspace/[id]/api-keys/[keyId]/create.ts +++ b/pages/api/workspace/[id]/api-keys/[keyId]/create.ts @@ -1,4 +1,4 @@ -import type { NextApiRequest, NextApiResponse } from "next" +import type { NextApiResponse } from "next" import { withPermissionCheck } from "@/utils/permissionsManager" import prisma from "@/utils/database" import crypto from "crypto" diff --git a/pages/api/workspace/[id]/api-keys/[keyId]/delete.ts b/pages/api/workspace/[id]/api-keys/[keyId]/delete.ts index 6c842f2d..61333fad 100644 --- a/pages/api/workspace/[id]/api-keys/[keyId]/delete.ts +++ b/pages/api/workspace/[id]/api-keys/[keyId]/delete.ts @@ -1,4 +1,4 @@ -import type { NextApiRequest, NextApiResponse } from "next" +import type { NextApiResponse } from "next" import { withPermissionCheck } from "@/utils/permissionsManager" import prisma from "@/utils/database" import { AuthenticatedRequest } from "@/lib/withAuth" diff --git a/pages/api/workspace/[id]/birthday/[userId].ts b/pages/api/workspace/[id]/birthday/[userId].ts index ddf0e232..93f0be51 100644 --- a/pages/api/workspace/[id]/birthday/[userId].ts +++ b/pages/api/workspace/[id]/birthday/[userId].ts @@ -1,4 +1,4 @@ -import type { NextApiRequest, NextApiResponse } from 'next'; +import type { NextApiResponse } from 'next'; import prisma from '@/utils/database'; import { AuthenticatedRequest, withAuth } from '@/lib/withAuth'; diff --git a/pages/api/workspace/[id]/guides/[docid]/delete.ts b/pages/api/workspace/[id]/guides/[docid]/delete.ts index 9ea1fd65..8a29e12e 100644 --- a/pages/api/workspace/[id]/guides/[docid]/delete.ts +++ b/pages/api/workspace/[id]/guides/[docid]/delete.ts @@ -1,11 +1,8 @@ // Next.js API route support: https://nextjs.org/docs/api-routes/introduction -import type { NextApiRequest, NextApiResponse } from 'next' -import { fetchworkspace, getConfig, setConfig } from '@/utils/configEngine' +import type { NextApiResponse } from 'next' import prisma from '@/utils/database'; import { withPermissionCheck } from '@/utils/permissionsManager' import { logAudit } from '@/utils/logs' -import { getUsername, getThumbnail, getDisplayName } from '@/utils/userinfoEngine' -import * as noblox from 'noblox.js' import { AuthenticatedRequest } from '@/lib/withAuth'; type Data = { success: boolean diff --git a/pages/api/workspace/[id]/home/activeSessions.ts b/pages/api/workspace/[id]/home/activeSessions.ts index 70fcf3b0..e48ceda4 100644 --- a/pages/api/workspace/[id]/home/activeSessions.ts +++ b/pages/api/workspace/[id]/home/activeSessions.ts @@ -1,12 +1,7 @@ // Next.js API route support: https://nextjs.org/docs/api-routes/introduction import type { NextApiRequest, NextApiResponse } from 'next' -import { fetchworkspace, getConfig, setConfig } from '@/utils/configEngine' -import prisma, { SessionType, Session } from '@/utils/database'; -// import { withAuth } from '@/lib/withSession' +import prisma, { Session } from '@/utils/database'; import { withPermissionCheck } from '@/utils/permissionsManager' - -import { getUsername, getThumbnail, getDisplayName } from '@/utils/userinfoEngine' -import * as noblox from 'noblox.js' type Data = { success: boolean error?: string diff --git a/pages/api/workspace/[id]/home/docs.ts b/pages/api/workspace/[id]/home/docs.ts index 1b9b14bb..b8e34b6a 100644 --- a/pages/api/workspace/[id]/home/docs.ts +++ b/pages/api/workspace/[id]/home/docs.ts @@ -1,4 +1,4 @@ -import type { NextApiRequest, NextApiResponse } from "next"; +import type { NextApiResponse } from "next"; import prisma, { document } from "@/utils/database"; import { withPermissionCheck } from "@/utils/permissionsManager"; import { AuthenticatedRequest } from "@/lib/withAuth"; diff --git a/pages/api/workspace/[id]/home/new-members.ts b/pages/api/workspace/[id]/home/new-members.ts index 654d1728..7125532a 100644 --- a/pages/api/workspace/[id]/home/new-members.ts +++ b/pages/api/workspace/[id]/home/new-members.ts @@ -1,4 +1,4 @@ -import type { NextApiRequest, NextApiResponse } from 'next'; +import type { NextApiResponse } from 'next'; import prisma from '@/utils/database'; import { AuthenticatedRequest, withAuth } from '@/lib/withAuth'; diff --git a/pages/api/workspace/[id]/home/quickLinks.ts b/pages/api/workspace/[id]/home/quickLinks.ts index 22e0d276..5308db40 100644 --- a/pages/api/workspace/[id]/home/quickLinks.ts +++ b/pages/api/workspace/[id]/home/quickLinks.ts @@ -1,5 +1,4 @@ import type { NextApiRequest, NextApiResponse } from 'next' -import prisma, { document } from '@/utils/database'; import { withPermissionCheck } from '@/utils/permissionsManager' import axios from 'axios'; import PackageInfo from '@/package.json' diff --git a/pages/api/workspace/[id]/home/upcoming.ts b/pages/api/workspace/[id]/home/upcoming.ts index 3b0b3a64..26bf0537 100644 --- a/pages/api/workspace/[id]/home/upcoming.ts +++ b/pages/api/workspace/[id]/home/upcoming.ts @@ -1,4 +1,4 @@ -import type { NextApiRequest, NextApiResponse } from "next"; +import type { NextApiResponse } from "next"; import prisma from "@/utils/database"; import { AuthenticatedRequest, withAuth } from "@/lib/withAuth"; diff --git a/pages/api/workspace/[id]/home/wall.ts b/pages/api/workspace/[id]/home/wall.ts index 6d39f898..64237c03 100644 --- a/pages/api/workspace/[id]/home/wall.ts +++ b/pages/api/workspace/[id]/home/wall.ts @@ -1,12 +1,6 @@ -// Next.js API route support: https://nextjs.org/docs/api-routes/introduction import type { NextApiRequest, NextApiResponse } from 'next' -import { fetchworkspace, getConfig, setConfig } from '@/utils/configEngine' -import prisma, { SessionType, Session, wallPost } from '@/utils/database'; -// import { withAuth } from '@/lib/withSession' +import prisma, { wallPost } from '@/utils/database'; import { withPermissionCheck } from '@/utils/permissionsManager' - -import { getUsername, getThumbnail, getDisplayName } from '@/utils/userinfoEngine' -import * as noblox from 'noblox.js' type Data = { success: boolean error?: string diff --git a/pages/api/workspace/[id]/policies/[docId].ts b/pages/api/workspace/[id]/policies/[docId].ts index 14abfd3e..26d3c32f 100644 --- a/pages/api/workspace/[id]/policies/[docId].ts +++ b/pages/api/workspace/[id]/policies/[docId].ts @@ -1,7 +1,6 @@ -import type { NextApiRequest, NextApiResponse } from 'next' +import type { NextApiResponse } from 'next' import prisma from '@/utils/database'; import { logAudit } from '@/utils/logs'; -// import { withAuth } from '@/lib/withSession' import { withPermissionCheck } from '@/utils/permissionsManager' import { AuthenticatedRequest } from '@/lib/withAuth'; diff --git a/pages/api/workspace/[id]/policies/create.ts b/pages/api/workspace/[id]/policies/create.ts index 14a335aa..e9dce9ba 100644 --- a/pages/api/workspace/[id]/policies/create.ts +++ b/pages/api/workspace/[id]/policies/create.ts @@ -3,7 +3,6 @@ import { fetchworkspace, getConfig, setConfig } from '@/utils/configEngine' import prisma, { SessionType, document } from '@/utils/database'; import { logAudit } from '@/utils/logs'; import { sanitizeJSON } from '@/utils/sanitise'; -// import { withAuth } from '@/lib/withSession' import { withPermissionCheck } from '@/utils/permissionsManager' import { getUsername, getThumbnail, getDisplayName } from '@/utils/userinfoEngine' diff --git a/pages/api/workspace/[id]/policies/pending.ts b/pages/api/workspace/[id]/policies/pending.ts index a8f0e6e3..d29e7700 100644 --- a/pages/api/workspace/[id]/policies/pending.ts +++ b/pages/api/workspace/[id]/policies/pending.ts @@ -1,5 +1,5 @@ import { withPermissionCheck } from "@/utils/permissionsManager"; -import type { NextApiRequest, NextApiResponse } from "next"; +import type { NextApiResponse } from "next"; import prisma from "@/utils/database"; import { AuthenticatedRequest } from "@/lib/withAuth"; diff --git a/pages/api/workspace/[id]/resignations/count.ts b/pages/api/workspace/[id]/resignations/count.ts index 591a13d0..615c88d4 100644 --- a/pages/api/workspace/[id]/resignations/count.ts +++ b/pages/api/workspace/[id]/resignations/count.ts @@ -1,4 +1,4 @@ -import type { NextApiRequest, NextApiResponse } from "next"; +import type { NextApiResponse } from "next"; import prisma from "@/utils/database"; import { withPermissionCheck } from "@/utils/permissionsManager"; import { AuthenticatedRequest } from "@/lib/withAuth"; diff --git a/pages/api/workspace/[id]/resignations/create.ts b/pages/api/workspace/[id]/resignations/create.ts index fdba57e6..9a0212e0 100644 --- a/pages/api/workspace/[id]/resignations/create.ts +++ b/pages/api/workspace/[id]/resignations/create.ts @@ -1,4 +1,4 @@ -import type { NextApiRequest, NextApiResponse } from "next"; +import type { NextApiResponse } from "next"; import prisma from "@/utils/database"; import { withPermissionCheck } from "@/utils/permissionsManager"; import { AuthenticatedRequest } from "@/lib/withAuth"; diff --git a/pages/api/workspace/[id]/resignations/update.ts b/pages/api/workspace/[id]/resignations/update.ts index 6cd6b918..8fcadccf 100644 --- a/pages/api/workspace/[id]/resignations/update.ts +++ b/pages/api/workspace/[id]/resignations/update.ts @@ -1,4 +1,4 @@ -import type { NextApiRequest, NextApiResponse } from "next"; +import type { NextApiResponse } from "next"; import prisma from "@/utils/database"; import { logAudit } from "@/utils/logs"; import { withPermissionCheck } from "@/utils/permissionsManager"; diff --git a/pages/api/workspace/[id]/sessions/[sid]/notes/[noteId].ts b/pages/api/workspace/[id]/sessions/[sid]/notes/[noteId].ts index ff0a9c59..71daa996 100644 --- a/pages/api/workspace/[id]/sessions/[sid]/notes/[noteId].ts +++ b/pages/api/workspace/[id]/sessions/[sid]/notes/[noteId].ts @@ -1,4 +1,4 @@ -import type { NextApiRequest, NextApiResponse } from "next"; +import type { NextApiResponse } from "next"; import prisma from "@/utils/database"; import { AuthenticatedRequest, withAuth } from "@/lib/withAuth"; diff --git a/pages/api/workspace/[id]/sessions/create-unscheduled.ts b/pages/api/workspace/[id]/sessions/create-unscheduled.ts index 59301b95..1cafcf08 100644 --- a/pages/api/workspace/[id]/sessions/create-unscheduled.ts +++ b/pages/api/workspace/[id]/sessions/create-unscheduled.ts @@ -1,4 +1,4 @@ -import type { NextApiRequest, NextApiResponse } from "next"; +import type { NextApiResponse } from "next"; import prisma from "@/utils/database"; import { AuthenticatedRequest, withAuth } from "@/lib/withAuth"; diff --git a/pages/api/workspace/[id]/sessions/manage/[sid]/claim.ts b/pages/api/workspace/[id]/sessions/manage/[sid]/claim.ts index fb7038be..2f6de13c 100644 --- a/pages/api/workspace/[id]/sessions/manage/[sid]/claim.ts +++ b/pages/api/workspace/[id]/sessions/manage/[sid]/claim.ts @@ -1,7 +1,6 @@ // Next.js API route support: https://nextjs.org/docs/api-routes/introduction -import type { NextApiRequest, NextApiResponse } from "next"; +import type { NextApiResponse } from "next"; import prisma, { schedule } from "@/utils/database"; -import roles from "../../../settings/roles"; import { AuthenticatedRequest, withAuth } from "@/lib/withAuth"; type Data = { success: boolean; @@ -21,7 +20,7 @@ export async function handler(req: AuthenticatedRequest, res: NextApiResponse