Browse code

Zeige die Optionen zur Prüfung der Inhaberschaft (WIP)

Bernd Wurst authored on28/01/2018 08:11:14
Showing2 changed files
... ...
@@ -151,6 +151,19 @@ function get_auth_dns($domainname, $tld) {
151 151
 }
152 152
 
153 153
 
154
+function own_ns() {
155
+    $auth = dns_get_record(config('masterdomain'), DNS_NS);
156
+    $own_ns = array();
157
+    foreach ($auth as $ns) {
158
+        $own_ns[] = $ns['target'];
159
+    }
160
+
161
+    return $own_ns;  
162
+}
163
+
164
+
165
+
166
+
154 167
 function has_own_ns($domainname, $tld)
155 168
 {
156 169
   $nsdata = get_auth_dns($domainname, $tld);
... ...
@@ -159,7 +172,7 @@ function has_own_ns($domainname, $tld)
159 172
       $NS=$host;
160 173
   }
161 174
   DEBUG($NS);
162
-  if (in_array($NS, array('ns1.schokokeks-dns.de.', 'ns2.schokokeks-dns.de.', 'ns3.schokokeks-dns.de.'))) {
175
+  if (in_array($NS, own_ns())) {
163 176
       DEBUG('Domain hat unsere DNS-Server!');
164 177
       return true;
165 178
   }
... ...
@@ -238,6 +251,7 @@ function get_domain_offer($domainname)
238 251
 function insert_domain_external($domain, $dns)
239 252
 {
240 253
     $cid = (int) $_SESSION['customerinfo']['customerno'];
254
+    $uid = (int) $_SESSION['userinfo']['uid'];
241 255
     if (strpos($domain, ' ') !== false) {
242 256
         system_failure("Ungültige Zeichen im Domainname");
243 257
     }
... ...
@@ -247,8 +261,8 @@ function insert_domain_external($domain, $dns)
247 261
     }
248 262
     $domainname = $parts[0];
249 263
     $tld = $parts[1];
250
-    db_query("INSERT INTO kundendaten.domains (kunde, domainname, tld, billing, provider, dns, mailserver_lock) VALUES 
251
-        (?, ?, ?, 'external', 'other', 0, 1)", array($cid, $domainname, $tld));
264
+    db_query("INSERT INTO kundendaten.domains (kunde, useraccount, domainname, tld, billing, provider, dns, mailserver_lock) VALUES 
265
+        (?, ?, ?, ?, 'external', 'other', 0, 1)", array($cid, $uid, $domainname, $tld));
252 266
     $id = db_insert_id();
253 267
     if ($dns) {
254 268
         db_query("UPDATE kundendaten.domains SET dns=1 WHERE id=?", array($id));
... ...
@@ -51,15 +51,35 @@ if ($TXT == $dom->secret) {
51 51
 }
52 52
 
53 53
 
54
-title("Bestätigung der Domain {$dom->fqdn}");
54
+title("Externe Domain {$dom->fqdn}");
55 55
 $section = 'domains_domains';
56
-output('<p>Bitte wenden Sie eine der unten genannten Methoden an um die Domain-Inhaberschaft zu bestätigen. Erst nach diesem Schritt können Sie diese Domain bei uns als Mail-Domain nutzen.</p>');
56
+output('<p>Die Domain '.$dom->fqdn.' ist momentan extern registriert und verwendet auch externe DNS-Server. Um Missbrauch zu verhindern, kann diese Domain daher bislang nicht als E-Mail-Domain benutzt werden. Um die Domain als E-Mail-Domain zu nutzen, können Sie diese zu uns umziehen, beim Registrar die DNS-Server von '.config('company_name').' einsetzen oder die Inhaberschaft bestätigen durch das Setzen eines passenden DNS-Records.</p>');
57
+output('<h4>Domain-Transfer ausführen</h4>
58
+<p></p>'); //FIXME
59
+if ($dom->dns == 1 || have_module('dns')) {
60
+    output('<h4>DNS-Server von '.config('company_name').' nutzen</h4>');
61
+    if ($dom->dns == 0) {
62
+        output('<p>Bisher ist der lokale DNS-Server ausgeschaltet. Besuchen Sie die DNS-Einstellungen um dies zu ändern.</p>');
63
+        output('<p>'.internal_link('../dns/dns', 'DNS-Einstellungen aufrufen').'</p>');
64
+    } else {
65
+        $own_ns = own_ns();
66
+        asort($own_ns);
67
+        output('<p>Tragen Sie bitte folgende DNS-Server als zuständig für diese Domain ein:</p>
68
+                <ul>');
69
+        foreach ($own_ns as $ns) {
70
+            output('<li>'.$ns.'</li>');
71
+        }
72
+        output('</ul>');
73
+    }
74
+}
75
+output('<h4>Inhaberschaft bestätigen</h4>');
76
+output('<p>Um eine extern registrierte Domain hier in vollem Umfang zu nutzen, müssen Sie die Inhaberschaft bestätigen. Erst nach diesem Schritt können Sie diese Domain bei uns als Mail-Domain nutzen.</p>');
57 77
 output('<p>Die Zeichenkette zur Bestätigung lautet <strong>'.$dom->secret.'</strong>.</p>');
58 78
 output('<p>Richten Sie bitte auf dem zuständigen DNS-Server einen DNS-Record vom Typ TXT unter dem Hostname <strong>_schokokeks.'.$dom->fqdn.'</strong> ein und hinterlegen Sie dort diese Zeichenkette als Inhalt:</p>
59 79
 <p><code>_schokokeks.'.$dom->fqdn.'.    IN TXT "'.$dom->secret.'"</code></p>
60 80
 <p>Beachten Sie, dass Aktualisierungen am DNS-Server i.d.R. mit einigen Minuten verzögerung abgerufen werden können.</p>');
61 81
 #output('<p>Sie können diese entweder als DNS-Record vom Typ TXT unter dem Hostname <strong>_schokokeks.'.$dom->fqdn.'</strong> einrichten oder auf dem zuständigen Webserver eine Datei hinterlegen mit dem Code als Inhalt und der Abruf-URL <strong>http://'.$dom->fqdn.'/'.$dom->secret.'.txt</strong></p>');
62 82
 output('<p>'.internal_link('', other_icon('refresh.png').' Diese Seite neu laden um den DNS-Record zu prüfen', "id={$dom->id}&ts=".time()).'</p>');
63
-
83
+output('<p>Nach erfolgreicher Überprüfung kann der DNS-Eintrag wieder entfernt werden.</p>');
64 84
 
65 85