28667e96bdcc072a7485ff50021f54f555c59ea3
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) 
Hanno Böck Change license from CC0 to...

Hanno Böck authored 2 years ago

5) Written by schokokeks.org Hosting, namely
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

6)   Bernd Wurst <bernd@schokokeks.org>
7)   Hanno Böck <hanno@schokokeks.org>
8) 
Hanno Böck Change license from CC0 to...

Hanno Böck authored 2 years ago

9) This code is published under a 0BSD license.
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

10) 
11) 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.
12) */
13) 
14) require_once('inc/security.php');
15) require_once('inc/icons.php');
16) require_once('class/domain.php');
17) 
18) require_once('domains.php');
19) require_once('domainapi.php');
20) require_role(ROLE_CUSTOMER);
21) use_module('contacts');
22) require_once('contacts.php');
23) 
Hanno Böck Fix not operator (!) spaces

Hanno Böck authored 1 year ago

24) if (!config('http.net-apikey')) {
Bernd Wurst Blende Aktionen aus, wenn d...

Bernd Wurst authored 6 years ago

25)     system_failure("Dieses System ist nicht eingerichtet zum Hinzufügen von Domains");
26) }
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

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

Hanno authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 5 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 5 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

41)     if ($dom->loadByName($request) !== false && !$dom->is_customerdomain()) {
42)         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.');
43)         redirect('adddomain');
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

44)     }
45)     $dom = new Domain();
Bernd Wurst hardening domain input (II)

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Hanno authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Hanno authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

81)     // Hier kommen wir hin, wenn eine externe Domain umgezogen wird, deren Endung wir nicht automatisch anbieten
82)     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.');
83)     redirect('domains');
Bernd Wurst Domain-Transfer und -Regist...

Bernd Wurst authored 6 years ago

84) }
Hanno Böck codingstyle, spaces between...

Hanno Böck authored 1 year ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

88)     set_domain_prereg($dom->id);
89)     $mode = 'reg';
90)     title("Domain registrieren");
Bernd Wurst Domain-Transfer und -Regist...

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

92)     // FIXME: alreadyRegistered bedeutet, dass die Domain bereits über uns verwaltet wird. Das wird dann hier nicht funktionieren
93)     set_domain_pretransfer($dom->id);
94)     $mode = 'transfer';
95)     title("Domain-Transfer vornehmen");
96) }
97) 
98) output("<p>Domainname: <strong>".$dom->fqdn."</strong></p>");
99) 
Hanno Böck codingstyle, spaces between...

Hanno Böck authored 1 year ago

100) $section = 'domains_domains';
Bernd Wurst Erste Vorbereitungen für Do...

Bernd Wurst authored 6 years ago

101) 
102) 
103) output('<h4>Inhaber der Domain</h4>');
104) output('<p>Legen Sie hier einen neuen Inhaber für diese Domain fest.</p>');
105) 
Hanno Fix coding style with php-c...

Hanno authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Hanno authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

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

Bernd Wurst authored 6 years ago

162) <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

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

Bernd Wurst authored 6 years ago

164)     $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

165) }
Hanno Böck codingstyle, spaces between...

Hanno Böck authored 1 year ago

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

Bernd Wurst authored 6 years ago

167) $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>
168) <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

169) 
Bernd Wurst Umstellung von filter_input...

Bernd Wurst authored 5 years ago

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