Bernd Wurst commited on 2025-05-06 11:27:17
Zeige 2 geänderte Dateien mit 30 Einfügungen und 2 Löschungen.
... | ... |
@@ -17,7 +17,7 @@ require_once('inc/icons.php'); |
17 | 17 |
require_once('inc/security.php'); |
18 | 18 |
require_role([ROLE_CUSTOMER]); |
19 | 19 |
require_once('class/domain.php'); |
20 |
- |
|
20 |
+require_once('session/checkuser.php'); |
|
21 | 21 |
require_once('contactapi.php'); |
22 | 22 |
|
23 | 23 |
|
... | ... |
@@ -117,6 +117,28 @@ function have_mailaddress($email) |
117 | 117 |
} |
118 | 118 |
|
119 | 119 |
|
120 |
+function allow_new_address() |
|
121 |
+{ |
|
122 |
+ // Wenn Admin per Su-Login |
|
123 |
+ $admin_user = $_SESSION['admin_user']; |
|
124 |
+ $role = find_role($admin_user, '', true); |
|
125 |
+ if ($role & ROLE_SYSADMIN) { |
|
126 |
+ warning('Die E-Mail-Adresse wird nicht überprüft, da Sie Admin sind!'); |
|
127 |
+ return true; |
|
128 |
+ } |
|
129 |
+ // Wenn der User vertrauenswürdig ist (feld trust_new_contacts) |
|
130 |
+ if (isset($_SESSION['customerinfo'])) { |
|
131 |
+ // User ist auch Kundenaccount |
|
132 |
+ $result = db_query("SELECT trust_new_contacts FROM kundendaten.kunden WHERE id=?", [(int) $_SESSION['customerinfo']['customerno']]); |
|
133 |
+ $data = $result->fetch(); |
|
134 |
+ if ($data['trust_new_contacts'] == 1) { |
|
135 |
+ warning('Die E-Mail-Adresse war bisher nicht in Verwendung. Da Sie für die Verwendung unbekannter Adressen freigeschaltet sind, wird die Adresse von uns nicht überprüft.'); |
|
136 |
+ return true; |
|
137 |
+ } |
|
138 |
+ } |
|
139 |
+ return false; |
|
140 |
+} |
|
141 |
+ |
|
120 | 142 |
function possible_kundenkontakt($c) |
121 | 143 |
{ |
122 | 144 |
if ($c['name'] && $c['email']) { |
... | ... |
@@ -307,6 +329,7 @@ function update_pending($contactid) |
307 | 329 |
|
308 | 330 |
function delete_contact($id) |
309 | 331 |
{ |
332 |
+ $keep = false; |
|
310 | 333 |
$c = get_contact($id); |
311 | 334 |
$kundenkontakte = get_kundenkontakte(); |
312 | 335 |
if ($id == $kundenkontakte['kunde']) { |
... | ... |
@@ -322,8 +345,13 @@ function delete_contact($id) |
322 | 345 |
// Lösche bei der Registry |
323 | 346 |
$c['state'] = 'deleted'; |
324 | 347 |
upload_contact($c); |
348 |
+ $keep = true; |
|
325 | 349 |
} |
350 |
+ if ($keep) { |
|
326 | 351 |
db_query("UPDATE kundendaten.contacts SET state='deleted' WHERE id=?", [$c['id']]); |
352 |
+ } else { |
|
353 |
+ db_query("DELETE FROM kundendaten.contacts WHERE id=?", [$c['id']]); |
|
354 |
+ } |
|
327 | 355 |
} |
328 | 356 |
|
329 | 357 |
|
... | ... |
@@ -191,7 +191,7 @@ if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'delete') { |
191 | 191 |
$c['id'] = $id; |
192 | 192 |
|
193 | 193 |
if (isset($_REQUEST['email']) && check_emailaddr($_REQUEST['email']) && ($new || $c['email'] != $_REQUEST['email'])) { |
194 |
- if (have_mailaddress($_REQUEST['email'])) { |
|
194 |
+ if (have_mailaddress($_REQUEST['email']) || allow_new_address()) { |
|
195 | 195 |
save_emailaddress($c['id'], $_REQUEST['email']); |
196 | 196 |
} else { |
197 | 197 |
send_emailchange_token($c['id'], $_REQUEST['email']); |
198 | 198 |