bernd commited on 2007-11-20 10:30:34
Zeige 6 geänderte Dateien mit 493 Einfügungen und 3 Löschungen.
git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@791 87cf0b9e-d624-0410-a070-f6ee81989793
| ... | ... |
@@ -40,6 +40,16 @@ function success_msg($msg) |
| 40 | 40 |
} |
| 41 | 41 |
|
| 42 | 42 |
|
| 43 |
+function we_have_an_error() |
|
| 44 |
+{
|
|
| 45 |
+ global $input_error; |
|
| 46 |
+ global $warning; |
|
| 47 |
+ |
|
| 48 |
+ return ((count($input_error) + count($warning)) > 0); |
|
| 49 |
+ |
|
| 50 |
+} |
|
| 51 |
+ |
|
| 52 |
+ |
|
| 43 | 53 |
function show_messages() |
| 44 | 54 |
{
|
| 45 | 55 |
global $input_error; |
| ... | ... |
@@ -54,7 +64,7 @@ function show_messages() |
| 54 | 64 |
'; |
| 55 | 65 |
foreach ($input_error as $error) |
| 56 | 66 |
{
|
| 57 |
- echo '<li>'.filter_input_general($error)."</li>\n"; |
|
| 67 |
+ echo '<li>'.nl2br(filter_input_general($error))."</li>\n"; |
|
| 58 | 68 |
} |
| 59 | 69 |
echo '</ul> |
| 60 | 70 |
</div>'; |
| ... | ... |
@@ -66,7 +76,7 @@ function show_messages() |
| 66 | 76 |
'; |
| 67 | 77 |
foreach ($warning as $msg) |
| 68 | 78 |
{
|
| 69 |
- echo '<li>'.filter_input_general($msg)."</li>\n"; |
|
| 79 |
+ echo '<li>'.nl2br(filter_input_general($msg))."</li>\n"; |
|
| 70 | 80 |
} |
| 71 | 81 |
echo '</ul> |
| 72 | 82 |
</div>'; |
| ... | ... |
@@ -78,7 +88,7 @@ function show_messages() |
| 78 | 88 |
'; |
| 79 | 89 |
foreach ($success_msg as $msg) |
| 80 | 90 |
{
|
| 81 |
- echo '<li>'.filter_input_general($msg)."</li>\n"; |
|
| 91 |
+ echo '<li>'.nl2br(filter_input_general($msg))."</li>\n"; |
|
| 82 | 92 |
} |
| 83 | 93 |
echo '</ul> |
| 84 | 94 |
</div>'; |
| ... | ... |
@@ -0,0 +1,32 @@ |
| 1 |
+<?php |
|
| 2 |
+ |
|
| 3 |
+require_once('inc/base.php');
|
|
| 4 |
+require_once('inc/security.php');
|
|
| 5 |
+require_role(ROLE_SYSTEMUSER); |
|
| 6 |
+ |
|
| 7 |
+require_once('vmail.php');
|
|
| 8 |
+ |
|
| 9 |
+$accounts = get_vmail_accounts(); |
|
| 10 |
+ |
|
| 11 |
+output('<h3>E-Mail-Accounts</h3>
|
|
| 12 |
+<p>Folgende E-Mail-Konten sind eingerichtet:</p> |
|
| 13 |
+<table style="margin-bottom: 1em;"> |
|
| 14 |
+<tr><th>Adresse</th><th>Aktion</th><th>...</th><th> </th></tr> |
|
| 15 |
+'); |
|
| 16 |
+ |
|
| 17 |
+ foreach ($accounts as $account) |
|
| 18 |
+ {
|
|
| 19 |
+ $action = ($account['type'] == 'mailbox' ? 'Speichern in Postfach' : 'Weiterleiten an '.filter_input_general($account['data'])); |
|
| 20 |
+ output('<tr>
|
|
| 21 |
+ <td>'.internal_link('edit.php', $account['local'].'@'.$account['domain'], 'id='.$account['id']).'</td>
|
|
| 22 |
+ <td>'.$action.'</td> |
|
| 23 |
+ <td><a href="delete.php?account='.$account['id'].'">löschen</a></td></tr>'); |
|
| 24 |
+ } |
|
| 25 |
+ output('</table>
|
|
| 26 |
+<p><a href="edit.php">Neuen Account anlegen</a></p> |
|
| 27 |
+ |
|
| 28 |
+'); |
|
| 29 |
+ |
|
| 30 |
+ |
|
| 31 |
+ |
|
| 32 |
+?> |
| ... | ... |
@@ -0,0 +1,139 @@ |
| 1 |
+<?php |
|
| 2 |
+ |
|
| 3 |
+require_once('inc/debug.php');
|
|
| 4 |
+require_once('inc/security.php');
|
|
| 5 |
+ |
|
| 6 |
+require_once('vmail.php');
|
|
| 7 |
+ |
|
| 8 |
+$title = "E-Mail-Adresse bearbeiten"; |
|
| 9 |
+$section = 'vmail_accounts'; |
|
| 10 |
+require_role(ROLE_SYSTEMUSER); |
|
| 11 |
+ |
|
| 12 |
+$id = (int) $_GET['id']; |
|
| 13 |
+$vhost = empty_account(); |
|
| 14 |
+ |
|
| 15 |
+if ($id != 0) |
|
| 16 |
+ $account = get_account_details($id); |
|
| 17 |
+ |
|
| 18 |
+DEBUG($account); |
|
| 19 |
+if ($id == 0) {
|
|
| 20 |
+ output("<h3>Neue E-Mail-Adresse anlegen</h3>");
|
|
| 21 |
+ $title = "E-Mail-Adresse anlegen"; |
|
| 22 |
+} |
|
| 23 |
+else {
|
|
| 24 |
+ output("<h3>E-Mail-Adresse bearbeiten</h3>");
|
|
| 25 |
+} |
|
| 26 |
+ |
|
| 27 |
+ |
|
| 28 |
+$is_forward = ($mailbox['type'] == 'forward'); |
|
| 29 |
+$is_mailbox = ( ! $is_forward); |
|
| 30 |
+ |
|
| 31 |
+output("<script type=\"text/javascript\">
|
|
| 32 |
+ |
|
| 33 |
+ function selectForwarding() {
|
|
| 34 |
+ // document.getElementById('forward_options').style.visibility = 'visible';
|
|
| 35 |
+ // document.getElementById('mailbox_options').style.visibility = 'hidden';
|
|
| 36 |
+ document.getElementById('forward_options').style.display = 'block';
|
|
| 37 |
+ document.getElementById('mailbox_options').style.display = 'none';
|
|
| 38 |
+ document.getElementById('spamfilter_folder').disabled = true;
|
|
| 39 |
+ document.getElementById('virusfilter_folder').disabled = true;
|
|
| 40 |
+ } |
|
| 41 |
+ |
|
| 42 |
+ function selectMailbox() {
|
|
| 43 |
+ // document.getElementById('mailbox_options').style.visibility = 'visible';
|
|
| 44 |
+ // document.getElementById('forward_options').style.visibility = 'hidden';
|
|
| 45 |
+ document.getElementById('mailbox_options').style.display = 'block';
|
|
| 46 |
+ document.getElementById('forward_options').style.display = 'none';
|
|
| 47 |
+ document.getElementById('spamfilter_folder').disabled = false;
|
|
| 48 |
+ document.getElementById('virusfilter_folder').disabled = false;
|
|
| 49 |
+ } |
|
| 50 |
+ |
|
| 51 |
+ function toggleSpamfilterOptions() {
|
|
| 52 |
+ if (document.getElementById('spamfilter').checked)
|
|
| 53 |
+ document.getElementById('spamfilter_options').style.display = 'block';
|
|
| 54 |
+ else |
|
| 55 |
+ document.getElementById('spamfilter_options').style.display = 'none';
|
|
| 56 |
+ } |
|
| 57 |
+ |
|
| 58 |
+ function toggleVirusfilterOptions() {
|
|
| 59 |
+ if (document.getElementById('virusfilter').checked)
|
|
| 60 |
+ document.getElementById('virusfilter_options').style.display = 'block';
|
|
| 61 |
+ else |
|
| 62 |
+ document.getElementById('virusfilter_options').style.display = 'none';
|
|
| 63 |
+ } |
|
| 64 |
+ |
|
| 65 |
+ </script>"); |
|
| 66 |
+ |
|
| 67 |
+$form = " |
|
| 68 |
+ <p><strong>E-Mail-Adresse:</strong> <input type=\"text\" name=\"local\" id=\"local\" size=\"10\" value=\"{$account['local']}\" /><strong style=\"font-size: 1.5em;\"> @ </strong>".domainselect($account['domainid'])."</p>";
|
|
| 69 |
+ |
|
| 70 |
+$form .= "<p><input type=\"checkbox\" id=\"spamfilter\" name=\"spamfilter\" value=\"1\" ".($account['spamfilter'] != NULL ? 'checked="checked" ' : '')." onclick=\"toggleSpamfilterOptions()\" /><label for=\"spamfilter\"> Spam-Filter</label></p>"; |
|
| 71 |
+ |
|
| 72 |
+$form .= "<p style=\"margin-left: 2em; ".($account['spamfilter'] != NULL ? '' : 'display: none;')."\" id=\"spamfilter_options\"> |
|
| 73 |
+ <em>Was soll mit E-Mails geschehen, die als Spam eingestuft wurden?</em><br /> |
|
| 74 |
+ <input type=\"radio\" id=\"spamfilter_folder\" name=\"spamfilter_action\" value=\"folder\" ".($account['spamfilter'] == 'folder' ? 'checked="checked" ' : '')."/><label for=\"spamfilter_folder\"> In IMAP-Unterordner »Spam« ablegen</label><br /> |
|
| 75 |
+ <input type=\"radio\" id=\"spamfilter_tag\" name=\"spamfilter_action\" value=\"tag\" ".($account['spamfilter'] == 'tag' ? 'checked="checked" ' : '')."/><label for=\"spamfilter_tag\"> Markieren und ganz normal zustellen</label><br /> |
|
| 76 |
+<input type=\"radio\" id=\"spamfilter_delete\" name=\"spamfilter_action\" value=\"delete\" ".($account['spamfilter'] == 'delete' ? 'checked="checked" ' : '')."/><label for=\"spamfilter_delete\"> Löschen</label> |
|
| 77 |
+ </p> |
|
| 78 |
+ "; |
|
| 79 |
+ |
|
| 80 |
+ |
|
| 81 |
+$form .= "<p><input type=\"checkbox\" id=\"virusfilter\" name=\"virusfilter\" value=\"1\" ".($account['virusfilter'] != NULL ? 'checked="checked" ' : '')." onclick=\"toggleVirusfilterOptions()\" /><label for=\"virusfilter\"> Viren-Scanner</label></p>"; |
|
| 82 |
+ |
|
| 83 |
+$form .= "<p style=\"margin-left: 2em; ".($account['virusfilter'] != NULL ? '' : 'display: none;')."\" id=\"virusfilter_options\"> |
|
| 84 |
+ <em>Was soll mit E-Mails geschehen, in denen ein Virus erkannt wurde?</em><br /> |
|
| 85 |
+ <input type=\"radio\" id=\"virusfilter_folder\" name=\"virusfilter_action\" value=\"folder\" ".($account['virusfilter'] == 'folder' ? 'checked="checked" ' : '')."/><label for=\"virusfilter_folder\"> In IMAP-Unterordner »Viren« ablegen</label><br /> |
|
| 86 |
+ <input type=\"radio\" id=\"virusfilter_tag\" name=\"virusfilter_action\" value=\"tag\" ".($account['virusfilter'] == 'tag' ? 'checked="checked" ' : '')."/><label for=\"virusfilter_tag\"> Markieren und ganz normal zustellen</label><br /> |
|
| 87 |
+<input type=\"radio\" id=\"virusfilter_delete\" name=\"virusfilter_action\" value=\"delete\" ".($account['virusfilter'] == 'delete' ? 'checked="checked" ' : '')."/><label for=\"virusfilter_delete\"> Löschen</label> |
|
| 88 |
+ </p> |
|
| 89 |
+ "; |
|
| 90 |
+ |
|
| 91 |
+$password_message = ''; |
|
| 92 |
+if ($is_mailbox and ($account['data'] != '')) |
|
| 93 |
+ $password_message = '<spam style="font-size: 80%"><br /><em>Sie haben bereits ein Passwort gesetzt. Wenn Sie dieses Feld leer lassen, wird das bisherige Passwort beibehalten.</em></span>'; |
|
| 94 |
+ |
|
| 95 |
+ |
|
| 96 |
+$form .= "<p> |
|
| 97 |
+ <input type=\"radio\" id=\"forward\" name=\"type\" value=\"forward\" ".($is_forward ? 'checked="checked" ' : '')." onclick=\"selectForwarding()\" /><label for=\"forward\"> Weiterleitung an andere E-Mail-Adresse</label></p> |
|
| 98 |
+ <p style=\"margin-left: 2em; ".($is_mailbox ? 'display: none' : '')."\" id=\"forward_options\">Weiterleitung an: <input type=\"text\" id=\"forward_to\" name=\"forward_to\" value=\"".($is_forward ? $account['data'] : '')."\" /></p> |
|
| 99 |
+ <p><input type=\"radio\" id=\"mailbox\" name=\"type\" value=\"mailbox\" ".($is_mailbox ? 'checked="checked" ' : '')." onclick=\"selectMailbox()\" /><label for=\"mailbox\"> In Mailbox speichern</label></p> |
|
| 100 |
+ <p style=\"margin-left: 2em; ".($is_forward ? 'display: none' : '')."\" id=\"mailbox_options\">Passwort für Abruf: <input type=\"password\" id=\"password\" name=\"password\" value=\"\" />{$password_message}</p>";
|
|
| 101 |
+ |
|
| 102 |
+/* |
|
| 103 |
+$form .= "<tr><td>PHP</td> |
|
| 104 |
+ <td><select name=\"php\" id=\"php\"> |
|
| 105 |
+ <option value=\"none\" ".($vhost['php'] == NULL ? 'selected="selected"' : '')." >kein PHP</option> |
|
| 106 |
+ <option value=\"mod_php\" ".($vhost['php'] == 'mod_php' ? 'selected="selected"' : '')." >als Apache-Modul</option> |
|
| 107 |
+ <option value=\"fastcgi\" ".($vhost['php'] == 'fastcgi' ? 'selected="selected"' : '')." >FastCGI</option> |
|
| 108 |
+ </select> |
|
| 109 |
+ </td> |
|
| 110 |
+ <td id=\"defaultphp\">als Apache-Modul</td></tr> |
|
| 111 |
+ <tr><td>SSL-Verschlüsselung</td> |
|
| 112 |
+ <td><select name=\"ssl\" id=\"ssl\"> |
|
| 113 |
+ <option value=\"none\" ".($vhost['ssl'] == NULL ? 'selected="selected"' : '')." >SSL optional anbieten</option> |
|
| 114 |
+ <option value=\"http\" ".($vhost['ssl'] == 'http' ? 'selected="selected"' : '')." >kein SSL</option> |
|
| 115 |
+ <option value=\"https\" ".($vhost['ssl'] == 'https' ? 'selected="selected"' : '')." >nur SSL</option> |
|
| 116 |
+ <option value=\"forward\" ".($vhost['ssl'] == 'forward' ? 'selected="selected"' : '')." >Immer auf SSL umleiten</option> |
|
| 117 |
+ </select> |
|
| 118 |
+ </td> |
|
| 119 |
+ <td id=\"defaultssl\">SSL optional anbieten</td></tr> |
|
| 120 |
+ <tr> |
|
| 121 |
+ <td>Logfiles <span class=\"warning\">*</span></td> |
|
| 122 |
+ <td><select name=\"logtype\" id=\"logtype\"> |
|
| 123 |
+ <option value=\"none\" ".($vhost['logtype'] == NULL ? 'selected="selected"' : '')." >keine Logfiles</option> |
|
| 124 |
+ <option value=\"anonymous\" ".($vhost['logtype'] == 'anonymous' ? 'selected="selected"' : '')." >anonymisiert</option> |
|
| 125 |
+ <option value=\"default\" ".($vhost['logtype'] == 'default' ? 'selected="selected"' : '')." >vollständige Logfile</option> |
|
| 126 |
+ </select><br /> |
|
| 127 |
+ <input type=\"checkbox\" id=\"errorlog\" name=\"errorlog\" value=\"1\" ".($vhost['errorlog'] == 1 ? ' checked="checked" ' : '')." /> <label for=\"errorlog\">Fehlerprotokoll (error_log) einschalten</label> |
|
| 128 |
+ </td> |
|
| 129 |
+ <td id=\"defaultlogtype\">keine Logfiles</td></tr> |
|
| 130 |
+ "; |
|
| 131 |
+ |
|
| 132 |
+*/ |
|
| 133 |
+$form .= ' |
|
| 134 |
+ <p><input type="submit" value="Speichern" />    '.internal_link('accounts.php', 'Abbrechen').'</p>';
|
|
| 135 |
+ |
|
| 136 |
+output(html_form('vmail_edit_mailbox', 'save.php', 'action=edit'.($id != 0 ? '&id='.$id : ''), $form));
|
|
| 137 |
+ |
|
| 138 |
+ |
|
| 139 |
+?> |
| ... | ... |
@@ -0,0 +1,239 @@ |
| 1 |
+<?php |
|
| 2 |
+require_once('inc/base.php');
|
|
| 3 |
+require_once('inc/debug.php');
|
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+function user_has_vmail_domain() |
|
| 7 |
+{
|
|
| 8 |
+ $role = $_SESSION['role']; |
|
| 9 |
+ if (! ($role & ROLE_SYSTEMUSER)) {
|
|
| 10 |
+ return false; |
|
| 11 |
+ } |
|
| 12 |
+ $uid = (int) $_SESSION['userinfo']['uid']; |
|
| 13 |
+ $result = db_query("SELECT COUNT(*) FROM mail.v_vmail_domains WHERE useraccount='{$uid}'");
|
|
| 14 |
+ $row = mysql_fetch_array($result); |
|
| 15 |
+ $count = $row[0]; |
|
| 16 |
+ DEBUG("User has {$count} vmail-domains");
|
|
| 17 |
+ return ( (int) $count > 0 ); |
|
| 18 |
+} |
|
| 19 |
+ |
|
| 20 |
+ |
|
| 21 |
+function empty_account() |
|
| 22 |
+{
|
|
| 23 |
+ $account = array( |
|
| 24 |
+ 'id' => NULL, |
|
| 25 |
+ 'local' => '', |
|
| 26 |
+ 'domain' => NULL, |
|
| 27 |
+ 'type' => 'mailbox', |
|
| 28 |
+ 'data' => NULL, |
|
| 29 |
+ 'spamfilter' => NULL, |
|
| 30 |
+ 'virusfilter' => NULL, |
|
| 31 |
+ 'spamexpire' => 7, |
|
| 32 |
+ 'virusexpire' => 7 |
|
| 33 |
+ ); |
|
| 34 |
+ return $account; |
|
| 35 |
+ |
|
| 36 |
+} |
|
| 37 |
+ |
|
| 38 |
+function get_account_details($id) |
|
| 39 |
+{
|
|
| 40 |
+ $id = (int) $id; |
|
| 41 |
+ $uid = (int) $_SESSION['userinfo']['uid']; |
|
| 42 |
+ $result = db_query("SELECT id, local, domainid as domain, type, data, spamfilter, virusfilter from mail.v_virtual_mail WHERE useraccount='{$uid}' AND id={$id} LIMIT 1");
|
|
| 43 |
+ if (mysql_num_rows($result) == 0) |
|
| 44 |
+ system_failure('Ungültige ID oder kein eigener Account');
|
|
| 45 |
+ return mysql_fetch_assoc($result);; |
|
| 46 |
+ |
|
| 47 |
+} |
|
| 48 |
+ |
|
| 49 |
+function get_vmail_accounts() |
|
| 50 |
+{
|
|
| 51 |
+ $uid = (int) $_SESSION['userinfo']['uid']; |
|
| 52 |
+ $result = db_query("SELECT * from mail.v_virtual_mail WHERE useraccount='{$uid}'");
|
|
| 53 |
+ $ret = array(); |
|
| 54 |
+ while ($line = mysql_fetch_assoc($result)) |
|
| 55 |
+ {
|
|
| 56 |
+ array_push($ret, $line); |
|
| 57 |
+ } |
|
| 58 |
+ DEBUG($ret); |
|
| 59 |
+ return $ret; |
|
| 60 |
+} |
|
| 61 |
+ |
|
| 62 |
+ |
|
| 63 |
+ |
|
| 64 |
+function get_vmail_domains() |
|
| 65 |
+{
|
|
| 66 |
+ $uid = (int) $_SESSION['userinfo']['uid']; |
|
| 67 |
+ $result = db_query("SELECT id, domainname FROM mail.v_vmail_domains WHERE useraccount='{$uid}'");
|
|
| 68 |
+ if (mysql_num_rows($result) == 0) |
|
| 69 |
+ system_failure('Sie haben keine Domains für virtuelle Mail-Verarbeitung');
|
|
| 70 |
+ $ret = array(); |
|
| 71 |
+ while ($tmp = mysql_fetch_object($result)) |
|
| 72 |
+ array_push($ret, $tmp); |
|
| 73 |
+ return $ret; |
|
| 74 |
+} |
|
| 75 |
+ |
|
| 76 |
+ |
|
| 77 |
+ |
|
| 78 |
+function domainselect($selected = NULL, $selectattribute = '') |
|
| 79 |
+{
|
|
| 80 |
+ global $domainlist; |
|
| 81 |
+ if ($domainlist == NULL) |
|
| 82 |
+ $domainlist = get_vmail_domains(); |
|
| 83 |
+ $selected = (int) $selected; |
|
| 84 |
+ |
|
| 85 |
+ $ret = '<select id="domain" name="domain" size="1" '.$selectattribute.' >'; |
|
| 86 |
+ foreach ($domainlist as $dom) |
|
| 87 |
+ {
|
|
| 88 |
+ $s = ($selected == $dom->id) ? ' selected="selected" ': ''; |
|
| 89 |
+ $ret .= "<option value=\"{$dom->id}\"{$s}>{$dom->domainname}</option>\n";
|
|
| 90 |
+ } |
|
| 91 |
+ $ret .= '</select>'; |
|
| 92 |
+ return $ret; |
|
| 93 |
+} |
|
| 94 |
+ |
|
| 95 |
+ |
|
| 96 |
+function encrypt_mail_password($pw) |
|
| 97 |
+{
|
|
| 98 |
+ DEBUG("unencrypted PW: ".$pw);
|
|
| 99 |
+ require_once('inc/base.php');
|
|
| 100 |
+ $salt = random_string(8); |
|
| 101 |
+ $encpw = crypt($pw, "\$1\${$salt}\$");
|
|
| 102 |
+ DEBUG("encrypted PW: ".$encpw);
|
|
| 103 |
+ return chop($encpw); |
|
| 104 |
+ |
|
| 105 |
+} |
|
| 106 |
+ |
|
| 107 |
+ |
|
| 108 |
+ |
|
| 109 |
+function save_vmail_account($account) |
|
| 110 |
+{
|
|
| 111 |
+ $uid = (int) $_SESSION['userinfo']['uid']; |
|
| 112 |
+ $id = $account['id']; |
|
| 113 |
+ if ($id != NULL) |
|
| 114 |
+ {
|
|
| 115 |
+ $id = (int) $id; |
|
| 116 |
+ $oldaccount = get_account_details($id); |
|
| 117 |
+ // Erzeugt einen system_error() wenn ID ungültig |
|
| 118 |
+ } |
|
| 119 |
+ // Ab hier ist $id sicher, entweder NULL oder eine gültige ID des aktuellen users |
|
| 120 |
+ |
|
| 121 |
+ $account['local'] = filter_input_username($account['local']); |
|
| 122 |
+ if ($account['local'] == '') |
|
| 123 |
+ {
|
|
| 124 |
+ input_error('Die E-Mail-Adresse braucht eine Angabe vor dem »@«!');
|
|
| 125 |
+ return false; |
|
| 126 |
+ } |
|
| 127 |
+ $account['domain'] = (int) $account['domain']; |
|
| 128 |
+ $domainlist = get_vmail_domains(); |
|
| 129 |
+ $valid_domain = false; |
|
| 130 |
+ foreach ($domainlist as $dom) |
|
| 131 |
+ {
|
|
| 132 |
+ if ($dom->id == $account['domain']) |
|
| 133 |
+ {
|
|
| 134 |
+ $valid_domain = true; |
|
| 135 |
+ break; |
|
| 136 |
+ } |
|
| 137 |
+ } |
|
| 138 |
+ if (($account['domain'] == 0) || (! $valid_domain)) |
|
| 139 |
+ {
|
|
| 140 |
+ input_error('Bitte wählen Sie eine Ihrer Domains aus!');
|
|
| 141 |
+ return false; |
|
| 142 |
+ } |
|
| 143 |
+ $type = NULL; |
|
| 144 |
+ switch ($account['type']) |
|
| 145 |
+ {
|
|
| 146 |
+ case 'forward': |
|
| 147 |
+ $account['data'] = filter_input_general($account['data']); |
|
| 148 |
+ if (! check_emailaddr($account['data'])) |
|
| 149 |
+ system_failure('Das Weiterleitungs-Ziel ist keine E-Mail-Adresse!');
|
|
| 150 |
+ $type = 'forward'; |
|
| 151 |
+ break; |
|
| 152 |
+ case 'mailbox': |
|
| 153 |
+ $account['data'] = stripslashes($account['data']); |
|
| 154 |
+ if ($account['data'] != '') |
|
| 155 |
+ {
|
|
| 156 |
+ $crack = strong_password($account['data']); |
|
| 157 |
+ if ($crack !== true) |
|
| 158 |
+ {
|
|
| 159 |
+ input_error('Ihr Passwort ist zu einfach. bitte wählen Sie ein sicheres Passwort!'."\nDie Fehlermeldung lautet: »{$crack}«");
|
|
| 160 |
+ return false; |
|
| 161 |
+ } |
|
| 162 |
+ $account['data'] = encrypt_mail_password($account['data']); |
|
| 163 |
+ } |
|
| 164 |
+ $type = 'mailbox'; |
|
| 165 |
+ break; |
|
| 166 |
+ } |
|
| 167 |
+ if ($type == NULL) |
|
| 168 |
+ {
|
|
| 169 |
+ input_error('Problem mit der »type«-Variable!');
|
|
| 170 |
+ return false; |
|
| 171 |
+ } |
|
| 172 |
+ |
|
| 173 |
+ $spam = 'NULL'; |
|
| 174 |
+ switch ($account['spamfilter']) |
|
| 175 |
+ {
|
|
| 176 |
+ case 'folder': |
|
| 177 |
+ if ($type == 'forward') |
|
| 178 |
+ {
|
|
| 179 |
+ input_error('Sie können nicht in einen IMAP-Unterordner zustellen lassen, wenn Sie gar kein IMAP-Konto anlegen!');
|
|
| 180 |
+ return false; |
|
| 181 |
+ } |
|
| 182 |
+ $spam = "'folder'"; |
|
| 183 |
+ break; |
|
| 184 |
+ case 'tag': |
|
| 185 |
+ $spam = "'tag'"; |
|
| 186 |
+ break; |
|
| 187 |
+ case 'delete': |
|
| 188 |
+ $spam = "'delete'"; |
|
| 189 |
+ break; |
|
| 190 |
+ } |
|
| 191 |
+ |
|
| 192 |
+ $virus = 'NULL'; |
|
| 193 |
+ switch ($account['virusfilter']) |
|
| 194 |
+ {
|
|
| 195 |
+ case 'folder': |
|
| 196 |
+ if ($type == 'forward') |
|
| 197 |
+ {
|
|
| 198 |
+ input_error('Sie können nicht in einen IMAP-Unterordner zustellen lassen, wenn Sie gar kein IMAP-Konto anlegen!');
|
|
| 199 |
+ return false; |
|
| 200 |
+ } |
|
| 201 |
+ $virus = "'folder'"; |
|
| 202 |
+ break; |
|
| 203 |
+ case 'tag': |
|
| 204 |
+ $virus = "'tag'"; |
|
| 205 |
+ break; |
|
| 206 |
+ case 'delete': |
|
| 207 |
+ $virus = "'delete'"; |
|
| 208 |
+ break; |
|
| 209 |
+ } |
|
| 210 |
+ |
|
| 211 |
+ $account['local'] = mysql_real_escape_string($account['local']); |
|
| 212 |
+ $account['data'] = mysql_real_escape_string($account['data']); |
|
| 213 |
+ $account['spamexpire'] = (int) $account['spamexpire']; |
|
| 214 |
+ $account['virusexpire'] = (int) $account['virusexpire']; |
|
| 215 |
+ |
|
| 216 |
+ $query = ''; |
|
| 217 |
+ if ($id == NULL) |
|
| 218 |
+ {
|
|
| 219 |
+ $query = "INSERT INTO mail.virtual_mail (local, domain, type, data, spamfilter, virusfilter, spamexpire, virusexpire) VALUES "; |
|
| 220 |
+ $query .= "('{$account['local']}', {$account['domain']}, '{$type}', '{$account['data']}', {$spam}, {$virus}, {$account['spamexpire']}, {$account['virusexpire']});";
|
|
| 221 |
+ } |
|
| 222 |
+ else |
|
| 223 |
+ {
|
|
| 224 |
+ $password = ", data='{$account['data']}'";
|
|
| 225 |
+ if ($account['data'] == '') |
|
| 226 |
+ $password = ''; |
|
| 227 |
+ $query = "UPDATE mail.virtual_mail SET local='{$account['local']}', domain={$account['domain']}, type='{$type}'{$password}, ";
|
|
| 228 |
+ $query .= "spamfilter={$spam}, virusfilter={$virus}, spamexpire={$account['spamexpire']}, virusexpire={$account['virusexpire']} ";
|
|
| 229 |
+ $query .= "WHERE id={$id} LIMIT 1;";
|
|
| 230 |
+ } |
|
| 231 |
+ db_query($query); |
|
| 232 |
+ |
|
| 233 |
+ |
|
| 234 |
+} |
|
| 235 |
+ |
|
| 236 |
+ |
|
| 237 |
+ |
|
| 238 |
+ |
|
| 239 |
+?> |
| ... | ... |
@@ -0,0 +1,20 @@ |
| 1 |
+<?php |
|
| 2 |
+ |
|
| 3 |
+$menu = array(); |
|
| 4 |
+ |
|
| 5 |
+$role = $_SESSION['role']; |
|
| 6 |
+ |
|
| 7 |
+require_once('include/vmail.php');
|
|
| 8 |
+ |
|
| 9 |
+ |
|
| 10 |
+if (($role & ROLE_SYSTEMUSER) && user_has_vmail_domain()) |
|
| 11 |
+{
|
|
| 12 |
+ $menu["vmail_accounts"] = array("label" => "E-Mail", "file" => "accounts.php", "weight" => 10);
|
|
| 13 |
+} |
|
| 14 |
+ |
|
| 15 |
+ |
|
| 16 |
+if (empty($menu)) |
|
| 17 |
+ $menu = false; |
|
| 18 |
+ |
|
| 19 |
+ |
|
| 20 |
+?> |
| ... | ... |
@@ -0,0 +1,50 @@ |
| 1 |
+<?php |
|
| 2 |
+ |
|
| 3 |
+require_once('session/start.php');
|
|
| 4 |
+ |
|
| 5 |
+require_once('vmail.php');
|
|
| 6 |
+ |
|
| 7 |
+require_role(ROLE_SYSTEMUSER); |
|
| 8 |
+ |
|
| 9 |
+require_once("inc/debug.php");
|
|
| 10 |
+global $debugmode; |
|
| 11 |
+ |
|
| 12 |
+ |
|
| 13 |
+if ($_GET['action'] == 'edit') |
|
| 14 |
+{
|
|
| 15 |
+ check_form_token('vmail_edit_mailbox');
|
|
| 16 |
+ $id = (int) $_GET['id']; |
|
| 17 |
+ |
|
| 18 |
+ $account = empty_account(); |
|
| 19 |
+ $account['id'] = NULL; |
|
| 20 |
+ if ($id) |
|
| 21 |
+ $account['id'] = $id; |
|
| 22 |
+ $account['local'] = $_POST['local']; |
|
| 23 |
+ $account['domain'] = (int) $_POST['domain']; |
|
| 24 |
+ $account['type'] = $_POST['type']; |
|
| 25 |
+ if ($_POST['type'] == 'mailbox') |
|
| 26 |
+ $account['data'] = $_POST['password']; |
|
| 27 |
+ else |
|
| 28 |
+ $account['data'] = $_POST['forward_to']; |
|
| 29 |
+ $account['spamfilter'] = $_POST['spamfilter_action']; |
|
| 30 |
+ if ($_POST['spamfilter'] != '1') |
|
| 31 |
+ $account['spamfilter'] = NULL; |
|
| 32 |
+ $account['virusfilter'] = $_POST['virusfilter_action']; |
|
| 33 |
+ if ($_POST['virusfilter'] != '1') |
|
| 34 |
+ $account['virusfilter'] = NULL; |
|
| 35 |
+ |
|
| 36 |
+ DEBUG($account); |
|
| 37 |
+ |
|
| 38 |
+ save_vmail_account($account); |
|
| 39 |
+ |
|
| 40 |
+ if (! ($debugmode || we_have_an_error())) |
|
| 41 |
+ header('Location: accounts.php');
|
|
| 42 |
+ |
|
| 43 |
+} |
|
| 44 |
+else |
|
| 45 |
+ system_failure("Unimplemented action");
|
|
| 46 |
+ |
|
| 47 |
+output('');
|
|
| 48 |
+ |
|
| 49 |
+ |
|
| 50 |
+?> |
|
| 0 | 51 |