Bernd Wurst commited on 2018-01-30 18:32:15
Zeige 5 geänderte Dateien mit 46 Einfügungen und 1 Löschungen.
... | ... |
@@ -1,3 +1,5 @@ |
1 |
+var old_email; |
|
2 |
+ |
|
1 | 3 |
function populate_number(result) { |
2 | 4 |
var field = result.field; |
3 | 5 |
if (result.valid == 1) { |
... | ... |
@@ -25,8 +27,23 @@ function check_number( field ) |
25 | 27 |
} |
26 | 28 |
} |
27 | 29 |
|
30 |
+function email_change() { |
|
31 |
+ var new_email = $('#email').val(); |
|
32 |
+ if (new_email != old_email) { |
|
33 |
+ $('#designated-row').show(); |
|
34 |
+ } else { |
|
35 |
+ $('#designated-row').hide(); |
|
36 |
+ } |
|
37 |
+} |
|
38 |
+ |
|
28 | 39 |
$(function() { |
29 | 40 |
$('#telefon').on("change paste", check_number("telefon") ); |
30 | 41 |
$('#mobile').on("change paste", check_number("mobile") ); |
31 | 42 |
$('#telefax').on("change paste", check_number("telefax") ); |
43 |
+ |
|
44 |
+ if ($('#designated-row')) { |
|
45 |
+ $('#designated-row').hide(); |
|
46 |
+ $('#email').on("change paste", email_change); |
|
47 |
+ old_email = $('#email').val(); |
|
48 |
+ } |
|
32 | 49 |
}); |
... | ... |
@@ -40,6 +40,7 @@ if (! $new) { |
40 | 40 |
$c = get_contact($_REQUEST['copy']); |
41 | 41 |
$c['nic_handle'] = NULL; |
42 | 42 |
} |
43 |
+$domains = domainlist_by_contact($c); |
|
43 | 44 |
|
44 | 45 |
$readonly = ''; |
45 | 46 |
// Wenn das Handle beim NIC angemeldet ist, kann man Name und Land nicht mehr ändern |
... | ... |
@@ -74,6 +75,11 @@ $odd = !$odd; |
74 | 75 |
$html .= '<tr class="'.($odd == true ? 'odd' : 'even').'"><td><label for="telefon">Telefax:</label></td><td><input type="text" name="telefax" id="telefax" value="'.$c['fax'].'"><span id="telefax_feedback"></span></td></tr>'; |
75 | 76 |
$odd = !$odd; |
76 | 77 |
|
78 |
+if ($domains) { |
|
79 |
+ $html .= '<tr class="'.($odd == true ? 'odd' : 'even').'" id="designated-row"><td><label for="designated"><strong>Inhaberwechsel:</strong></label></td><td><input type="checkbox" name="designated" id="designated" value="yes"><label for="designated">Die Änderung der E-Mail-Adresse bewirkt rechtlich einen Inhaberwechsel. Ich bestätige, dass mir eine explizite Zustimmung des alten und neuen Inhabers für diese Änderung vorliegt. Eine Speicherung der Änderungen ist nur mit dieser Zustimmung möglich.</label></td></tr>'; |
|
80 |
+ $odd = !$odd; |
|
81 |
+} |
|
82 |
+ |
|
77 | 83 |
$html .= '<tr class="even"><td> </td><td><input type="submit" value="Speichern" /></td></tr>'; |
78 | 84 |
$html .= '</table>'; |
79 | 85 |
|
... | ... |
@@ -89,5 +96,14 @@ if (isset($_REQUEST['domainholder']) && $_REQUEST['domainholder'] == 1) { |
89 | 96 |
|
90 | 97 |
output(html_form('contacts_edit', 'save', 'id='.$_REQUEST['id']."&back=".urlencode($back).$domainholder, $html)); |
91 | 98 |
|
99 |
+if ($domains) { |
|
100 |
+ output('<p>Folgende Domains sind von dieser Änderung betroffen:</p> |
|
101 |
+ <ul>'); |
|
102 |
+ foreach ($domains as $dom) { |
|
103 |
+ output('<li>'.$dom->fqdn.'</li>'); |
|
104 |
+ } |
|
105 |
+ output('</ul>'); |
|
106 |
+} |
|
107 |
+ |
|
92 | 108 |
|
93 | 109 |
?> |
... | ... |
@@ -86,7 +86,8 @@ function upload_contact($c) |
86 | 86 |
$ac = contact_to_apicontact($c); |
87 | 87 |
if ($ac['id'] || $ac['handle']) { |
88 | 88 |
// Update |
89 |
- $data = array("contact" => $ac); |
|
89 |
+ $data = array("contact" => $ac, |
|
90 |
+ "actingAs" => "designatedAgent"); |
|
90 | 91 |
$result = api_request('contactUpdate', $data); |
91 | 92 |
if ($result['status'] != 'success') { |
92 | 93 |
system_failure("Es gab ein Problem beim Hochladen der Adresse zum Domainregistrar. Das sollte nicht sein!"); |
... | ... |
@@ -151,6 +151,13 @@ if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'delete') { |
151 | 151 |
} |
152 | 152 |
} |
153 | 153 |
|
154 |
+ $domains = domainlist_by_contact($c); |
|
155 |
+ if ($domains) { |
|
156 |
+ if ($c['email'] != $_REQUEST['email'] && !(isset($_REQUEST['designated']) && $_REQUEST['designated'] == 'yes')) { |
|
157 |
+ system_failure("Sie müssen die explizite Zustimmung des Domaininhabers bestätigen um diese Änderungen zu speichern."); |
|
158 |
+ } |
|
159 |
+ } |
|
160 |
+ |
|
154 | 161 |
// Zuerst Kontakt speichern und wenn eine Änderung der E-Mail gewünscht war, |
155 | 162 |
// dann hinterher das Token erzeugen und senden. Weil wir für das Token die |
156 | 163 |
// Contact-ID brauchen und die bekommen wir bei einer Neueintragung erst nach |