Proje: Okul Platform · Hub: Okul Platform — Domain

Kural

KVKK onayı ve pazarlama izni kullanıcıdan sadece bir kez alınır. Zaten verilmişse tekrar gösterilmez.

Kontrol Metotları

App\Service\UserService:

  • hasAuthUserConsentedToKvkk() — aktif b2c_kvkk_consent agreement’ı imzalandıysa true; fallback: user_details.kvkk === '1'. 30 günlük versiyonlu cache.
  • hasAuthUserConsentedToMarketing()user_details.notification === Config::USER_NOTIFICATION_ALL_ID ise true. Cache yok, anlık.

Form Davranışı

Tüm teklif/iletişim formlarında (desktop + mobile, ~15 view):

@if(!\App\Service\UserService::hasAuthUserConsentedToKvkk())
    {{-- KVKK checkbox --}}
@endif
 
@if(!\App\Service\UserService::hasAuthUserConsentedToMarketing())
    {{-- Pazarlama izni checkbox --}}
@endif

Lead Pool İstisnası

LeadPoolFormService::validate() KVKK’yı required|in:1,on,true ile doğrular (SchoolOfferService gibi hasAuthUserConsentedToKvkk() kontrolü yok). Bu yüzden lead pool formlarında zaten onaylamış kullanıcılar için hidden input eklenir:

@if(\App\Service\UserService::hasAuthUserConsentedToKvkk())
    <input type="hidden" name="kvkk_consent" value="1">
@else
    {{-- visible checkbox --}}
@endif

Kayıt Formu

register.blade.php (frontend + mobile) her zaman KVKK gösterir — kayıt formunda kullanıcı henüz hesabı olmadığından hasAuthUserConsentedToKvkk() zaten false döner.

Veri Depolama

  • user_agreement_text_signs tablosu — her consent kaydı IP ve UA ile
  • Model tipler: AgreementText::TYPE_B2C_KVKK_CONSENT, AgreementText::TYPE_B2C_MARKETING_CONSENT