Add catch-all possibility
authorJoey Schulze <joey@infodrom.org>
Sun, 12 May 2013 12:44:57 +0000 (14:44 +0200)
committerJoey Schulze <joey@infodrom.org>
Sun, 12 May 2013 12:44:57 +0000 (14:44 +0200)
postfix.txt
user.php

index 8ea1a33..2c9e188 100644 (file)
@@ -24,6 +24,15 @@ query = SELECT forward
    JOIN vmail_domain d ON u.vmail_domain_id=d.id
    WHERE u.username || '@' || d.name = '%s' AND forward IS NOT NULL AND forward <> '' AND active = 1
 
+Query mit Catchall mittels u.username = '*'
+
+query = SELECT forward
+   FROM vmail_user u
+   JOIN vmail_domain d ON u.vmail_domain_id=d.id
+   WHERE (u.username || '@' || d.name = '%s' OR u.username || '@' || d.name = '*' || substring('%s' from position('@' in '%s')))
+     AND forward IS NOT NULL AND forward <> '' AND active = 1
+
+
 virtual-mailbox-domains.cf
 
 user = vmail
index e747da2..cd84bca 100644 (file)
--- a/user.php
+++ b/user.php
@@ -10,6 +10,19 @@ EOC;
 
 $jscode[] = <<<EOC
 var post_save = user_post_save;
+var pre_insert = user_pre_save;
+var pre_save = user_pre_save;
+
+function user_pre_save()
+{
+  if ($('edit_username').value == '*' && !$('edit_forward').value.length) {
+    alert("Fehler aufgetreten!\\n\\nFür Catch-All-Einträge muß zwingend\\neine Forward-Adresse angegeben werden.");
+    $('edit_forward').focus();
+    return false;
+  }
+
+  return true;
+}
 
 function user_post_save()
 {