Bernd Wurst commited on 2020-05-01 08:34:04
Zeige 3 geänderte Dateien mit 69 Einfügungen und 0 Löschungen.
... | ... |
@@ -56,3 +56,14 @@ output('</table>'); |
56 | 56 |
|
57 | 57 |
addnew("new_account", "Neues Jabber-Konto anlegen"); |
58 | 58 |
addnew("new_domain", "Eigene Domain für Jabber freischalten"); |
59 |
+ |
|
60 |
+$obsolete_domains = domains_without_accounts(); |
|
61 |
+ |
|
62 |
+if (count($obsolete_domains) > 0) { |
|
63 |
+ output('<h4>Unbenutzte Jabber-Domains</h4>'); |
|
64 |
+ output('<p>Folgende Domains sind für die Nutzung im Jabber-Server eingerichtet, werden aber momentan nicht genutzt (kein Jabber-Account vorhanden).</p><ul>'); |
|
65 |
+ foreach ($obsolete_domains as $d) { |
|
66 |
+ output('<li><strong>'.$d->fqdn.'</strong> '.internal_link('save', icon_delete('Domain aus dem Jabber-Server entfernen'), 'action=deldomain&domain='.$d->id).'</li>'); |
|
67 |
+ } |
|
68 |
+ output('</ul>'); |
|
69 |
+} |
... | ... |
@@ -142,6 +142,45 @@ function delete_jabber_account($id) |
142 | 142 |
logger(LOG_INFO, "modules/jabber/include/jabberaccounts", "jabber", "deleted account »{$id}«"); |
143 | 143 |
} |
144 | 144 |
|
145 |
+function domains_without_accounts() |
|
146 |
+{ |
|
147 |
+ $domains = get_domain_list((int) $_SESSION['customerinfo']['customerno']); |
|
148 |
+ $accounts = get_jabber_accounts(); |
|
149 |
+ $obsolete_domains = array(); |
|
150 |
+ foreach ($domains as $d) { |
|
151 |
+ if ($d->jabber != 1) { |
|
152 |
+ continue; |
|
153 |
+ } |
|
154 |
+ $found = false; |
|
155 |
+ foreach ($accounts as $a) { |
|
156 |
+ if ($a['domain'] == $d->id) { |
|
157 |
+ $found = true; |
|
158 |
+ } |
|
159 |
+ } |
|
160 |
+ if (! $found) { |
|
161 |
+ $obsolete_domains[] = $d; |
|
162 |
+ } |
|
163 |
+ } |
|
164 |
+ return $obsolete_domains; |
|
165 |
+} |
|
166 |
+ |
|
167 |
+ |
|
168 |
+function delete_jabber_domain($id) |
|
169 |
+{ |
|
170 |
+ $d = new Domain((int) $id); |
|
171 |
+ $d->ensure_customerdomain(); |
|
172 |
+ $obsolete_domains = domains_without_accounts(); |
|
173 |
+ $found = false; |
|
174 |
+ foreach ($obsolete_domains as $od) { |
|
175 |
+ if ($od->id == $d->id) { |
|
176 |
+ $found = true; |
|
177 |
+ } |
|
178 |
+ } |
|
179 |
+ if (! $found) { |
|
180 |
+ system_failure('Diese Domain ist nicht unbenutzt.'); |
|
181 |
+ } |
|
182 |
+ db_query("UPDATE kundendaten.domains SET jabber=0 WHERE jabber=1 AND id=?", array($d->id)); |
|
183 |
+} |
|
145 | 184 |
|
146 | 185 |
function new_jabber_domain($id) |
147 | 186 |
{ |
... | ... |
@@ -75,6 +75,25 @@ if ($_GET['action'] == 'new') { |
75 | 75 |
check_form_token('jabber_new_domain'); |
76 | 76 |
new_jabber_domain($_REQUEST['domain']); |
77 | 77 |
header("Location: accounts"); |
78 |
+} elseif ($_GET['action'] == 'deldomain') { |
|
79 |
+ $title = "Jabber-Domain löschen"; |
|
80 |
+ $section = 'jabber_accounts'; |
|
81 |
+ $domain = new Domain((int) $_GET['domain']); |
|
82 |
+ $sure = user_is_sure(); |
|
83 |
+ if ($sure === null) { |
|
84 |
+ are_you_sure("action=deldomain&domain={$_GET['domain']}", "Möchten Sie die Domain »".filter_output_html($domain->fqdn)."« aus der Jabber-Konfiguration entfernen?"); |
|
85 |
+ } elseif ($sure === true) { |
|
86 |
+ delete_jabber_domain($domain->id); |
|
87 |
+ if (! $debugmode) { |
|
88 |
+ header("Location: accounts"); |
|
89 |
+ } |
|
90 |
+ } elseif ($sure === false) { |
|
91 |
+ if (! $debugmode) { |
|
92 |
+ header("Location: accounts"); |
|
93 |
+ } |
|
94 |
+ } |
|
95 |
+ |
|
96 |
+ |
|
78 | 97 |
} else { |
79 | 98 |
system_failure("Unimplemented action"); |
80 | 99 |
} |
81 | 100 |