feat(admin): ban appeals, photos polish, economy adjust, staff smoke

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
SimoandCursor committed 2026-07-30 20:23:03 +02:00
1 parent fe46bd0544
commit 3ad3f9512c
36 files changed
+1185 -293

No files matched your search

@@ -10,6 +10,7 @@ import {
VolumeX,
} from "lucide-react";
import { useState } from "react";
import { setTradeLock } from "@/actions/bulk-users";
import {
alertUser,
disconnectUser,
@@ -234,6 +235,40 @@ export function UserQuickActions({
</Button>
</div>
</div>
{/* Trade lock (DB only — no RCON helper) */}
<div className="space-y-2">
<Label className="text-xs text-muted-foreground">
Trade lock (CMS DB)
</Label>
<div className="flex gap-2">
<Button
variant="outline"
size="sm"
disabled={isPending}
onClick={() => {
const until = Math.floor(Date.now() / 1000) + 7 * 24 * 3600;
run(() => setTradeLock({ userId, untilUnix: until }), {
successMessage: `${username} trade-locked for 7 days.`,
});
}}
>
Lock 7d
</Button>
<Button
variant="outline"
size="sm"
disabled={isPending}
onClick={() => {
run(() => setTradeLock({ userId, untilUnix: 0 }), {
successMessage: `${username} trade lock cleared.`,
});
}}
>
Clear lock
</Button>
</div>
</div>
</CardContent>
</Card>