📋 Remember Me - Settings Management Entegrasyonu

📅 Tarih: 2025-11-30 18:30 | 🎯 Tenant: Tüm Tenant'lar | 👤 Talep: Remember me süresini Settings Management'ten yönetilebilir yap

🎯 Hedef

Ana Amaç: Her tenant'ın kendi "Remember Me" süresini Settings Management üzerinden ayarlayabilmesini sağlamak.

Neden Gerekli:

  • Tenant 2 (İxtif) → 30 gün remember me isteyebilir
  • Tenant 1001 (Muzibu) → 7 gün yeterli olabilir
  • Gelecekte eklenecek tenant'lar → Kendi ihtiyaçlarına göre ayarlayabilsin

🔍 Mevcut Durum Analizi

✅ Tamamlanan İşlemler

1. .env Ayarı Eklendi:

  • REMEMBER_ME_DURATION=43200 (30 gün)
  • Ancak bu global bir ayar, tenant-aware değil

2. Event Listener Oluşturuldu:

  • app/Listeners/SetRememberMeCookieDuration.php
  • Şu anda setting('remember_me_duration', 43200) ile çekiyor
  • EventServiceProvider'da Login event'ine bağlandı

⚠️ Sorun

Settings tablosunda remember_me_duration kaydı henüz yok!

Listener çalıştığında setting() helper NULL döndürecek ve fallback 43200 kullanılacak.

📝 Yapılacaklar Listesi

1. Settings Group Kontrolü Yüksek Öncelik

Ne Yapılacak:

  • Central database'de settings_groups tablosunu kontrol et
  • "Security" veya "Authentication" grubu var mı?
  • Yoksa yeni grup oluşturulacak mı, yoksa mevcut bir gruba eklenecek mi?

Beklenen Sonuç: Hangi group_id'ye ekleneceği netleşir

2. Settings Kaydı Oluşturma Yüksek Öncelik

Ne Yapılacak:

  • Central database settings tablosuna yeni kayıt ekle
  • key: remember_me_duration
  • label: "Beni Hatırla Süresi (Dakika)"
  • type: number (sayısal input)
  • default_value: 43200 (30 gün)
  • help_text: "Kullanıcılar 'Beni Hatırla' işaretlediğinde ne kadar süre oturum açık kalsın? (dakika cinsinden)"
  • is_system: 1 (sistem ayarı)
  • is_required: 1

Beklenen Sonuç: Settings tablosunda kayıt oluşur, tüm tenant'lar bu ayarı görebilir

3. Tenant'lara Özel Değer Girişi Orta Öncelik

Ne Yapılacak:

  • Tenant 2 (İxtif) → settings_values tablosuna değer ekle: 43200 (30 gün)
  • Tenant 1001 (Muzibu) → settings_values tablosuna değer ekle: 10080 (7 gün)
  • Diğer tenant'lar → Değer eklenmediği sürece default_value kullanılır

Beklenen Sonuç: Her tenant kendi ihtiyacına göre ayar yapabilir

4. Cache Temizleme Orta Öncelik

Ne Yapılacak:

  • php artisan cache:clear
  • php artisan config:clear
  • Yeni settings kaydının cache'e alınmasını sağla

Beklenen Sonuç: Listener setting('remember_me_duration') çağrısında doğru değeri alır

5. Test & Doğrulama Yüksek Öncelik

Ne Yapılacak:

  • Tenant 2'de login ol, "Beni Hatırla" işaretle
  • Cookie'nin expire değerini kontrol et (30 gün olmalı)
  • Tenant 1001'de login ol, "Beni Hatırla" işaretle
  • Cookie'nin expire değerini kontrol et (7 gün olmalı)

Beklenen Sonuç: Her tenant'ta farklı süre çalışıyor

🚨 Dikkat Edilmesi Gerekenler

1. Settings Group Seçimi

Yeni grup oluşturulacaksa mutlaka kullanıcı onayı al! Mevcut bir gruba eklenmesi daha iyi olabilir.

2. Migration Gerekliliği

Settings kaydı manuel INSERT ile mi yapılacak yoksa migration ile mi? Kullanıcıya sor!

3. Tenant Isolation

settings tablosu Central'da, settings_values tablosu her tenant'ın kendi database'inde. Bu yapıya dikkat et!

💡 Önerilen Yaklaşım

Adım 1: Settings group'ları listele, kullanıcıya göster

Adım 2: Kullanıcıdan onay al: Hangi gruba eklensin?

Adım 3: Settings kaydını ekle (manuel INSERT veya migration)

Adım 4: Her tenant için settings_values ekle

Adım 5: Cache temizle ve test et