c42127d3cab5c78430e578a07038f54f8cdff459
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

1) <?php
2) /*
3) This file belongs to the Webinterface of schokokeks.org Hosting
4) 
5) Written 2008-2018 by schokokeks.org Hosting, namely
6)   Bernd Wurst <bernd@schokokeks.org>
7)   Hanno Böck <hanno@schokokeks.org>
8) 
9) To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
10) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

11) You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

12) http://creativecommons.org/publicdomain/zero/1.0/
13) 
14) Nevertheless, in case you use a significant part of this code, we ask (but not require, see the license) that you keep the authors' names in place and return your changes to the public. We would be especially happy if you tell us what you're going to do with this code.
15) */
16) 
17) require_once('inc/security.php');
18) require_once('inc/icons.php');
19) require_once('class/domain.php');
20) 
21) require_once('domains.php');
22) require_once('domainapi.php');
23) require_role(ROLE_CUSTOMER);
24) use_module('contacts');
25) require_once('contacts.php');
26) 
Bernd Wurst Blende Aktionen aus, wenn d...

Bernd Wurst authored 6 years ago

27) if (! config('http.net-apikey')) {
28)     system_failure("Dieses System ist nicht eingerichtet zum Hinzufügen von Domains");
29) }
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

30) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

31) $dom = null;
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

32) if (isset($_REQUEST['domain'])) {
Bernd Wurst hardening domain input (II)

Bernd Wurst authored 6 years ago

33)     $request = idn_to_utf8($_REQUEST['domain'], 0, INTL_IDNA_VARIANT_UTS46);
34)     if (substr($request, 0, 4) == 'www.') {
35)         $request = str_replace('www.', '', $request);
36)     }
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

37)     verify_input_hostname_utf8($request);
Bernd Wurst hardening domain input (II)

Bernd Wurst authored 6 years ago

38)     $punycode = idn_to_ascii($request, 0, INTL_IDNA_VARIANT_UTS46);
39)     if (!check_domain($punycode)) {
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

40)         warning("Ungültiger Domainname: ".filter_output_html($request));
Bernd Wurst Beta-Hinweis eingefügt

Bernd Wurst authored 6 years ago

41)         redirect('adddomain');
Bernd Wurst hardening domain input (II)

Bernd Wurst authored 6 years ago

42)     }
43)     $dom = new Domain();
Bernd Wurst Ermögliche das Umziehen von...

Bernd Wurst authored 6 years ago

44)     if ($dom->loadByName($request) !== false && !$dom->is_customerdomain()) {
45)         warning('Diese Domain ist bei einem anderen Kunden von uns in Nutzung. Kontaktieren Sie den Support, wenn Sie eine Domain in ein anderes Kundenkonto übertragen möchten.');
46)         redirect('adddomain');
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

47)     }
48)     $dom = new Domain();
Bernd Wurst hardening domain input (II)

Bernd Wurst authored 6 years ago

49)     if ($dom->loadByName($request) === false) {
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

50)         // Eintragen mit DNS und Mail
Bernd Wurst hardening domain input (II)

Bernd Wurst authored 6 years ago

51)         $id = insert_domain_external($request, true, true);
52)         $dom->loadByName($request);
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

53)     }
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

54)     $dom->ensure_customerdomain();
55)     if ($dom->provider == 'terions') {
56)         system_failure("Diese Domain ist bereits auf Ihr Kundenkonto registriert.");
57)     }
Hanno remove whitespace in empty...

Hanno authored 6 years ago

58) 
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

59)     // An diesem Punkt ist die Domain eingetragen als extern und ggf. mit Mailserver-Lock
60)     // Bei der Reg-Bestätigung wird das Lock entfernt und die Daten entsprechend gesetzt, inklusive Preise.
61) 
Bernd Wurst Domain-Transfer und -Regist...

Bernd Wurst authored 6 years ago

62)     $_SESSION['domains_domainreg_owner'] = $dom->owner;
63)     $_SESSION['domains_domainreg_admin_c'] = $dom->admin_c;
Bernd Wurst hardening domain input (II)

Bernd Wurst authored 6 years ago

64)     $_SESSION['domains_domainreg_domainname'] = $request;
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

