Hesap Kısıtlama Kancaları

1.6k görüntülenme Markdown

Kara liste, toplu askıya alma, atıl hesaplar ve toplu iletilerin altı kancası.

Genel Bakış

Bir hesabın hareket alanını daraltan işlemler burada: kara listeye alma, bütün hizmetleri askıya alma ya da iptal etme, uzun süre kullanılmayan hesabı silme.

Hepsi geniş etkili ve geri alması zordur. Kapılar bu yüzden değerlidir: yanlış bir tıklamayı durdurabilecek tek nokta onlardır.

Referans

Kara listeye almayı durdurma

gateuser.blacklist_add
AdminUsers yazımdan önce

Bir müşteri kara listeye alınmadan önce çalışır.

Parametreler 3
$user_idintKara listeye alınacak müşteri.
$reasonstringGerekçe kodu: ödeme sahtekârlığı, ters ibraz, kötüye kullanım, istenmeyen ileti, koşul ihlali, yanlış bilgi ya da diğer.
$restrictionsarrayUygulanacak kısıtlar: yeni sipariş, yenileme, destek talebi ve hizmet askıya alma.
Dönüş 1
string|nullBoş olmayan bir metin işlemi engeller ve hata olarak gösterilir. Boş dönüş devam ettirir.
Dinleyici
Hook::add('gate:user.blacklist_add', 10, function ($user_id, $reason, $restrictions) {
    // Kurumsal musteride ikinci onay isteyin.
    if (Acme::isEnterprise($user_id)) return 'Kurumsal hesap icin yonetici onayi gerekir.';

    return null;
});

Kara liste değişimini izleme

actionuser.blacklist_changed
AdminUsers üç durum

Bir müşterinin kara liste durumu değiştikten sonra çalışır.

Parametreler 4
$user_idintEtkilenen müşteri.
$statusstringNe oldu: add, add-2 ya da remove. İki farklı ekleme değeri vardır; yalnız birine bakan bir dinleyici diğerini kaçırır.
$reasonstringGerekçe.
$admin_idintİşlemi yapan yönetici.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:user.blacklist_changed', 10,
    function ($user_id, $status, $reason, $admin_id) {
        // Iki ayri ekleme degeri var.
        if ($status !== 'remove') Acme::flagRisk($user_id, $reason);
    });

Toplu hizmet iptalini durdurma

gateuser.services_bulk_cancel
AdminUsers hepsi birden

Bir müşterinin bütün hizmetleri iptal edilmeden önce çalışır. Tek tıkla verilen, geri alması güç bir karardır.

Parametreler 1
$user_idintHizmetleri iptal edilecek müşteri.
Dönüş 1
string|nullBoş olmayan bir metin işlemi engeller ve hata olarak gösterilir. Boş dönüş devam ettirir.
Dinleyici
Hook::add('gate:user.services_bulk_cancel', 10, function ($user_id) {
    // Tek tikla butun hizmetler gider.
    if (Acme::hasActiveContract($user_id)) return 'Sozlesmesi suren hesabin hizmetleri toplu iptal edilemez.';

    return null;
});

Toplu askıya almayı izleme

actionuser.services_bulk_suspended
AdminUsers hepsi birden

Bir müşterinin bütün hizmetleri askıya alındıktan sonra çalışır.

Parametreler 1
$user_idintHizmetleri askıya alınan müşteri.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:user.services_bulk_suspended', 10, function ($user_id) {
    Acme::notifyAccountFrozen($user_id);
});

Atıl hesabın silinmesini durdurma

gateuser.delete_dormant
cronjobs hesap başına

Uzun süre kullanılmayan bir hesap silinmeden önce çalışır. Kanca aday hesap başına çalışır: bir turda yüzlerce kez çağrılabilir.

Parametreler 2
$userIdintSilinme adayı hesap.
$uarrayAdayın satırı: adı, adresi ve kaç gündür atıl olduğu.
Dönüş 1
string|nullBoş olmayan bir metin bu hesabı atlatır ve gerekçe sonuç raporuna geçer. Diğer kapıların aksine bir hata fırlatılmaz: tur kalan adaylarla devam eder.
Dinleyici
Hook::add('gate:user.delete_dormant', 10, function ($userId, $u) {
    // Hesap basina calisir: hafif tutun.
    if (Acme::hasRetentionHold($userId)) return 'saklama yukumlulugu var';

    return null;
});

Toplu ileti alıcılarını değiştirme

filteruser.bulk_recipients
AdminUsers sayı ve liste birlikte

Toplu e-posta ya da kısa mesaj için alıcı havuzu kurulduktan sonra çalışır.

Parametreler 4
$resultarraybağlaAlıcı havuzu: sayı ve kişiler. ? İkisini tutarlı tutun: listeden kişi çıkarıp sayıyı güncellememek, ekranda yanlış bir alıcı sayısı gösterir.
$dbTypestringKime gönderiliyor: müşteriler ya da personel.
$notifTypestringHangi kanal: e-posta ya da kısa mesaj.
$filtersarrayUygulanan filtreler.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:user.bulk_recipients', 10,
    function (&$result, $dbType, $notifType, $filters) {
        // SAYI ile LISTE tutarli kalmali.
        $result['contacts'] = Acme::dropOptedOut($result['contacts'] ?? []);
        $result['count']    = count($result['contacts']);
    });

Tuzaklar

Kara listede iki ayrı ekleme değeri vardır

Durum alanı üç değer taşır ve ikisi eklemedir. Yalnız birine bakan bir dinleyici, ikinci yolla kara listeye alınan müşteriyi kaçırır. Kaldırmayı sınayıp gerisini ekleme saymak daha güvenlidir.

Alıcı listesi ile sayıyı birlikte güncelleyin

Toplu alıcı filtresi hem kişileri hem sayıyı taşır. Listeden kişi çıkarıp sayıyı olduğu gibi bırakmak, yöneticiye yanlış bir alıcı sayısı gösterir ve gönderim kararını bozar.

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.