Alan Adı Kişi Kancaları

1.6k görüntülenme Markdown

Alan adının arkasındaki kişiyi, gizliliği ve transfer kilidini yöneten on bir kanca.

Genel Bakış

Bu üç konu birbirine bağlıdır. Kişi bilgisi kayıt kuruluşunun zorunlu tuttuğu veridir, gizlilik onu dışarıdan saklar, transfer kilidi ise adın izinsiz taşınmasını engeller.

Üçü de sağlayıcıya canlı yazılır. Kayıtlı kişi profilleri ise bizim tarafımızda durur: müşterinin tekrar tekrar aynı bilgiyi girmemesi için saklanan şablonlardır ve kendi kancalarını taşırlar.

Referans

Kişi bilgisi yazımını durdurma

gatedomain.contacts_save
AdminServices dört rol birden

Kişi bilgileri sağlayıcıya yazılmadan önce çalışır.

Parametreler 2
$servicearrayAlan adı hizmet kaydı.
$whoisarrayDört rolün verisi: registrant, administrative, technical, billing. Her rol ad, soyad, e-posta, telefon ve adres alanlarını taşır.
Dönüş 1
stringBoş olmayan bir string işlemi durdurur; metin hata olarak fırlatılır. null ya da boş string akışı sürdürür.
Dinleyici
Hook::add('gate:domain.contacts_save', 10, function ($service, $whois) {
    // Kayit sahibi e-postasi dogrulanmadan degistirilemez.
    $mail = (string) ($whois['registrant']['EMail'] ?? '');
    if ($mail !== '' && !Acme::verified($mail))
        return 'Kayit sahibi e-postasi once dogrulanmalidir.';

    return null;
});

Kişi değişikliğini izleme

actiondomain.contacts_saved
AdminServices yalnız başarıda

Kişi bilgileri sağlayıcıya yazıldıktan sonra çalışır.

Parametreler 2
$servicearrayAlan adı hizmet kaydı.
$whoisarraySağlayıcıya yazılan dört rolün verisi.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.contacts_saved', 10, function ($service, $whois) {
    Audit::whois($service['name'] ?? '', $whois['registrant']['EMail'] ?? '');
});

Gizlilik değişikliğini durdurma

gatedomain.privacy_change
AdminServices açma ve kapama

Gizlilik sağlayıcıda değişmeden önce çalışır.

Parametreler 2
$servicearrayAlan adı hizmet kaydı.
$statusstringİstenen durum: enable ya da disable. İstenen durumdur, yeni durum değil.
Dönüş 1
stringBoş olmayan bir string işlemi durdurur; metin hata olarak fırlatılır. null ya da boş string akışı sürdürür.
Dinleyici
Hook::add('gate:domain.privacy_change', 10, function ($service, $status) {
    // Bazi uzantilar gizliligi hic desteklemez.
    if ($status === 'enable' && Acme::noPrivacyTld($service['name'] ?? ''))
        return 'Bu uzantida gizlilik sunulmuyor.';

    return null;
});

Gizlilik durumunu izleme

actiondomain.privacy_changed
AdminServices yeni durum bool

Gizlilik sağlayıcıda değiştikten sonra çalışır.

Parametreler 2
$servicearrayAlan adı hizmet kaydı.
$enabledboolYeni durum: true gizlilik açık. Kapıdaki metin değerinden farklı olarak burası mantıksal değerdir.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.privacy_changed', 10, function ($service, $enabled) {
    Billing::privacyFee((int) ($service['id'] ?? 0), (bool) $enabled);
});

Transfer kilidi değişikliğini durdurma

gatedomain.transfer_lock_change
AdminServices açma ve kapama

Kilit sağlayıcıda değişmeden önce çalışır.

Parametreler 2
$servicearrayAlan adı hizmet kaydı.
$statusstringİstenen durum: enable kilitle, disable aç.
Dönüş 1
stringBoş olmayan bir string işlemi durdurur; metin hata olarak fırlatılır. null ya da boş string akışı sürdürür.
Dinleyici
Hook::add('gate:domain.transfer_lock_change', 10, function ($service, $status) {
    // Kilit acmak adin baskasina tasinmasinin ilk adimidir.
    if ($status === 'disable' && Acme::recentlyChangedOwner($service))
        return 'Sahip degisikliginden sonra 60 gun kilit acilamaz.';

    return null;
});

Kilit durumunu izleme

actiondomain.transfer_lock_changed
AdminServices yeni durum bool

Kilit sağlayıcıda değiştikten sonra çalışır.

Parametreler 2
$servicearrayAlan adı hizmet kaydı.
$lockedboolYeni durum: true kilitli.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.transfer_lock_changed', 10, function ($service, $locked) {
    if (!$locked) Ops::watch('domain-unlocked', $service['name'] ?? '');
});

Bildirilecek kilit durumunu değiştirme

filterdomain.transfer_lock_status
Hook::runRefs referansla

Kilit durumu ekrana ya da API yanıtına gitmeden önce çalışır.

