/home/techb158/balavpn.abdallabala.com/src/app/api/admin/super-admins
NameSizeModeActions
[id]/-0755rm
route.js16350644editdlrm
Edit: /home/techb158/balavpn.abdallabala.com/src/app/api/admin/super-admins/route.js (1635B)
const { prisma } = require("../../../../lib/prisma"); const { jsonResponse, errorResponse } = require("../../../../lib/http"); const { requireSuperOwner, requireSuperUser } = require("../../../../lib/request-context"); export async function POST(request) { try { await requireSuperOwner(request); const { email, displayName } = await request.json(); if (!email || !displayName) return jsonResponse({ error: "email and displayName are required" }, 400); const user = await prisma.user.findUnique({ where: { email } }); if (!user) return jsonResponse({ error: "User not found" }, 404); if (user.platformRole === "SUPER_OWNER") return jsonResponse({ error: "Cannot change Super Owner role" }, 403); const updated = await prisma.user.update({ where: { id: user.id }, data: { platformRole: "SUPER_ADMIN", displayName } }); return jsonResponse({ user: { id: updated.id, email: updated.email, displayName: updated.displayName, platformRole: updated.platformRole } }); } catch (error) { return errorResponse(error); } } export async function GET(request) { try { await requireSuperUser(request); const admins = await prisma.user.findMany({ where: { platformRole: { in: ["SUPER_ADMIN", "SUPER_OWNER"] } }, select: { id: true, email: true, displayName: true, platformRole: true, lastLoginAt: true, createdAt: true, organizationAccess: { select: { organizationId: true, organization: { select: { name: true } } } } } }); return jsonResponse({ admins }); } catch (error) { return errorResponse(error); } }