Kişisel Veri Kancaları

1.6k görüntülenme Markdown

Rıza, dışa aktarma, veri talepleri ve kimlik belgelerinin dokuz kancası.

Genel Bakış

Kişisel verinin dört anı burada: müşteri rıza verir, verisini dışa aktarır, silinmesini ister ve kimlik belgesi gönderir.

İki kancada içerik bilerek geçilmez: dışa aktarımda belge, gönderimde kimlik belgesi. Dinleyicilere yalnız özet verilir, çünkü veriyi ikinci bir yere yaymak amacın kendisine aykırıdır.

Referans

actionuser.gdpr_consent_changed
AccountPrivacy kanıt damgası

Müşteri veri işleme rızasını verdiğinde ya da geri çektiğinde çalışır. Yalnız gerçek geçişte çalışır: aynı değeri yeniden kaydetmek kancayı tetiklemez.

Parametreler 3
$uidintRızası değişen müşteri.
$statusintYeni durum: bir rıza verildi, sıfır geri çekildi. Kanca yalnız geçişte çalıştığı için önceki durum daima bunun tersidir.
$given_atstringKayda yazılan damga. Rıza kanıtının zaman bileşenidir: veritabanından yeniden okumak yerine bu değeri kullanın.
Dönüş 1
voidDönüş yoksayılır. Rıza çoktan yazılmıştır; engellemek için kullanılamaz.
Dinleyici
Hook::add('action:user.gdpr_consent_changed', 10, function ($uid, $status, $given_at) {
    // Kanit damgasini buradan alin, DB'den yeniden okumayin.
    Acme::recordConsent($uid, (bool) $status, $given_at);
});

Veri dışa aktarımını izleme

actionuser.gdpr_exported
AccountPrivacy yalnız özet

Müşteri kendi verisini dışa aktardığında çalışır.

Parametreler 2
$uidintVerisini aktaran müşteri.
$metaarrayAktarımın özeti: biçimi ve boyutu. Belgenin içeriği geçilmez, bilerek: müşterinin bütün kişisel verisini dinleyicilere dağıtmak olurdu.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:user.gdpr_exported', 10, function ($uid, $meta) {
    // Belge icerigi bilerek gecilmez.
    Acme::auditExport($uid, (int) ($meta['size'] ?? 0));
});

Veri talebinin açılmasını izleme

actionuser.gdpr_request_created
AccountPrivacy iki tür

Müşteri silme ya da anonimleştirme talebi açtığında çalışır.

Parametreler 2
$uidintTalebi açan müşteri.
$typestringTalep türü: remove silme, anonymize anonimleştirme.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:user.gdpr_request_created', 10, function ($uid, $type) {
    Acme::openComplianceCase($uid, $type);
});

Veri talebinin iptalini izleme

actionuser.gdpr_request_cancelled
AccountPrivacy vazgeçme

Müşteri açtığı talepten vazgeçtiğinde çalışır.

Parametreler 2
$uidintTalebin sahibi.
$request_idintİptal edilen talebin kimliği.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:user.gdpr_request_cancelled', 10, function ($uid, $request_id) {
    Acme::closeComplianceCase($request_id);
});

Veri talebinin işlenmesini izleme

actionuser.gdpr_processed
AdminUsers geri alınamaz

Bir veri talebi işlendikten sonra çalışır. Silme ve anonimleştirme geri alınamaz: bu noktada veri çoktan gitmiştir.

Parametreler 3
$request_idintTalebin kimliği.
$user_idintİlgili müşteri.
$actionstringİşlenen eylem: silme, anonimleştirme, yok etme ya da iptal.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:user.gdpr_processed', 10, function ($request_id, $user_id, $action) {
    // Veri gitti: kendi kopyanizi da temizleyin.
    if ($action !== 'cancelled') Acme::purgeMirror($user_id);
});

Belge gönderimini izleme

actionuser.documents_submitted
AccountDocuments yalnız başvuru

Müşteri kimlik belgelerini gönderdiğinde çalışır.

Parametreler 2
$uidintBelgeleri gönderen müşteri. Bu akış yalnız kişinin kendisi içindir: alt kullanıcı başkası adına belge gönderemez.
$doc_metaarrayGönderimin özeti. ? Belge içeriği yoktur, yalnız başvuru ve üstveri. Kimlik belgesini dinleyicilere dağıtmamak için bilerek böyle yapılmıştır.
Dönüş 1
voidDönüş yoksayılır. Kayıtlar çoktan yazılmıştır; gönderimi engellemek için kullanılamaz.
Dinleyici
Hook::add('action:user.documents_submitted', 10, function ($uid, $doc_meta) {
    // Belge icerigi yok, yalniz basvuru.
    Acme::queueReview($uid);
});

Belge alan tiplerini genişletme

filteruser.document_field_types
AdminUsers bağla geçer

Belge alanı tanımlanırken sunulan tip listesi kurulduğunda çalışır. Kendi alan tipinizi buraya eklersiniz.

Parametreler 1
$typesarraybağlaTip anahtarı karşılık görünen etiket.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:user.document_field_types', 10, function (&$types) {
    $types['acme-iban'] = 'Acme IBAN dogrulama';
});

Belge alanı tanımını değiştirme

filteruser.document_field_input
AdminUsers bağla geçer

Belge alanı kaydedilmeden önce çalışır. Kendi eklediğiniz tipin ayarlarını burada tamamlarsınız.

Parametreler 2
$valuesarraybağlaYazılacak satır: durumu, tipi, etiketleri, ayarları, kabul edilen uzantılar ve boyut sınırı.
$typestringbağlaAlan tipi. Kancanın kendi tipinizde olup olmadığını anlaması içindir: önce buna bakın.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:user.document_field_input', 10, function (&$values, &$type) {
    // Once kendi tipiniz mi diye bakin.
    if ($type !== 'acme-iban') return;

    $values['max_size'] = 512;
});

Belge kayıtları görünümünü değiştirme

filteruser.document_records_view
AdminUsers kişisel veri

Yönetici bir müşterinin belgelerine baktığında, kayıtlar ekrana gitmeden önce çalışır.

Parametreler 2
$recordsarraybağlaBelge kayıtları: alan adı, değeri, durumu. Kimlik bilgisi taşır: maskeleme yapacaksanız yeri burasıdır.
$user_idintbağlaİncelenen müşteri; okuma amaçlıdır.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:user.document_records_view', 10, function (&$records, &$user_id) {
    // Kimlik numarasini yetkisiz gozden gizleyin.
    if (Acme::canSeeFullId()) return;

    foreach ($records as $i => $r) $records[$i]['field_value'] = Acme::mask($r['field_value'] ?? '');
});

Tuzaklar

İçerik bilerek geçilmez

Dışa aktarım kancası belgenin kendisini, belge kancası kimlik evrakını taşımaz; yalnız özet verir. Bu bir eksiklik değil tasarımdır: veriyi dinleyicilere dağıtmak, korumanın amacına aykırıdır. İçeriğe ihtiyacınız varsa kendi izinli yolunuzdan okuyun.

İşlenen talep geri alınamaz

Silme ve anonimleştirme kancası çalıştığında veri çoktan gitmiştir. Kendi kopyanızı da temizlemeniz gerekir; yoksa müşterinin verisi sizde kalmaya devam eder.

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.