65)     $_SESSION['domains_domainreg_detach'] = 0;
66) } elseif (isset($_SESSION['domains_domainreg_domainname'])) {
67)     $domain = $_SESSION['domains_domainreg_domainname'];
68)     $dom = new Domain($domain);
69)     $dom->ensure_customerdomain();
70) }
71) 
72) if (!$dom) {
73)     system_failure("Keine Domain");
74) }
75) 
Bernd Wurst Lasse die API bestimmen was...

Bernd Wurst authored 6 years ago

76) $avail = api_domain_available($dom->fqdn);
77) $tld = $avail['extension'];
78) if ($tld != $dom->tld) {
79)     system_failure("Fehler in den Daten! Bitte Support informieren");
80) }
81) 
82) $pricedata = get_domain_offer($tld);
Bernd Wurst Domain-Transfer und -Regist...

Bernd Wurst authored 6 years ago

83) if (!$pricedata) {
Bernd Wurst Ermögliche das Umziehen von...

Bernd Wurst authored 6 years ago

84)     // Hier kommen wir hin, wenn eine externe Domain umgezogen wird, deren Endung wir nicht automatisch anbieten
85)     warning('Die Domain '.$dom->fqdn.' kann nicht über dieses Webinterface umgezogen werden weil bei dieser Endung Besonderheiten zu beachten sind. Bitte kontaktieren Sie den Support.');
86)     redirect('domains');
Bernd Wurst Domain-Transfer und -Regist...

Bernd Wurst authored 6 years ago

87) }
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

88) $mode=null;
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

89) 
Bernd Wurst Domain-Transfer und -Regist...

Bernd Wurst authored 6 years ago

90) if ($avail['status'] == 'available') {
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

91)     set_domain_prereg($dom->id);
92)     $mode = 'reg';
93)     title("Domain registrieren");
Bernd Wurst Domain-Transfer und -Regist...

Bernd Wurst authored 6 years ago

94) } elseif ($avail['status'] == 'registered' || $avail['status'] == 'alreadyRegistered') {
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

95)     // FIXME: alreadyRegistered bedeutet, dass die Domain bereits über uns verwaltet wird. Das wird dann hier nicht funktionieren
96)     set_domain_pretransfer($dom->id);
97)     $mode = 'transfer';
98)     title("Domain-Transfer vornehmen");
99) }
100) 
101) output("<p>Domainname: <strong>".$dom->fqdn."</strong></p>");
102) 
103) $section='domains_domains';
104) 
105) 
106) output('<h4>Inhaber der Domain</h4>');
107) output('<p>Legen Sie hier einen neuen Inhaber für diese Domain fest.</p>');
108) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

109) if ($_SESSION['domains_domainreg_owner'] === null) {
Bernd Wurst Setze wenn möglich einen si...

Bernd Wurst authored 6 years ago

110)     $kundenkontakte = get_kundenkontakte();
111)     $customer = get_contact($kundenkontakte['kunde']);
112)     if (possible_domainholder($customer)) {
113)         $_SESSION['domains_domainreg_owner'] = $kundenkontakte['kunde'];
114)     } else {
115)         $list = array_keys(possible_domainholders());
116)         if (count($list) > 0) {
117)             $_SESSION['domains_domainreg_owner'] = $list[0];
118)         }
119)     }
120) }
121) 
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

122) if ($_SESSION['domains_domainreg_detach'] == 0) {
123)     $_SESSION['domains_domainreg_admin_c'] = $_SESSION['domains_domainreg_owner'];
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

124) }
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

125) 
126) // Behandlung für "keinen extra Verwalter"
127) if (isset($_GET['admin_c']) && $_GET['admin_c'] == 'none') {
128)     $_SESSION['domains_domainreg_admin_c'] = $_SESSION['domains_domainreg_owner'];
129)     $_SESSION['domains_domainreg_detach'] = 0;
130) }
131) 
132) if ($_SESSION['domains_domainreg_owner']) {
133)     $owner = get_contact($_SESSION['domains_domainreg_owner']);
134) 
135)     $function = 'Inhaber';
136)     if ($_SESSION['domains_domainreg_admin_c'] == $_SESSION['domains_domainreg_owner']) {
137)         $function .= ' und Verwalter';
138)     }
139)     output('<p><strong>'.$function.':</strong></p>'.display_contact($owner, ''));
140) } else {
141)     output('<p><strong>Inhaber und Verwalter:</strong></p><p><em>Bisher kein Inhaber ausgewählt</em>');
142) }
Bernd Wurst Setze wenn möglich einen si...

