aboutsummaryrefslogtreecommitdiffstats
path: root/packages/web/server
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-03-13 21:43:44 +0000
committerMohamed Bassem <me@mbassem.com>2024-03-14 16:40:45 +0000
commit04572a8e5081b1e4871e273cde9dbaaa44c52fe0 (patch)
tree8e993acb732a50d1306d4d6953df96c165c57f57 /packages/web/server
parent2df08ed08c065e8b91bc8df0266bd4bcbb062be4 (diff)
downloadkarakeep-04572a8e5081b1e4871e273cde9dbaaa44c52fe0.tar.zst
structure: Create apps dir and copy tooling dir from t3-turbo repo
Diffstat (limited to 'packages/web/server')
-rw-r--r--packages/web/server/api/client.ts16
-rw-r--r--packages/web/server/auth.ts96
2 files changed, 0 insertions, 112 deletions
diff --git a/packages/web/server/api/client.ts b/packages/web/server/api/client.ts
deleted file mode 100644
index 88ea7a0e..00000000
--- a/packages/web/server/api/client.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { appRouter } from "@hoarder/trpc/routers/_app";
-import { getServerAuthSession } from "@/server/auth";
-import { Context, createCallerFactory } from "@hoarder/trpc";
-import { db } from "@hoarder/db";
-
-export const createContext = async (database?: typeof db): Promise<Context> => {
- const session = await getServerAuthSession();
- return {
- user: session?.user ?? null,
- db: database ?? db,
- };
-};
-
-const createCaller = createCallerFactory(appRouter);
-
-export const api = createCaller(createContext);
diff --git a/packages/web/server/auth.ts b/packages/web/server/auth.ts
deleted file mode 100644
index 950443b9..00000000
--- a/packages/web/server/auth.ts
+++ /dev/null
@@ -1,96 +0,0 @@
-import NextAuth, { NextAuthOptions, getServerSession } from "next-auth";
-import type { Adapter } from "next-auth/adapters";
-import AuthentikProvider from "next-auth/providers/authentik";
-import serverConfig from "@hoarder/shared/config";
-import { validatePassword } from "@hoarder/trpc/auth";
-import { db } from "@hoarder/db";
-import { DefaultSession } from "next-auth";
-import CredentialsProvider from "next-auth/providers/credentials";
-import { DrizzleAdapter } from "@auth/drizzle-adapter";
-
-import { Provider } from "next-auth/providers/index";
-
-declare module "next-auth/jwt" {
- export interface JWT {
- user: {
- id: string;
- role: "admin" | "user";
- } & DefaultSession["user"];
- }
-}
-
-declare module "next-auth" {
- /**
- * Returned by `useSession`, `getSession` and received as a prop on the `SessionProvider` React Context
- */
- export interface Session {
- user: {
- id: string;
- role: "admin" | "user";
- } & DefaultSession["user"];
- }
-
- export interface DefaultUser {
- role: "admin" | "user" | null;
- }
-}
-
-const providers: Provider[] = [
- CredentialsProvider({
- // The name to display on the sign in form (e.g. "Sign in with...")
- name: "Credentials",
- credentials: {
- email: { label: "Email", type: "email", placeholder: "Email" },
- password: { label: "Password", type: "password" },
- },
- async authorize(credentials) {
- if (!credentials) {
- return null;
- }
-
- try {
- return await validatePassword(
- credentials?.email,
- credentials?.password,
- );
- } catch (e) {
- return null;
- }
- },
- }),
-];
-
-if (serverConfig.auth.authentik) {
- providers.push(AuthentikProvider(serverConfig.auth.authentik));
-}
-
-export const authOptions: NextAuthOptions = {
- // https://github.com/nextauthjs/next-auth/issues/9493
- adapter: DrizzleAdapter(db) as Adapter,
- providers: providers,
- session: {
- strategy: "jwt",
- },
- callbacks: {
- async jwt({ token, user }) {
- if (user) {
- token.user = {
- id: user.id,
- name: user.name,
- email: user.email,
- image: user.image,
- role: user.role || "user",
- };
- }
- return token;
- },
- async session({ session, token }) {
- session.user = { ...token.user };
- return session;
- },
- },
-};
-
-export const authHandler = NextAuth(authOptions);
-
-export const getServerAuthSession = () => getServerSession(authOptions);