/
home
/
techb158
/
balavpn.abdallabala.com
/
src
/
app
/
api
/
organizations
/
[organizationId]
/
members
/
/home/techb158/balavpn.abdallabala.com/src/app/api/organizations/[organizationId]/members
mkdir
upload
Name
Size
Mode
Actions
[membershipId]/
-
0755
rm
route.js
1326
0644
edit
dl
rm
Edit:
/home/techb158/balavpn.abdallabala.com/src/app/api/organizations/[organizationId]/members/route.js
(1326B)
const { prisma } = require("../../../../../lib/prisma"); const { requireOrganizationActor } = require("../../../../../lib/request-context"); const { jsonResponse, errorResponse } = require("../../../../../lib/http"); const ROLE_HIERARCHY = { viewer: 1, risk_owner: 2, governance_reviewer: 2, legal_ethics_reviewer: 2, integration_admin: 2, project_manager: 3, consultant: 3, admin: 4, owner: 5 }; export async function GET(request, { params }) { try { const { organizationId } = await params; const { actor, membership } = await requireOrganizationActor(request, organizationId, "organization:view"); const actorLevel = ROLE_HIERARCHY[membership.role.code] || 0; const members = await prisma.membership.findMany({ where: { organizationId, user: { platformRole: "NONE" } }, include: { user: { select: { id: true, email: true, displayName: true, platformRole: true } }, role: { select: { id: true, name: true, code: true } } }, orderBy: { createdAt: "asc" } }); const filtered = members.filter(m => { const memberLevel = ROLE_HIERARCHY[m.role.code] || 0; return memberLevel <= actorLevel; }); return jsonResponse({ members: filtered }); } catch (error) { return errorResponse(error); } }
Save
cmd:
run