Skip to content

Commit c15d7be

Browse files
committed
don't allow banned users to buy credits
1 parent ca76618 commit c15d7be

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

web/src/app/api/orgs/[orgId]/credits/route.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,23 @@ export async function POST(request: NextRequest, { params }: RouteParams) {
4141
)
4242
}
4343

44+
// Check if user is banned
45+
const user = await db.query.user.findFirst({
46+
where: eq(schema.user.id, session.user.id),
47+
columns: { banned: true },
48+
})
49+
50+
if (user?.banned) {
51+
logger.warn(
52+
{ userId: session.user.id, orgId },
53+
'Banned user attempted to purchase organization credits',
54+
)
55+
return NextResponse.json(
56+
{ error: 'Your account has been suspended. Please contact support.' },
57+
{ status: 403 },
58+
)
59+
}
60+
4461
// Verify user has permission to purchase credits for this organization
4562
const membership = await db.query.orgMember.findFirst({
4663
where: and(

web/src/app/api/stripe/buy-credits/route.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,17 @@ export async function POST(req: NextRequest) {
5050
try {
5151
const user = await db.query.user.findFirst({
5252
where: eq(schema.user.id, userId),
53-
columns: { stripe_customer_id: true },
53+
columns: { stripe_customer_id: true, banned: true },
5454
})
5555

56+
if (user?.banned) {
57+
logger.warn({ userId }, 'Banned user attempted to purchase credits')
58+
return NextResponse.json(
59+
{ error: 'Your account has been suspended. Please contact support.' },
60+
{ status: 403 },
61+
)
62+
}
63+
5664
if (!user?.stripe_customer_id) {
5765
logger.error(
5866
{ userId },

0 commit comments

Comments
 (0)