Parametreler 2
$lockedboolrefBildirilecek durum. Sağlayıcı bilgi vermiyorsa buradan doldurabilirsiniz.
$servicearrayAlan adı hizmet kaydı.
Dönüş 1
voidDeğer referansla değişir; dönüş kullanılmaz.
Dinleyici
Hook::add('filter:domain.transfer_lock_status', 10, function (&$locked, $service) {
    // Saglayici bilmiyorsa kendi kaydimizdan doldur.
    if ($locked === null) $locked = Acme::lockMirror((int) ($service['id'] ?? 0));
});

Transfer kodu isteğini durdurma

gatedomain.epp_code_get
AdminServices kod sahibine gider

Transfer kodu sağlayıcıdan istenmeden önce çalışır.

Parametreler 2
$servicearrayAlan adı hizmet kaydı.
$serviceIdintHizmet kimliği.
Dönüş 1
stringBoş olmayan bir string işlemi durdurur; metin hata olarak fırlatılır. null ya da boş string akışı sürdürür.
Dinleyici
Hook::add('gate:domain.epp_code_get', 10, function ($service, $serviceId) {
    // Transfer kodu adin baskasina gecmesinin anahtaridir.
    if (Acme::openDispute($serviceId)) return 'Acik anlasmazlik varken kod verilmez.';

    return null;
});

Transfer kodu isteğini izleme

actiondomain.epp_code_retrieved
AdminServices değer iki türlü gelir

Kod sağlayıcıdan alındıktan sonra çalışır.

Parametreler 2
$servicearrayAlan adı hizmet kaydı.
$codestring|boolKodun kendisi, ya da true. true demek "kod döndürülmedi, sahibine e-postayla gönderildi" demektir.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.epp_code_retrieved', 10, function ($service, $code) {
    // Kodu ASLA loglamayin: adin anahtaridir.
    Audit::note('epp-requested', $service['name'] ?? '',
        $code === true ? 'e-posta ile gonderildi' : 'ekranda gosterildi');
});

Kişi profili kaydını durdurma

gatedomain.whois_profile_save
ClientDomains bizim tarafımızda

Kayıtlı kişi profili veritabanına yazılmadan önce çalışır. Bu kanca sağlayıcıya gitmez; profil bizim tarafımızda saklanan bir şablondur.

Parametreler 3
$uidintProfil sahibinin hesap kimliği. Hizmet değil hesap gelir.
$informationarrayKişi alanları: FirstName, LastName, Company, EMail, Phone, adres alanları.
$profileIdint0 yeni profil, sıfırdan büyük değer düzenlenen profilin kimliği.
Dönüş 1
stringBoş olmayan bir string işlemi durdurur; metin hata olarak fırlatılır. null ya da boş string akışı sürdürür.
Dinleyici
Hook::add('gate:domain.whois_profile_save', 10,
    function ($uid, $information, $profileId) {
        if ($profileId > 0) return null;                  // duzenlemeye karisma
        if (Acme::profileCount($uid) >= 10) return 'En fazla 10 profil saklanir.';
        return null;
    });

Profil kaydını izleme

actiondomain.whois_profile_saved
ClientDomains kimlik artık dolu

Profil kaydedildikten sonra çalışır.

Parametreler 3
$uidintHesap kimliği.
$profileIdintKaydedilen profilin kimliği. Yeni profilde de artık doludur.
$informationarrayKaydedilen alanlar.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.whois_profile_saved', 10,
    function ($uid, $profileId, $information) {
        Acme::indexProfile($uid, $profileId, $information['EMail'] ?? '');
    });

Tuzaklar

Transfer kodu adın anahtarıdır

Kod eline geçen biri alan adını başka bir sağlayıcıya taşıyabilir. Olay kancasında gelen değeri loglamayın, bildirime koymayın, dış sisteme göndermeyin. Değer true ise kod zaten sahibine e-postayla gitmiştir; elinizde kod yoktur ve olması da gerekmez.

Kapıda metin, olayda mantıksal değer

Gizlilik ve kilit kapıları istenen durumu metin olarak verir (enable/disable); olay kancaları ise gerçekleşen durumu mantıksal değer olarak verir. İkisini karıştırmak sessiz hataya yol açar: bir metin her zaman doğru sayılır.

Profil kancaları hizmet değil hesap taşır

Kayıtlı profil kancalarının ilk parametresi hesap kimliğidir, hizmet kaydı değil. Diğer alan adı kancalarına alışmış bir dinleyici burada $service['name'] okumaya kalkar ve boş bulur. Profil bir alan adına değil, bir hesaba aittir.

Kayıt sahibi değişikliği doğrulama tetikleyebilir

Kayıt sahibinin e-postasını değiştirmek çoğu uzantıda yeniden doğrulama başlatır ve doğrulanmayan ad askıya alınabilir. Kişi yazımına dokunan bir dinleyici bu sonucu bilerek yazılmalıdır; doğrulama durumunun kendi filtresi vardır.

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.