Alan Adı Kişi Kancaları
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
Kişi bilgileri sağlayıcıya yazılmadan önce çalışır.
registrant, administrative, technical, billing. Her rol ad, soyad, e-posta, telefon ve adres alanlarını taşır.null ya da boş string akışı sürdürür.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
Kişi bilgileri sağlayıcıya yazıldıktan sonra çalışır.
Hook::add('action:domain.contacts_saved', 10, function ($service, $whois) {
Audit::whois($service['name'] ?? '', $whois['registrant']['EMail'] ?? '');
});Gizlilik değişikliğini durdurma
Gizlilik sağlayıcıda değişmeden önce çalışır.
enable ya da disable. İstenen durumdur, yeni durum değil.null ya da boş string akışı sürdürür.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
Gizlilik sağlayıcıda değiştikten sonra çalışır.
true gizlilik açık. Kapıdaki metin değerinden farklı olarak burası mantıksal değerdir.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
Kilit sağlayıcıda değişmeden önce çalışır.
enable kilitle, disable aç.null ya da boş string akışı sürdürür.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
Kilit sağlayıcıda değiştikten sonra çalışır.
true kilitli.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
Kilit durumu ekrana ya da API yanıtına gitmeden önce çalışır.
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
Transfer kodu sağlayıcıdan istenmeden önce çalışır.
null ya da boş string akışı sürdürür.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
Kod sağlayıcıdan alındıktan sonra çalışır.
true. true demek "kod döndürülmedi, sahibine e-postayla gönderildi" demektir.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
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.
FirstName, LastName, Company, EMail, Phone, adres alanları.0 yeni profil, sıfırdan büyük değer düzenlenen profilin kimliği.null ya da boş string akışı sürdürür.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
Profil kaydedildikten sonra çalışır.
Hook::add('action:domain.whois_profile_saved', 10,
function ($uid, $profileId, $information) {
Acme::indexProfile($uid, $profileId, $information['EMail'] ?? '');
});Tuzaklar
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.
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.
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 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.
İlgili Makaleler
- Alan Adı Edinme Kancaları
- Alan Adı DNS Kancaları
- Alan Adı Kancaları
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.