Änderung des betreffenden Useraccounts eingebaut
Bernd Wurst

Bernd Wurst commited on 2018-02-20 11:35:38
Zeige 4 geänderte Dateien mit 50 Einfügungen und 21 Löschungen.

... ...
@@ -28,11 +28,6 @@ if ($_SESSION['role'] & ROLE_CUSTOMER)
28 28
 else
29 29
   $user_domains = get_domain_list($_SESSION['userinfo']['customerno'], $_SESSION['userinfo']['uid']);
30 30
 
31
-$useraccounts = array();
32
-if ($_SESSION['role'] & ROLE_CUSTOMER) {
33
-    $useraccounts = list_useraccounts();
34
-}
35
-
36 31
 title("Domains");
37 32
 
38 33
 output('<p>In Ihrem Account werden die folgenden Domains verwaltet:</p>');
... ...
@@ -98,21 +93,7 @@ foreach ($user_domains as $domain)
98 93
   } elseif ($_SESSION['role'] & ROLE_CUSTOMER && $domain->mailserver_lock == 1) {
99 94
       $domainname = internal_link('verify', $domainname, 'id='.$domain->id);
100 95
   }
101
-  $domainuser = '';
102
-    if ($_SESSION['role'] & ROLE_CUSTOMER && count($useraccounts) > 1) {
103
-        // Mehrere User vorhanden
104
-        $username = '';
105
-        foreach ($useraccounts as $u) {
106
-            if ($u['uid'] == $domain->useraccount) {
107
-                $username = $u['username'];
108
-            }
109
-        }
110
-        if (!$username) {
111
-            $username = '<em>unbekannt</em>';
112
-        }
113
-        $domainuser = '<p class="domain-user">Verfügbar für Benutzer <strong>'.$username.'</strong> '.internal_link('chguser', icon_edit().' Ändern', "id={$domain->id}").'</p>';
114
-    }
115
-  output("  <div class=\"domain-item {$status} {$locked}\"><p class=\"domainname\">{$domainname}</p><p class=\"regdate\">{$regdate}</p>".$domainuser."<p class=\"domain-usage\">Verwendung: {$features}{$mailserver_lock}</p></div>\n");
96
+ output("  <div class=\"domain-item {$status} {$locked}\"><p class=\"domainname\">{$domainname}</p><p class=\"regdate\">{$regdate}</p><p class=\"domain-usage\">Verwendung: {$features}{$mailserver_lock}</p></div>\n");
116 97
 }
117 98
 output('</div>');
118 99
 output("<br />");
... ...
@@ -212,6 +212,24 @@ function list_useraccounts()
212 212
 }
213 213
 
214 214
 
215
+function change_user($domain, $uid) 
216
+{
217
+    $domain = new Domain($domain);
218
+    $domain->ensure_customerdomain();
219
+    $targetuser = NULL;
220
+    $useraccounts = list_useraccounts();
221
+    foreach ($useraccounts as $u) {
222
+        if ($u['uid'] == $uid) {
223
+            $targetuser = $u['uid'];
224
+            break;
225
+        }
226
+    }
227
+    if (! $targetuser) {
228
+        system_failure("Ungültiger Useraccount!");
229
+    }
230
+    db_query("UPDATE kundendaten.domains SET useraccount=? WHERE id=?", array($targetuser, $domain->id));
231
+}
232
+
215 233
 
216 234
 function get_domain_offer($domainname) 
217 235
 {
... ...
@@ -62,6 +62,24 @@ if (isset($_GET['admin_c']) && $_GET['admin_c'] == 'none') {
62 62
 
63 63
 title("Änderung der Domain {$dom->fqdn}");
64 64
 $section = 'domains_domains';
65
+
66
+$useraccounts = list_useraccounts();
67
+if ($_SESSION['role'] & ROLE_CUSTOMER && count($useraccounts) > 1) {
68
+    // Mehrere User vorhanden
69
+    $options = array();
70
+    foreach ($useraccounts as $u) {
71
+        $options[$u['uid']] = $u['username'];
72
+    }
73
+    if (!array_key_exists($dom->useraccount, $options)) {
74
+        $options[$dom->useraccount] = $dom->useraccount;
75
+    }
76
+    output('<h4>Zuständiges Benutzerkonto</h4>');
77
+    $form = '<p>Diese Domain nutzen im Benutzerkonto '.html_select('domainuser', $options, $dom->useraccount).' <input type="submit" name="submit" value="Änderung speichern"></p>';
78
+    output(html_form('update-user', 'update_save', 'action=chguser&id='.$dom->id, $form));
79
+}
80
+
81
+
82
+output('<h4>Inhaberwechsel der Domain</h4>');
65 83
 output('<p>Legen Sie hier einen neuen Inhaber für diese Domain fest.</p>');
66 84
 
67 85
 $owner = get_contact($_SESSION['domains_update_owner']);
... ...
@@ -98,7 +116,7 @@ if ($owner['id'] != $dom->owner || $admin_c['id'] != $dom->admin_c) {
98 116
     <p>Mit Speichern dieser Änderungen führen Sie möglicherweise einen Inhaberwechsel bei der Domain '.$dom->fqdn.' aus. Inhaberwechsel sind bei einigen Domainendungen (z.B. com/net/org) zustimmungspflichtig vom alten und vom neuen Inhaber. Die Registrierungsstelle kann nach eigenem Ermessen diese Zustimmung per separater E-Mail einfordern. Wird diese Zustimmung nicht oder verspätet erteilt, kann eine Domain gesperrt werden. Dieser Vorgang wird nicht von '.config('company_name').' kontrolliert.</p>
99 117
     <p>Sie sind ferner darüber informiert, dass die Adresse des Domaininhabers öffentlich abrufbar ist.</p>';
100 118
     $form .= '<p><input type="submit" name="sumbit" value="Änderungen speichern und Domaininhaber ändern"></p>';
101
-    output(html_form('domains_update', 'update_save', "id=".$dom->id, $form));
119
+    output(html_form('domains_update', 'update_save', "action=ownerchange&id=".$dom->id, $form));
102 120
 } 
103 121
 
104 122
 output('<p>'.internal_link('domains', 'Ohne Änderungen zurück').'</p>');
... ...
@@ -22,6 +22,17 @@ require_once('domains.php');
22 22
 
23 23
 require_role(ROLE_CUSTOMER);
24 24
 
25
+if (!isset($_REQUEST['action'])) {
26
+    system_failure("Falscher Aufruf");
27
+}
28
+
29
+if ($_REQUEST['action'] == 'chguser') {
30
+    change_user((int)$_REQUEST['id'], $_REQUEST['domainuser']);
31
+    redirect('update?id='.(int)$_REQUEST['id']);
32
+}
33
+    
34
+if ($_REQUEST['action'] == 'ownerchange') {
35
+
25 36
     if (!(isset($_POST['accept']) && $_POST['accept'] == '1')) {
26 37
         redirect('update?error=1');
27 38
     }
... ...
@@ -40,3 +51,4 @@ unset($_SESSION['domains_update_admin_c']);
40 51
     unset($_SESSION['domains_update_detach']);
41 52
 
42 53
     redirect('domains');
54
+}
43 55