/home/techb158/balavpn.abdallabala.com/src/app/api/admin/org-access
Edit: /home/techb158/balavpn.abdallabala.com/src/app/api/admin/org-access/route.js (1824B)
const { prisma } = require("../../../../lib/prisma");
const { jsonResponse, errorResponse } = require("../../../../lib/http");
const { requireSuperOwner } = require("../../../../lib/request-context");
export async function POST(request) {
try {
await requireSuperOwner(request);
const { userId, organizationId } = await request.json();
if (!userId || !organizationId) return jsonResponse({ error: "userId and organizationId are required" }, 400);
const user = await prisma.user.findUnique({ where: { id: userId } });
if (!user) return jsonResponse({ error: "User not found" }, 404);
if (user.platformRole !== "SUPER_ADMIN") return jsonResponse({ error: "User is not a Super Admin" }, 400);
const org = await prisma.organization.findUnique({ where: { id: organizationId } });
if (!org) return jsonResponse({ error: "Organization not found" }, 404);
await prisma.organizationAccess.upsert({
where: { userId_organizationId: { userId, organizationId } },
update: {},
create: { userId, organizationId }
});
return jsonResponse({ message: "Organization access granted" });
} catch (error) {
return errorResponse(error);
}
}
export async function DELETE(request) {
try {
await requireSuperOwner(request);
const { searchParams } = new URL(request.url);
const userId = searchParams.get("userId");
const organizationId = searchParams.get("organizationId");
if (!userId || !organizationId) return jsonResponse({ error: "userId and organizationId are required" }, 400);
await prisma.organizationAccess.delete({
where: { userId_organizationId: { userId, organizationId } }
}).catch(() => {});
return jsonResponse({ message: "Organization access revoked" });
} catch (error) {
return errorResponse(error);
}
}