Реализация реферальной системы и улучшение системы авторизации
- Добавлена полная реферальная система с GraphQL резолверами и UI компонентами - Улучшена система регистрации с поддержкой ВКонтакте и реферальных ссылок - Обновлена схема Prisma для поддержки реферальной системы - Добавлены новые файлы документации правил системы - Улучшена система партнерства и контрагентов - Обновлены компоненты авторизации для поддержки новых функций - Удален устаревший server.log 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -9,9 +9,50 @@ import { AuthGuard } from '@/components/auth-guard'
|
||||
function RegisterContent() {
|
||||
const searchParams = useSearchParams()
|
||||
const partnerCode = searchParams.get('partner')
|
||||
const referralCode = searchParams.get('ref')
|
||||
|
||||
console.log('🔍 RegisterContent - URL параметры:', {
|
||||
partnerCode,
|
||||
referralCode,
|
||||
searchParams: Object.fromEntries(searchParams.entries())
|
||||
})
|
||||
|
||||
// Валидация: нельзя использовать оба параметра одновременно
|
||||
if (partnerCode && referralCode) {
|
||||
console.error('Попытка использовать и ref и partner одновременно')
|
||||
redirect('/register') // Редирект на чистую регистрацию
|
||||
return null
|
||||
}
|
||||
|
||||
// Валидация формата кода (10 символов, только разрешенные)
|
||||
const isValidCode = (code: string | null): boolean => {
|
||||
if (!code) return true // null/undefined разрешены
|
||||
return /^[ABCDEFGHJKLMNPQRSTUVWXYZ23456789]{10}$/.test(code)
|
||||
}
|
||||
|
||||
if (referralCode && !isValidCode(referralCode)) {
|
||||
console.error(`Недействительный реферальный код: ${referralCode}`)
|
||||
redirect('/register')
|
||||
return null
|
||||
}
|
||||
|
||||
if (partnerCode && !isValidCode(partnerCode)) {
|
||||
console.error(`Недействительный партнерский код: ${partnerCode}`)
|
||||
redirect('/register')
|
||||
return null
|
||||
}
|
||||
|
||||
console.log('🚀 RegisterContent - Передача в AuthFlow:', { partnerCode, referralCode })
|
||||
|
||||
// Если есть реферальный или партнерский код, всегда показываем AuthFlow
|
||||
// даже для авторизованных пользователей (для создания дополнительных организаций)
|
||||
if (partnerCode || referralCode) {
|
||||
console.log('🎯 RegisterContent - Принудительный показ AuthFlow из-за наличия кода')
|
||||
return <AuthFlow partnerCode={partnerCode} referralCode={referralCode} />
|
||||
}
|
||||
|
||||
return (
|
||||
<AuthGuard fallback={<AuthFlow partnerCode={partnerCode} />}>
|
||||
<AuthGuard fallback={<AuthFlow partnerCode={partnerCode} referralCode={referralCode} />}>
|
||||
{/* Если пользователь авторизован, перенаправляем в дашборд */}
|
||||
{redirect('/dashboard')}
|
||||
</AuthGuard>
|
||||
|
Reference in New Issue
Block a user