Bernd Wurst authored 6 years ago

143) addnew('choose', 'Inhaber wählen', "type=owner&backto=domainreg");
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

144) if ($_SESSION['domains_domainreg_admin_c'] != $_SESSION['domains_domainreg_owner']) {
145)     $admin_c = get_contact($_SESSION['domains_domainreg_admin_c']);
146)     output('<p><strong>Verwalter:</strong></p>'.display_contact($admin_c, ''));
Bernd Wurst Setze wenn möglich einen si...

Bernd Wurst authored 6 years ago

147)     addnew('choose', 'Anderen Verwalter wählen', "type=admin_c&backto=domainreg");
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

148)     output('<p class="delete">'.internal_link('', 'Keinen separaten Verwalter festlegen', 'admin_c=none').'</p>');
149) } else {
150)     addnew('choose', 'Einen separaten Verwalter wählen', "type=admin_c&detach=1&backto=domainreg");
151) }
152) 
153) 
Bernd Wurst Domain-Transfer und -Regist...

Bernd Wurst authored 6 years ago

154) $form = '';
155) if ($mode == 'transfer') {
156)     $form .= '<h4>Auth-Info-Code für den Transfer</h4>';
157)     $form .= '<p><label for="authinfo">Auth-Info-Code für den Domainumzug:</label> <input type="text" name="authinfo" id="authinfo"></p>';
158) }
159) 
160) $form .= '<h4>Kosten</h4>';
161) 
162) $form .= '<p>Für die Verwaltung der Domain fallen folgende Kosten an:</p>
163) <table>
164) <tr><td>Domainname:</td><td><strong>'.$dom->fqdn.'</strong></td></tr>
Bernd Wurst Fehlermeldung bei nicht aut...

Bernd Wurst authored 6 years ago

165) <tr><td>Jahresgebühr:</td><td style="text-align: right;">'.$pricedata['gebuehr'].' €'.footnote('Preis für Deutschland, inkl. 19% USt. Preise für andere Länder entsprechend. Bitte beim Support anfragen').'</td></tr>';
Bernd Wurst Domain-Transfer und -Regist...

Bernd Wurst authored 6 years ago

166) if ($pricedata['setup']) {
Bernd Wurst Fehlermeldung bei nicht aut...

Bernd Wurst authored 6 years ago

167)     $form .= '<tr><td>Setup-Gebühr (einmalig):</td><td style="text-align: right;">'.$pricedata['setup'].' €'.footnote('Preis für Deutschland, inkl. 19% USt. Preise für andere Länder entsprechend. Bitte beim Support anfragen').'</td></tr>';
Bernd Wurst Domain-Transfer und -Regist...

Bernd Wurst authored 6 years ago

168) }
169) $form .='</table>';
Bernd Wurst hardening domain input (II)

Bernd Wurst authored 6 years ago

170) $form .= '<p>Mit dieser Bestellung geben Sie eine verbindliche Willenserklärung ab, diese Domain registrieren zu wollen. Sie treten in ein Vertragsverhältnis zu '.config('company_name').' unter dem Vorbehalt, dass die Domain registriert werden kann. Die Hoheit über die Vergabe der Domains hat die jeweils zuständige Registrierungsstelle. Es gelten die Vergabe-Bedingungen der jeweils zuständigen Registrierungsstelle.</p>
171) <p>Der Domain-Vertrag beginnt mit Zuteilung der Domain durch die Regisrierungsstelle und läuft jeweils '.$pricedata['interval'].' Monate. Er verlängert sich stets automatisch um weitere '.$pricedata['interval'].' Monate, wenn nicht bis 14 Tage vor Ende der Laufzeit eine Kündigung vorliegt.</p>';
Bernd Wurst Domain-Transfer und -Regist...

Bernd Wurst authored 6 years ago

172) 
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

173) $form .= '<p><input type="hidden" name="domain" value="'.filter_output_html($dom->fqdn).'">