Implement two-layer CAPTCHA bypass

This commit is contained in:
gpt-engineer-app[bot]
2025-10-11 00:41:13 +00:00
parent c986a54fbf
commit 21acbb948c
7 changed files with 112 additions and 5 deletions

View File

@@ -13,7 +13,7 @@ import { useUserRole } from '@/hooks/useUserRole';
import { useAdminSettings } from '@/hooks/useAdminSettings';
import { NovuMigrationUtility } from '@/components/admin/NovuMigrationUtility';
import { TestDataGenerator } from '@/components/admin/TestDataGenerator';
import { Loader2, Save, Clock, Users, Bell, Shield, Settings, Trash2, Plug } from 'lucide-react';
import { Loader2, Save, Clock, Users, Bell, Shield, Settings, Trash2, Plug, AlertTriangle, Lock } from 'lucide-react';
export default function AdminSettings() {
const { user } = useAuth();
@@ -24,7 +24,8 @@ export default function AdminSettings() {
error,
updateSetting,
isUpdating,
getSettingsByCategory
getSettingsByCategory,
getCaptchaBypassEnabled
} = useAdminSettings();
if (roleLoading || isLoading) {
@@ -440,6 +441,10 @@ export default function AdminSettings() {
<Shield className="w-4 h-4" />
<span className="hidden sm:inline">Moderation</span>
</TabsTrigger>
<TabsTrigger value="auth" className="flex items-center gap-2">
<Lock className="w-4 h-4" />
<span className="hidden sm:inline">Auth</span>
</TabsTrigger>
<TabsTrigger value="user_management" className="flex items-center gap-2">
<Users className="w-4 h-4" />
<span className="hidden sm:inline">Users</span>
@@ -488,6 +493,50 @@ export default function AdminSettings() {
</Card>
</TabsContent>
<TabsContent value="auth">
<Card>
<CardHeader>
<CardTitle className="flex items-center gap-2">
<Lock className="w-5 h-5" />
Authentication Settings
</CardTitle>
<CardDescription>
Configure authentication security, CAPTCHA, and login settings
</CardDescription>
</CardHeader>
<CardContent className="space-y-4">
{getCaptchaBypassEnabled() && (
<Card className="bg-yellow-50 dark:bg-yellow-900/20 border-yellow-300">
<CardContent className="pt-6">
<div className="flex items-start gap-3">
<AlertTriangle className="w-5 h-5 text-yellow-600 dark:text-yellow-400 mt-0.5" />
<div className="space-y-1">
<p className="font-medium text-yellow-800 dark:text-yellow-200">
CAPTCHA Bypass is Currently Enabled
</p>
<p className="text-sm text-yellow-700 dark:text-yellow-300">
Authentication requests will not require CAPTCHA verification.
This should ONLY be enabled in development environments.
</p>
</div>
</div>
</CardContent>
</Card>
)}
{getSettingsByCategory('auth').length > 0 ? (
getSettingsByCategory('auth').map((setting) => (
<SettingInput key={setting.id} setting={setting} />
))
) : (
<div className="text-center py-8 text-muted-foreground">
<Lock className="w-12 h-12 mx-auto mb-4 opacity-50" />
<p>No authentication settings configured yet.</p>
</div>
)}
</CardContent>
</Card>
</TabsContent>
<TabsContent value="user_management">
<Card>
<CardHeader>