Müşteri Hesabı Kancaları

1.7k görüntülenme Markdown

Müşteri hesabının kendisiyle ilgili 103 kanca: kayıt, giriş, doğrulama, engelleme, alt hesaplar ve satış ortaklığı.

Genel Bakış

Bu alan hesabın kendisini taşır: açılışını, girişini, kimlik doğrulamasını, engellenmesini, silinmesini. Müşterinin gördüğü ekranlar ayrı bir alandadır.

Kancaların bir bölümü yönetim panelinde çalışır, çünkü bir hesabı operatör de değiştirebilir. Bu yüzden bir dinleyici yazarken "bunu kim yaptı" sorusunun cevabı her zaman müşteri değildir.

Referans

Hesabın ömrü

action:user.created Hesap açıldı. Dönüş kullanılmaz.
action:user.updated Hesap bilgisi değişti. Dönüş kullanılmaz.
action:user.status_changed Hesap durumu değişti. Dönüş kullanılmaz.
action:user.account_blocked Hesap engellendi ya da engeli kalktı. Dönüş kullanılmaz.
action:user.deleted Hesap silindi. Dönüş kullanılmaz.
action:user.deleted_dormant Uzun süre kullanılmayan hesap otomatik silindi. Dönüş kullanılmaz.

Giriş ve güvenlik

action:user.logged_in Giriş yapıldı. Dönüş kullanılmaz.
action:user.login_failed Giriş denemesi başarısız. Dönüş kullanılmaz.
action:user.logged_in_as Bir personel müşteri hesabına geçti. Dönüş kullanılmaz.
action:user.password_changed Parola değişti. Dönüş kullanılmaz.
action:user.two_factor_changed İki adımlı doğrulama açıldı ya da kapandı. Dönüş kullanılmaz; bu noktada değişiklik çoktan kaydedildi.
action:user.session_revoked Bir oturum sonlandırıldı. Dönüş kullanılmaz.
action:user.account_switched Müşteri başka bir hesaba geçti. Dönüş kullanılmaz; oturum çoktan yazıldı.

Kapılar

On sekiz kapı, hesapla ilgili her ağır işin önünde durur. Hepsi aynı sözleşmeyi taşır: boş olmayan bir string işlemi durdurur. Boş dönüş — null ya da '' — işleme devam ettirir.

gate:user.create Hesap açma. Dolu dönüş işlemi durdurur; o metin hata mesajı olur.
gate:user.login Giriş — parola doğrulandıktan sonra. Dolu dönüş girişi durdurur; string de ['message' => '…'] dizisi de geçerli.
gate:user.login_as Personelin müşteri hesabına geçmesi. Dolu dönüş işlemi durdurur.
gate:user.delete Hesap silme. Dolu dönüş silmeyi durdurur; silme çağrısı false cevabı verir.
gate:user.block Hesap engelleme. Dolu dönüş işlemi durdurur.
gate:user.add_funds Bakiye yükleme — fatura kesilmeden önce. Dolu dönüş işlemi durdurur; metin müşteriye ulaşır.
gate:user.email_change E-posta değişikliği. Dolu dönüş işlemi durdurur.
gate:user.two_factor_disable İki adımlı doğrulamayı kapatma. Dolu dönüş işlemi durdurur; string de ['message' => '…'] dizisi de geçerli.
gate:user.affiliate_enroll Satış ortaklığına katılım. Dolu dönüş katılımı durdurur; kayıt oluşmaz.
gate:user.affiliate_withdrawal Satış ortaklığı ödeme talebi. Dolu dönüş talebi durdurur.
gate:user.gdpr_process Veri talebinin işlenmesi. Dolu dönüş işlemi durdurur.
gate:user.subuser_invite Alt hesap daveti. Dolu dönüş daveti durdurur; metin müşteriye ulaşır.

Filtreler

Bu sekizi aynı sözleşmeyi taşımaz. Üç ayrı biçim yan yana durur; hangisine dinleyici yazıyorsanız onun dönüşünü okuyun.

filter:user.required_fields Kayıt ve profilde zorunlu alanlar. Dizi döndürün; her dinleyicinin dönüşü mevcut listeye eklenir.
filter:user.login_resolve Girilen kimliğin hangi hesaba çözüleceği. Değer referansla değişir; dönüş kullanılmaz.
filter:user.password_verify Parola doğrulaması. true döndürmek parolayı geçerli sayar; diğer her dönüş kullanılmaz.
filter:user.login_redirect Girişten sonra gidilecek yer. Değer referansla değişir; dönüş kullanılmaz.
filter:user.add_funds_amount Yüklenecek tutar. Değer referansla değişir; dönüş kullanılmaz.
filter:custom_field.save_value Özel alanın kaydedilecek değeri. Değer referansla değişir; dönüş kullanılmaz.
filter:custom_field.load_value Özel alanın okunan değeri. Değer referansla değişir; dönüş kullanılmaz.
filter:user.verification_fields Doğrulama belgesi alanları. Alanlar referansla değişir; dönüş kullanılmaz.

Örnek

coremio/hooks/acme-account.php
// KAPI: kara listedeki ulkeden hesap acilmasin.
Hook::add('gate:user.create', 10, function ($data) {
    $cc = strtoupper((string) ($data['country'] ?? ''));
    if (Acme::blockedCountry($cc)) return 'Bu ulkeden kayit alinmiyor.';
    return null;
});

// OLAY: acilan hesabi pazarlama listesine yaz.
Hook::add('action:user.created', 10, function ($user_id, $data) {
    Crm::subscribe((int) $user_id, (string) ($data['email'] ?? ''));
});

Tuzaklar

Hesabı müşteri de operatör de değiştirebilir

Bu alandaki kancaların çoğu iki yerden çağrılır: müşterinin kendi ekranından ve yönetim panelinden. Bir kapıyı "müşteri şunu yapamasın" diye yazarsanız aynı kural operatörü de durdurur. Kimin yaptığını ayırt etmeniz gerekiyorsa kancanın verdiği aktör bilgisine bakın.

Giriş kapısı parolayı doğrulamaz

Giriş kapısı kimlik doğrulaması geçtikten sonra çalışır. Orada yapacağınız iş parola kontrolü değil, başka bir gerekçeyle durdurmaktır. Parola doğrulamasının kendisine dokunmak istiyorsanız ayrı bir filtre vardır.

Alt hesap ve hesap değiştirme kimliği bulandırır

Bir müşteri başkasının hesabına alt kullanıcı olarak geçebilir. O anda giriş yapan kişi ile üzerinde çalışılan hesap farklıdır. Kancanın verdiği hesap kimliğini kullanın; oturumdan okunan kimlik geçiş sonrası yanlış kişiyi gösterir.

Silme kancası geri alınamaz bir andır

Hesap silindiğinde bağlı kayıtlar da gider. Silme olayı çalıştığında iş çoktan olmuştur; veriye ihtiyacınız varsa kapıda toplayın. Kapı hem daha erkendir hem de gerektiğinde işlemi durdurabilir.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.