admin dashbaord; started member managment ui
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { articleRouter } from "./routers/article";
|
||||
import { categoryRouter } from "@/server/api/routers/category";
|
||||
import { createCallerFactory, createTRPCRouter } from "@/server/api/trpc";
|
||||
import { usersRouter } from "./routers/users";
|
||||
|
||||
/**
|
||||
* This is the primary router for your server.
|
||||
@@ -10,6 +11,7 @@ import { createCallerFactory, createTRPCRouter } from "@/server/api/trpc";
|
||||
export const appRouter = createTRPCRouter({
|
||||
article: articleRouter,
|
||||
category: categoryRouter,
|
||||
users: usersRouter,
|
||||
});
|
||||
|
||||
// export type definition of API
|
||||
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
import { articles } from "@/server/db/schema";
|
||||
import { articleSchema } from "@/lib/validation/zod/article";
|
||||
import { eq } from "drizzle-orm";
|
||||
import { hasPermission, Role } from "@/lib/validation/has-permission";
|
||||
import { hasPermission, Role } from "@/lib/validation/permissions";
|
||||
import { generateSlug } from "@/lib/utils";
|
||||
|
||||
export const articleRouter = createTRPCRouter({
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
import { categories } from "@/server/db/schema";
|
||||
|
||||
import { eq } from "drizzle-orm";
|
||||
import { hasPermission, Role } from "@/lib/validation/has-permission";
|
||||
import { hasPermission, Role } from "@/lib/validation/permissions";
|
||||
import { categorySchema } from "@/lib/validation/zod/category";
|
||||
import { generateSlug } from "@/lib/utils";
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
import { hasPermission, Role } from "@/lib/validation/permissions";
|
||||
import { createTRPCRouter, protectedProcedure } from "../trpc";
|
||||
|
||||
export const usersRouter = createTRPCRouter({
|
||||
getAll: protectedProcedure.query(async ({ ctx }) => {
|
||||
const isAdmin = hasPermission(ctx.session.user.role, Role.ADMIN);
|
||||
if (!isAdmin) throw new Error("You are not allowed to get all users");
|
||||
return await ctx.db.query.users.findMany();
|
||||
}),
|
||||
});
|
||||
Reference in New Issue
Block a user