fix: Add protection to prevent saveFormData without SMS code
Added validation to ensure saveFormData is only called after SMS verification: - Check if SMS code is provided - Show error message if called without SMS code - Prevent data from being sent to Redis without verification This prevents accidental form submission without SMS approval. Files: - frontend/src/components/form/StepClaimConfirmation.tsx
This commit is contained in:
@@ -93,10 +93,18 @@ export default function StepClaimConfirmation({
|
|||||||
}, [claimPlanData]);
|
}, [claimPlanData]);
|
||||||
|
|
||||||
// Функция сохранения данных формы - публикация в Redis канал
|
// Функция сохранения данных формы - публикация в Redis канал
|
||||||
|
// ⚠️ ВАЖНО: Эта функция должна вызываться ТОЛЬКО после SMS-верификации!
|
||||||
const saveFormData = useCallback(async (formData: any, smsCode?: string) => {
|
const saveFormData = useCallback(async (formData: any, smsCode?: string) => {
|
||||||
console.log('💾 Публикуем данные формы в Redis канал:', formData);
|
console.log('💾 Публикуем данные формы в Redis канал:', formData);
|
||||||
console.log('📱 SMS код для публикации:', smsCode || '(не передан)');
|
console.log('📱 SMS код для публикации:', smsCode || '(не передан)');
|
||||||
|
|
||||||
|
// Защита: если SMS код не передан, это ошибка (данные не должны отправляться без верификации)
|
||||||
|
if (!smsCode || smsCode.trim() === '') {
|
||||||
|
console.error('❌ ОШИБКА: saveFormData вызван БЕЗ SMS кода! Данные не должны отправляться без верификации.');
|
||||||
|
message.error('Ошибка: данные не могут быть отправлены без SMS-верификации');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Получаем данные из claimPlanData для формирования payload
|
// Получаем данные из claimPlanData для формирования payload
|
||||||
const claimId = claimPlanData?.claim_id || claimPlanData?.propertyName?.meta?.claim_id || '';
|
const claimId = claimPlanData?.claim_id || claimPlanData?.propertyName?.meta?.claim_id || '';
|
||||||
const unifiedId = claimPlanData?.unified_id || claimPlanData?.propertyName?.meta?.unified_id || '';
|
const unifiedId = claimPlanData?.unified_id || claimPlanData?.propertyName?.meta?.unified_id || '';
|
||||||
@@ -194,12 +202,15 @@ export default function StepClaimConfirmation({
|
|||||||
|
|
||||||
if (response.ok) {
|
if (response.ok) {
|
||||||
message.success('Код подтвержден!');
|
message.success('Код подтвержден!');
|
||||||
|
console.log('✅ SMS код успешно проверен:', code);
|
||||||
|
|
||||||
// Закрываем модалку
|
// Закрываем модалку
|
||||||
setSmsModalVisible(false);
|
setSmsModalVisible(false);
|
||||||
setSmsCodeSent(false);
|
setSmsCodeSent(false);
|
||||||
smsForm.resetFields();
|
smsForm.resetFields();
|
||||||
|
|
||||||
// Отправляем данные в Redis канал с SMS кодом
|
// Отправляем данные в Redis канал с SMS кодом
|
||||||
|
console.log('📤 Вызываем saveFormData с SMS кодом:', code);
|
||||||
saveFormData(pendingFormData, code);
|
saveFormData(pendingFormData, code);
|
||||||
|
|
||||||
// Показываем сообщение об успешной отправке
|
// Показываем сообщение об успешной отправке
|
||||||
|
|||||||
Reference in New Issue
Block a user