Browse code

VMail-User können ihre Einstellungen selbst vornehmen und bekommen eine individuelle Startseite mit den Einstellungen.

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@2214 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on29/02/2012 13:26:13
Showing9 changed files
1 1
new file mode 100644
2 2
Binary files /dev/null and b/images/cog.png differ
... ...
@@ -12,7 +12,7 @@ title("Passwort ändern");
12 12
 
13 13
 
14 14
 
15
-if ($_POST['password1'] != '')
15
+if (isset($_POST['password1']) && $_POST['password1'] != '')
16 16
 {
17 17
   $accname = $_SESSION['mailaccount'];
18 18
   check_form_token('email_chpass');
... ...
@@ -6,7 +6,7 @@ require_once('inc/security.php');
6 6
 require_once('vmail.php');
7 7
 
8 8
 $section = 'email_vmail';
9
-require_role(ROLE_SYSTEMUSER);
9
+require_role(array(ROLE_SYSTEMUSER, ROLE_VMAIL_ACCOUNT));
10 10
 
11 11
 $account = empty_account();
12 12
 $id = (isset($_GET['id']) ? (int) $_GET['id'] : 0);
... ...
@@ -14,12 +14,25 @@ $id = (isset($_GET['id']) ? (int) $_GET['id'] : 0);
14 14
 if ($id != 0)
15 15
   $account = get_account_details($id);
16 16
 
17
+$accountlogin = false;
18
+if ($_SESSION['role'] == ROLE_VMAIL_ACCOUNT) {
19
+  $id = get_vmail_id_by_emailaddr($_SESSION['mailaccount']);
20
+  $account = get_account_details($id, false);
21
+  $accountlogin = true;
22
+  $accountname = filter_input_general($_SESSION['mailaccount']);
23
+}
24
+
25
+
17 26
 DEBUG($account);
18 27
 if ($id == 0) {
19 28
   title("E-Mail-Adresse anlegen");
20 29
 }
21 30
 else {
22
-  title("E-Mail-Adresse bearbeiten");
31
+  if ($accountlogin) {
32
+    title("Einstellungen für {$accountname}");
33
+  } else {
34
+    title("E-Mail-Adresse bearbeiten");
35
+  }
23 36
 }
24 37
 
25 38
 
... ...
@@ -84,37 +97,41 @@ output("<script type=\"text/javascript\">
84 97
 </script>
85 98
 ");
86 99
 
87
-$form = "
88
-    <p><strong>E-Mail-Adresse:</strong>&#160;<input type=\"text\" name=\"local\" id=\"local\" size=\"10\" value=\"{$account['local']}\" /><strong style=\"font-size: 1.5em;\">&#160;@&#160;</strong>".domainselect($account['domain'])."</p>";
100
+$form = '';
89 101
 
90
-$password_message = '';
91
-$password_value = '';
92
-if ($is_mailbox and ($account['password'] != ''))
93
-{
94
-  $password_message = '<span style="font-size: 80%"><br /><em>Sie haben bereits ein Passwort gesetzt. Wenn Sie dieses Feld nicht ändern, wird das bisherige Passwort beibehalten.</em></span>';
95
-  $password_value = '**********';
96
-} 
102
+if ($accountlogin) {
103
+  $form.= "<p class=\"spamfilter_options\">Unerwünschte E-Mails (Spam, Viren) in diesem Postfach ".html_select('spamfilter_action', array("none" => 'nicht filtern', "folder" => 'in Unterordner »Spam« ablegen', "tag" => 'markieren und zustellen', "delete" => 'nicht zustellen (löschen)'), $account['spamfilter'])."</p>";
104
+} else {
105
+  $form .= "
106
+    <p><strong>E-Mail-Adresse:</strong>&#160;<input type=\"text\" name=\"local\" id=\"local\" size=\"10\" value=\"{$account['local']}\" /><strong style=\"font-size: 1.5em;\">&#160;@&#160;</strong>".domainselect($account['domain'])."</p>";
97 107
 
98
-$form .= "
108
+  $password_message = '';
109
+  $password_value = '';
110
+  if ($is_mailbox and ($account['password'] != ''))
111
+  {
112
+    $password_message = '<span style="font-size: 80%"><br /><em>Sie haben bereits ein Passwort gesetzt. Wenn Sie dieses Feld nicht ändern, wird das bisherige Passwort beibehalten.</em></span>';
113
+    $password_value = '**********';
114
+  } 
115
+  
116
+  $form .= "
99 117
     <p><input onchange=\"toggleDisplay('mailbox', 'mailbox_options')\" type=\"checkbox\" id=\"mailbox\" name=\"mailbox\" value=\"yes\" ".($is_mailbox ? 'checked="checked" ' : '')." /><label for=\"mailbox\">&#160;<strong>In Mailbox speichern</strong></label></p>
100 118
     <div style=\"margin-left: 2em;".($is_mailbox ? '' : ' display: none;')."\" id=\"mailbox_options\">
101 119
     <p>Passwort für Abruf:&#160;<input type=\"password\" id=\"password\" name=\"password\" value=\"{$password_value}\" />{$password_message}</p>";
102 120
 
103
-$form.= "<p class=\"spamfilter_options\">Unerwünschte E-Mails (Spam, Viren) in diesem Postfach ".html_select('spamfilter_action', array("none" => 'nicht filtern', "folder" => 'in Unterordner »Spam« ablegen', "tag" => 'markieren und zustellen', "delete" => 'nicht zustellen (löschen)'), $account['spamfilter'])."</p>";
104
-
105
-$quota = config('vmail_basequota');
106
-if ($is_mailbox and $account['quota']) {
107
-  $quota = $account['quota'];
108
-}
121
+  $form.= "<p class=\"spamfilter_options\">Unerwünschte E-Mails (Spam, Viren) in diesem Postfach ".html_select('spamfilter_action', array("none" => 'nicht filtern', "folder" => 'in Unterordner »Spam« ablegen', "tag" => 'markieren und zustellen', "delete" => 'nicht zustellen (löschen)'), $account['spamfilter'])."</p>";
109 122
 
110
-$form .= "<p class=\"quota_options\">Größe des Postfachs: <input type=\"text\" id=\"quota\" name=\"quota\" value=\"{$quota}\" /> MB<br /><span style=\"font-size: 80%\"><em>Hinweis: Die Differenz zwischen dem hier gesetzten Wert und dem Sockelbetrag von ".config('vmail_basequota')." MB wird vom Speicherplatz Ihres Benutzer-Kontos abgezogen.</em></span></p>";
111
-
112
-$quota_notify = ($account['quota_threshold'] >= 0) ? ' checked="checked" ' : '';
113
-$quota_threshold = ($account['quota_threshold'] >= 0) ? $account['quota_threshold'] : '';
114
-$form .= "<p class=\"quota_options\"><input type=\"checkbox\" id=\"quota_notify\" name=\"quota_notify\" value=\"1\" {$quota_notify} /><label for=\"quota_notify\">Benachrichtigung wenn weniger als</label> <input type=\"text\" name=\"quota_threshold\" id=\"quota_threshold\" value=\"{$quota_threshold}\" /> MB Speicherplatz zur Verfügung stehen.</p>";
123
+  $quota = config('vmail_basequota');
124
+  if ($is_mailbox and $account['quota']) {
125
+    $quota = $account['quota'];
126
+  }
127
+  $form .= "<p class=\"quota_options\">Größe des Postfachs: <input type=\"text\" id=\"quota\" name=\"quota\" value=\"{$quota}\" /> MB<br /><span style=\"font-size: 80%\"><em>Hinweis: Die Differenz zwischen dem hier gesetzten Wert und dem Sockelbetrag von ".config('vmail_basequota')." MB wird vom Speicherplatz Ihres Benutzer-Kontos abgezogen.</em></span></p>";
115 128
 
116
-$form .= "</div>";
129
+  $quota_notify = ($account['quota_threshold'] >= 0) ? ' checked="checked" ' : '';
130
+  $quota_threshold = ($account['quota_threshold'] >= 0) ? $account['quota_threshold'] : '';
131
+  $form .= "<p class=\"quota_options\"><input type=\"checkbox\" id=\"quota_notify\" name=\"quota_notify\" value=\"1\" {$quota_notify} /><label for=\"quota_notify\">Benachrichtigung wenn weniger als</label> <input type=\"text\" name=\"quota_threshold\" id=\"quota_threshold\" value=\"{$quota_threshold}\" /> MB Speicherplatz zur Verfügung stehen.</p>";
117 132
 
133
+  $form .= "</div>";
134
+}
118 135
 
119 136
 
120 137
 
... ...
@@ -41,12 +41,24 @@ Ihre E-Mail wird nicht weitergeleitet.',
41 41
 }
42 42
 
43 43
 
44
+function get_vmail_id_by_emailaddr($emailaddr) 
45
+{
46
+  $emailaddr = mysql_real_escape_string( $emailaddr );
47
+  $result = db_query("SELECT id FROM mail.v_vmail_accounts WHERE CONCAT(local, '@', domainname) = '{$emailaddr}'");
48
+  $entry = mysql_fetch_assoc($result);
49
+  return (int) $entry['id'];
50
+}
51
+
44 52
 function get_account_details($id, $checkuid = true)
45 53
 {
46 54
 	$id = (int) $id;
47
-	$uid = (int) $_SESSION['userinfo']['uid'];
48
-	$uid_check = ($checkuid ? "useraccount='{$uid}' AND " : "");
49
-	$result = db_query("SELECT id, local, domain, password, spamfilter, forwards, autoresponder, server, quota, COALESCE(quota_used, 0) AS quota_used, quota_threshold from mail.v_vmail_accounts WHERE {$uid_check}id={$id} LIMIT 1");
55
+  $uid_check = '';
56
+  DEBUG("checkuid: ".$checkuid);
57
+  if ($checkuid) {
58
+    $uid = (int) $_SESSION['userinfo']['uid'];
59
+    $uid_check = "useraccount='{$uid}' AND ";
60
+  }
61
+  $result = db_query("SELECT id, local, domain, password, spamfilter, forwards, autoresponder, server, quota, COALESCE(quota_used, 0) AS quota_used, quota_threshold from mail.v_vmail_accounts WHERE {$uid_check}id={$id} LIMIT 1");
50 62
 	if (mysql_num_rows($result) == 0)
51 63
 		system_failure('Ungültige ID oder kein eigener Account');
52 64
 	$acc = empty_account();
... ...
@@ -160,45 +172,56 @@ function get_max_mailboxquota($server, $oldquota) {
160 172
 
161 173
 function save_vmail_account($account)
162 174
 {
163
-  $uid = (int) $_SESSION['userinfo']['uid'];
175
+  $accountlogin = ($_SESSION['role'] == ROLE_VMAIL_ACCOUNT);
164 176
   $id = $account['id'];
165 177
   if ($id != NULL)
166 178
   {
167 179
     $id = (int) $id;
168
-    $oldaccount = get_account_details($id);
180
+    $oldaccount = get_account_details($id, !$accountlogin);
169 181
     // Erzeugt einen system_error() wenn ID ungültig
170 182
   }
171 183
   // Ab hier ist $id sicher, entweder NULL oder eine gültige ID des aktuellen users
172
-  
184
+
173 185
   $newaccount = false;
174 186
   if ($id === NULL) {
175 187
     $newaccount = true;
176 188
   }
177
-  $account['local'] = filter_input_username($account['local']);
178
-  if ($account['local'] == '')
179
-  {
180
-    system_failure('Die E-Mail-Adresse braucht eine Angabe vor dem »@«!');
181
-    return false;
182
-  }
183
-  $account['domain'] = (int) $account['domain'];
184
-  $domainlist = get_vmail_domains();
185
-  $valid_domain = false;
186
-  $domainname = NULL;
187
-  $server = NULL;
188
-  foreach ($domainlist as $dom)
189
-  {
190
-    if ($dom->id == $account['domain'])
189
+
190
+  if ($accountlogin) {
191
+    if ($account['domain'] != $oldaccount['domain'])
192
+      system_failure('Sie können die E-Mail-Adresse nicht ändern!');
193
+    if ($account['local'] != $oldaccount['local'])
194
+      system_failure('Sie können die E-Mail-Adresse nicht ändern!');
195
+    if ($account['quota'] != $oldaccount['quota'])
196
+      system_failure('Sie können Ihren eigenen Speicherplatz nicht verändern.');
197
+  } else {
198
+  
199
+    $account['local'] = filter_input_username($account['local']);
200
+    if ($account['local'] == '')
191 201
     {
192
-      $domainname = $dom->domainname;
193
-      $server = $dom->server;
194
-      $valid_domain = true;
195
-      break;
202
+      system_failure('Die E-Mail-Adresse braucht eine Angabe vor dem »@«!');
203
+      return false;
204
+    }
205
+    $account['domain'] = (int) $account['domain'];
206
+    $domainlist = get_vmail_domains();
207
+    $valid_domain = false;
208
+    $domainname = NULL;
209
+    $server = NULL;
210
+    foreach ($domainlist as $dom)
211
+    {
212
+      if ($dom->id == $account['domain'])
213
+      {
214
+        $domainname = $dom->domainname;
215
+        $server = $dom->server;
216
+        $valid_domain = true;
217
+        break;
218
+      }
219
+    }
220
+    if (($account['domain'] == 0) || (! $valid_domain))
221
+    {
222
+      system_failure('Bitte wählen Sie eine Ihrer Domains aus!');
223
+      return false;
196 224
     }
197
-  }
198
-  if (($account['domain'] == 0) || (! $valid_domain))
199
-  {
200
-    system_failure('Bitte wählen Sie eine Ihrer Domains aus!');
201
-    return false;
202 225
   }
203 226
   
204 227
   $forwards = array();
... ...
@@ -214,21 +237,26 @@ function save_vmail_account($account)
214 237
     }
215 238
   }
216 239
 
217
-  $password='NULL';
218
-  if ($account['password'] != '')
219
-  {
220
-    $account['password'] = stripslashes($account['password']);
221
-    $crack = strong_password($account['password']);
222
-    if ($crack !== true)
240
+  if ($accountlogin) {
241
+    $password = NULL; 
242
+    $set_password = false;
243
+  } else {
244
+    $password='NULL';
245
+    if ($account['password'] != '')
223 246
     {
224
-      system_failure('Ihr Passwort ist zu einfach. bitte wählen Sie ein sicheres Passwort!'."\nDie Fehlermeldung lautet: »{$crack}«");
225
-      return false;
247
+      $account['password'] = stripslashes($account['password']);
248
+      $crack = strong_password($account['password']);
249
+      if ($crack !== true)
250
+      {
251
+        system_failure('Ihr Passwort ist zu einfach. bitte wählen Sie ein sicheres Passwort!'."\nDie Fehlermeldung lautet: »{$crack}«");
252
+        return false;
253
+      }
254
+      $password = "'".encrypt_mail_password($account['password'])."'";
226 255
     }
227
-    $password = "'".encrypt_mail_password($account['password'])."'";
228
-  }
229
-  $set_password = ($id == NULL || $password != 'NULL');
230
-  if ($account['password'] === NULL)
231
-    $set_password=true;
256
+    $set_password = ($id == NULL || $password != 'NULL');
257
+    if ($account['password'] === NULL)
258
+      $set_password=true;
259
+  }  
232 260
 
233 261
   $spam = 'NULL';
234 262
   switch ($account['spamfilter'])
... ...
@@ -244,21 +272,23 @@ function save_vmail_account($account)
244 272
       break;
245 273
   }
246 274
   
247
-  $free = config('vmail_basequota');
248
-  if ($newaccount) {
249
-    // Neues Postfach
250
-    $free = get_max_mailboxquota($server, config('vmail_basequota'));
251
-  } else {
252
-    $free = get_max_mailboxquota($oldaccount['server'], $oldaccount['quota']);
253
-  }
275
+  if (!$accountlogin) {
276
+    $free = config('vmail_basequota');
277
+    if ($newaccount) {
278
+      // Neues Postfach
279
+      $free = get_max_mailboxquota($server, config('vmail_basequota'));
280
+    } else {
281
+      $free = get_max_mailboxquota($oldaccount['server'], $oldaccount['quota']);
282
+    }
254 283
   
255
-  $newquota = max((int) config('vmail_basequota'), (int) $account['quota']);
256
-  if ($newquota > config('vmail_basequota') && $newquota > ($free+config('vmail_basequota'))) {
257
-    $newquota = $free + config('vmail_basequota');
258
-    warning("Ihr Speicherplatz reicht für diese Postfach-Größe nicht mehr aus. Ihr Postfach wurde auf {$newquota} MB reduziert. Bitte beachten Sie, dass damit Ihr Benutzerkonto keinen freien Speicherplatz mehr aufweist!");
259
-  }
284
+    $newquota = max((int) config('vmail_basequota'), (int) $account['quota']);
285
+    if ($newquota > config('vmail_basequota') && $newquota > ($free+config('vmail_basequota'))) {
286
+      $newquota = $free + config('vmail_basequota');
287
+      warning("Ihr Speicherplatz reicht für diese Postfach-Größe nicht mehr aus. Ihr Postfach wurde auf {$newquota} MB reduziert. Bitte beachten Sie, dass damit Ihr Benutzerkonto keinen freien Speicherplatz mehr aufweist!");
288
+    }
260 289
   
261
-  $account['quota'] = $newquota;
290
+    $account['quota'] = $newquota;
291
+  }  
262 292
 
263 293
   if ($account['quota_threshold'] == -1) {
264 294
     $account['quota_threshold'] = 'NULL';
... ...
@@ -361,10 +391,13 @@ Wussten Sie schon, dass Sie auf mehrere Arten Ihre E-Mails abrufen können?
361 391
   }
362 392
 
363 393
   // Update Mail-Quota-Cache
364
-  $result = db_query("SELECT useraccount, server, SUM(quota-(SELECT value FROM misc.config WHERE `key`='vmail_basequota')) AS quota, SUM(GREATEST(quota_used-(SELECT value FROM misc.config WHERE `key`='vmail_basequota'), 0)) AS used FROM mail.v_vmail_accounts WHERE useraccount=".$uid." GROUP BY useraccount, server");
365
-  while ($line = mysql_fetch_assoc($result)) {
366
-    if ($line['quota'] !== NULL) {
367
-      db_query("REPLACE INTO mail.vmailquota (uid, server, quota, used) VALUES ('{$line['useraccount']}', '{$line['server']}', '{$line['quota']}', '{$line['used']}')");
394
+  if ($_SESSION['role'] == ROLE_SYSTEMUSER) {
395
+    $uid = (int) $_SESSION['userinfo']['uid'];
396
+    $result = db_query("SELECT useraccount, server, SUM(quota-(SELECT value FROM misc.config WHERE `key`='vmail_basequota')) AS quota, SUM(GREATEST(quota_used-(SELECT value FROM misc.config WHERE `key`='vmail_basequota'), 0)) AS used FROM mail.v_vmail_accounts WHERE useraccount=".$uid." GROUP BY useraccount, server");
397
+    while ($line = mysql_fetch_assoc($result)) {
398
+      if ($line['quota'] !== NULL) {
399
+        db_query("REPLACE INTO mail.vmailquota (uid, server, quota, used) VALUES ('{$line['useraccount']}', '{$line['server']}', '{$line['quota']}', '{$line['used']}')");
400
+      }
368 401
     }
369 402
   }
370 403
 
... ...
@@ -8,6 +8,10 @@ require_once('include/hasaccount.php');
8 8
 if ($role & ROLE_SYSTEMUSER) {
9 9
   $menu["email_vmail"] = array("label" => "E-Mail", "file" => "vmail", "weight" => 3);
10 10
 }
11
+if ($role & ROLE_VMAIL_ACCOUNT)
12
+{
13
+  $menu['email_edit'] = array("label" => "Einstellungen", "file" => "edit", "weight" => 10);
14
+}
11 15
 if ($role & (ROLE_VMAIL_ACCOUNT | ROLE_MAILACCOUNT))
12 16
 {
13 17
   $menu['email_chpass'] = array("label" => "Passwort ändern", "file" => "chpass", "weight" => 15);
... ...
@@ -4,7 +4,7 @@ require_once('session/start.php');
4 4
 
5 5
 require_once('vmail.php');
6 6
 
7
-require_role(ROLE_SYSTEMUSER);
7
+require_role(array(ROLE_SYSTEMUSER, ROLE_VMAIL_ACCOUNT));
8 8
 
9 9
 require_once("inc/debug.php");
10 10
 global $debugmode;
... ...
@@ -13,34 +13,43 @@ global $debugmode;
13 13
 if ($_GET['action'] == 'edit')
14 14
 {
15 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['spamfilter'] = $_POST['spamfilter_action'];
25
-  $account['password'] = $_POST['password'];
26
-  if (($account['password'] == '') && ($_POST['mailbox'] == 'yes'))
27
-    system_failure("Sie haben ein leeres Passwort eingegeben!");
28
-  if ($_POST['password'] == '**********')
29
-    $account['password'] = '';
30
-  if ($_POST['mailbox'] != 'yes')
31
-  {
32
-    $account['password'] = NULL;
33
-    $account['spamfilter'] = 'none';
34
-  }
35
-  if (isset($_POST['quota'])) {
36
-    $account['quota'] = $_POST['quota'];
37
-  }
16
+  $accountlogin = ($_SESSION['role'] == ROLE_VMAIL_ACCOUNT);
17
+
18
+  if ($accountlogin) {
19
+    $id = get_vmail_id_by_emailaddr($_SESSION['mailaccount']);
20
+    $account = get_account_details($id, false);
21
+    // Leere das, sonst werden die vervielfacht
22
+    $account['forwards'] = array();
23
+  } else {
24
+    $id = (int) $_GET['id'];
25
+  
26
+    $account = empty_account();
27
+    $account['id'] = NULL;
28
+    if ($id)
29
+      $account['id'] = $id;
30
+    $account['local'] = $_POST['local'];
31
+    $account['domain'] = (int) $_POST['domain'];
32
+    $account['password'] = $_POST['password'];
33
+    if (($account['password'] == '') && ($_POST['mailbox'] == 'yes'))
34
+      system_failure("Sie haben ein leeres Passwort eingegeben!");
35
+    if ($_POST['password'] == '**********')
36
+      $account['password'] = '';
37
+    if ($_POST['mailbox'] != 'yes')
38
+    {
39
+      $account['password'] = NULL;
40
+      $account['spamfilter'] = 'none';
41
+    }
42
+    if (isset($_POST['quota'])) {
43
+      $account['quota'] = $_POST['quota'];
44
+    }
45
+  
46
+    $account['quota_threshold'] = -1;
47
+    if (isset($_POST['quota_notify']) && isset($_POST['quota_threshold']) && $_POST['quota_notify'] == 1) {
48
+      $account['quota_threshold'] = $_POST['quota_threshold'];
49
+    }
38 50
 
39
-  $account['quota_threshold'] = -1;
40
-  if (isset($_POST['quota_notify']) && isset($_POST['quota_threshold']) && $_POST['quota_notify'] == 1) {
41
-    $account['quota_threshold'] = $_POST['quota_threshold'];
42 51
   }
43
-
52
+  $account['spamfilter'] = $_POST['spamfilter_action'];
44 53
 
45 54
 
46 55
   $ar = empty_autoresponder_config();
... ...
@@ -113,7 +122,11 @@ if ($_GET['action'] == 'edit')
113 122
   save_vmail_account($account);
114 123
 
115 124
   if (! ($debugmode || we_have_an_error()))
116
-    header('Location: vmail');
125
+    if ($accountlogin) {
126
+      header('Location: ../index/index');
127
+    } else {
128
+      header('Location: vmail');
129
+    }
117 130
 }
118 131
 elseif ($_GET['action'] == 'delete')
119 132
 {
120 133
new file mode 100644
... ...
@@ -0,0 +1,70 @@
1
+<?php
2
+
3
+require_once('inc/base.php');
4
+require_once('inc/icons.php');
5
+require_once('inc/security.php');
6
+require_role(ROLE_VMAIL_ACCOUNT);
7
+
8
+require_once('include/vmail.php');
9
+
10
+$id = get_vmail_id_by_emailaddr($_SESSION['mailaccount']);
11
+$acc = get_account_details($id, false);
12
+$actions = array();
13
+DEBUG($acc);
14
+
15
+$content = '<h3>Aktueller Speicherplatzverbrauch</h3>';
16
+
17
+$percent = round(( $acc["quota_used"] / $acc["quota"] ) * 100 );
18
+$color = ( $percent > 95 ? 'red' : ($percent > 75 ? "yellow" : "green" ));
19
+$width = 2 * min($percent, 100);
20
+$content .= "<div><div style=\"margin: 2px 0; padding: 0; width: 200px; border: 1px solid black;\"><div style=\"font-size: 1px; background-color: {$color}; height: 10px; width: {$width}px; margin: 0; padding: 0;\">&#160;</div></div> {$acc['quota_used']} MB von {$acc['quota']} MB belegt</div>";
21
+
22
+$content .= '<h3>Einstellungen</h3>
23
+<p>Eingehende E-Mails für Ihre Adresse werden wie folgt verarbeitet:</p>';
24
+
25
+$spam = 'ohne Spamfilter';
26
+switch ($acc['spamfilter'])
27
+{
28
+  case 'folder':  $spam = 'Spam in Unterordner';
29
+    break;
30
+	case 'tag':	$spam = 'Spam markieren';
31
+		break;
32
+	case 'delete':	$spam = 'Spam nicht zustellen';
33
+  	break;
34
+}
35
+$content .= '<p>'.other_icon('go.png')." Ablegen in Ihrer Mailbox ({$spam})</p>";
36
+
37
+
38
+if ($acc['autoresponder']) {
39
+  $now = date( 'Y-m-d H:i:s' );
40
+  $valid_from = $acc['autoresponder']['valid_from'];
41
+  $valid_until = $acc['autoresponder']['valid_until'];
42
+  if ($valid_from == NULL) {
43
+    // Autoresponder abgeschaltet
44
+    //$content .= '<p>'.other_icon('go.png')." Es wird keine automatische Antwort versendet</p>"; 
45
+  } elseif ($valid_from > $now) {
46
+    $content .= '<p>'.other_icon('go.png')." Es wird ab dem {$valid_from} eine automatische Antwort versendet</p>"; 
47
+  } elseif ($valid_until == NULL) {
48
+    $content .= '<p>'.other_icon('go.png')." Es wird eine automatische Antwort versendet</p>"; 
49
+  } elseif ($valid_until > $now) {
50
+    $content .= '<p>'.other_icon('go.png')." Es wird eine automatische Antwort versendet, jedoch nicht mehr ab dem {$valid_until}</p>"; 
51
+  } elseif ($valid_until < $now) {
52
+    $content .= '<p>'.other_icon('go.png')." Es wird seit dem {$valid_until} keine automatische Antwort mehr versendet</p>"; 
53
+  }
54
+}
55
+
56
+foreach ($acc['forwards'] AS $fwd)
57
+{
58
+ 	$spam = 'ohne Spamfilter';
59
+  switch ($fwd['spamfilter'])
60
+	{
61
+	  case 'tag':	$spam = 'Spam markieren';
62
+			break;
63
+		case 'delete':	$spam = 'Spam nicht zustellen';
64
+			break;
65
+	}
66
+	$fwd['destination'] = filter_input_general($fwd['destination']);
67
+  $content .= '<p>'.other_icon('go.png')." Weiterleitung an <strong>{$fwd['destination']}</strong> ({$spam})</p>"; 
68
+}
69
+
70
+?>
... ...
@@ -60,6 +60,10 @@ if (have_module('email') && ($_SESSION['role'] & ROLE_MAILACCOUNT || $_SESSION['
60 60
   output("<div class=\"block\">".internal_link("../email/chpass", "<img src=\"{$prefix}images/pwchange.png\" alt=\"\" /> Passwort ändern ")."</div>");
61 61
 }
62 62
 
63
+if (have_module('email') && ($_SESSION['role'] & ROLE_VMAIL_ACCOUNT)) {
64
+  output("<div class=\"block\">".internal_link("../email/edit", "<img src=\"{$prefix}images/cog.png\" alt=\"\" /> E-Mail-Einstellungen ")."</div>");
65
+}
66
+
63 67
 if ($_SESSION['role'] & ROLE_CUSTOMER || $_SESSION['role'] & ROLE_SYSTEMUSER) {
64 68
   output("<div class=\"block\">".internal_link("chpass", "<img src=\"{$prefix}images/pwchange.png\" alt=\"\" /> Passwort ändern ")."</div>");
65 69
 }
... ...
@@ -93,4 +97,10 @@ if (have_module('jabber') && $_SESSION['role'] & ROLE_CUSTOMER) {
93 97
 
94 98
 output("</div>");
95 99
 
100
+if (have_module('email') && $_SESSION['role'] & ROLE_VMAIL_ACCOUNT) {
101
+  include('modules/email/vmailoverview.php');
102
+  output("<div class=\"vmailoverview\">".$content."</div>");
103
+}
104
+
105
+
96 106
 ?>
... ...
@@ -228,12 +228,16 @@ div.content {
228 228
 }
229 229
 /*        overflow: hidden; */
230 230
 
231
-div.overview {
231
+div.vmailoverview {
232
+}
233
+
234
+.overview {
232 235
   margin: 2em;
236
+  overflow: auto;
237
+  width: 100%;
233 238
   max-width: 50em;
234 239
 }
235
-
236
-div.overview div.block {
240
+.overview div.block {
237 241
   float: left;
238 242
   margin: 1em;
239 243
   padding: 1em;
... ...
@@ -244,7 +248,7 @@ div.overview div.block {
244 248
   background-color: #eee;
245 249
 }
246 250
 
247
-div.overview div.block img {
251
+.overview div.block img {
248 252
   display: block;
249 253
   margin: 0 auto;
250 254
   margin-bottom: 1em;
... ...
@@ -252,7 +256,7 @@ div.overview div.block img {
252 256
 }
253 257
 
254 258
 /*
255
-div.overview div.block a {
259
+.overview div.block a {
256 260
   color: #000;
257 261
 }
258 262
 */