martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 12:37:08 +0200] rev 534
Change 'force' argument to reset user records for tid/ssid/qid
If domain{quotalimit,transport,serviceset} are run with 'force' and settings
are inheritable from the domain, then rather than to copy the ID to the user
table, the affected field in the user records should be set to NULL so that
the domain default is used.
martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 00:36:43 +0200] rev 533
Change UI to accept 'default' to restore inherited values
Instead of explicit values for tid/ssid/qid, the UI now accepts 'default',
which removed user-pecific settings and hence causes domain defaults to be
used.
martin f. krafft <madduck@madduck.net> [Fri, 13 Apr 2012 23:24:12 +0200] rev 532
Modify userinfo output to indicate when domain defaults are displayed
When Account instances reference NULL tid/qid/ssid, the data must come from
the associated domain, and this should be indicated. For transport and
services, this is easy to do as the string passed in the info dict can simply
be modified. For quotalimit, however, another method must be used due to the
CLI-side formatting.
All approaches use a common formatter outsourced to the common.py file.
martin f. krafft <madduck@madduck.net> [Fri, 13 Apr 2012 23:09:40 +0200] rev 531
Modify Account class to handle NULL references
This patch modifies the Account class to defer to using the associated
domain's tid/ssid/qid fields if the per-instance fields are None/NULL.
martin f. krafft <madduck@madduck.net> [Fri, 13 Apr 2012 17:49:14 +0200] rev 530
Modify SQL update script to accept NULL fields for users
The value NULL in the qid/ssid/tid fields of the user table means that the
value from the associated domain record should be used instead.
This patch modifies the PL/pgSQL functions used by Dovecot and Postfix
accordingly.
martin f. krafft <madduck@madduck.net> [Fri, 13 Apr 2012 23:49:26 +0200] rev 529
man: Add examples for userservices
Pascal Volk <user@localhost.localdomain.org> [Sat, 14 Apr 2012 15:11:27 +0000] rev 528
Reverted previous three changesets (e09139525580, 85517c8fde36, 3acbff727626)
martin f. krafft <madduck@madduck.net> [Fri, 13 Apr 2012 23:24:12 +0200] rev 527
Modify userinfo output to indicate when domain defaults are displayed
When Account instances reference NULL tid/qid/ssid, the data must come from
the associated domain, and this should be indicated. For transport and
services, this is easy to do as the string passed in the info dict can simply
be modified. For quotalimit, however, another method must be used due to the
CLI-side formatting.
All approaches use a common formatter outsourced to the common.py file.
martin f. krafft <madduck@madduck.net> [Fri, 13 Apr 2012 23:09:40 +0200] rev 526
Modify Account class to handle NULL references
This patch modifies the Account class to defer to using the associated
domain's tid/ssid/qid fields if the per-instance fields are None/NULL.
martin f. krafft <madduck@madduck.net> [Fri, 13 Apr 2012 17:49:14 +0200] rev 525
Modify SQL update script to accept NULL fields for users
The value NULL in the qid/ssid/tid fields of the user table means that the
value from the associated domain record should be used instead.
This patch modifies the PL/pgSQL functions used by Dovecot and Postfix
accordingly.
martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 11:50:33 +0200] rev 524
Add list* subcommands to TODO
martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 10:41:10 +0200] rev 523
add domain/account notes to TODO
martin f. krafft <madduck@madduck.net> [Fri, 13 Apr 2012 22:57:23 +0200] rev 522
Add my WIP items to the TODO list
martin f. krafft <madduck@madduck.net> [Fri, 13 Apr 2012 14:56:29 +0200] rev 521
Cache interpolated destination
Instead of running the string modification function for destination
interpolation twice, store the result once and use the stored result
subsequently.
Pascal Volk <user@localhost.localdomain.org> [Thu, 12 Apr 2012 18:22:54 +0000] rev 520
man: Use example.com in catchallinfo example output.
Pascal Volk <user@localhost.localdomain.org> [Thu, 12 Apr 2012 18:18:02 +0000] rev 519
README: reStructuredText fix: ERROR/3 and WARNING/2.
martin f. krafft <madduck@madduck.net> [Wed, 11 Apr 2012 16:23:27 +0200] rev 518
Enable interpolation of alias destinations
This patch modifies the virtual_alias_maps function so that the destination
address is parsed for the place holders %n, %d and %=, which are replaced with
the localpart, the domain or the full address with '@' replaced by '=' of the
queried key.
In combination with alias domains, this allows for domain-specific recipients.
E.g. given example.org and its alias domain example.com, defining an alias
postmaster@example.org → postmaster+%d@example.org
will cause mail to postmaster@example.*com* to go to
postmaster+example.*com*@example.org.
martin f. krafft <madduck@madduck.net> [Wed, 11 Apr 2012 09:08:19 +0200] rev 517
Add catch-all aliases to README/features
martin f. krafft <madduck@madduck.net> [Tue, 10 Apr 2012 23:50:35 +0200] rev 516
Add catchall subcommands to manpages
martin f. krafft <madduck@madduck.net> [Tue, 10 Apr 2012 23:50:18 +0200] rev 515
Include catch-all count in domaininfo output
martin f. krafft <madduck@madduck.net> [Tue, 10 Apr 2012 22:56:30 +0200] rev 514
Make PL/pgSQL function feed back identity for mailboxes/relocated when there
are catchall destinations.
Without catchall aliases, if no virtual_alias matches, the query can just
return NULL and Postfix will later check mailboxes/relocated for the address
to rewrite.
However, since virtual aliases are handled long before mailboxes/relocated,
a catchall alias would also catch mail to mailboxes and relocated addresses,
which we do not want.
The way to tell postfix to keep delivering is for the virtual alias map to
return the search key itself (identity function).
This patch changes the postfix_virtual_alias_maps Pl/pgSQL function to do
exactly that, but only if there are catchall destinations defined for the
domain in question — otherwise it returns NULL when no match is found.
martin f. krafft <madduck@madduck.net> [Tue, 10 Apr 2012 01:08:25 +0200] rev 513
Fix syntax errors
martin f. krafft <madduck@madduck.net> [Tue, 10 Apr 2012 00:50:55 +0200] rev 512
Modify virtual_alias_maps function to check mailboxes/relocated first
martin f. krafft <madduck@madduck.net> [Tue, 10 Apr 2012 00:33:53 +0200] rev 511
Make virtual_alias_maps function search catchall when no aliases are found
martin f. krafft <madduck@madduck.net> [Tue, 10 Apr 2012 00:08:12 +0200] rev 510
Add catchall info to domain_info output
martin f. krafft <madduck@madduck.net> [Tue, 10 Apr 2012 00:07:49 +0200] rev 509
Correct syntax errors
martin f. krafft <madduck@madduck.net> [Mon, 09 Apr 2012 23:50:12 +0200] rev 508
Fixup catchall_info to return iterator, not self
martin f. krafft <madduck@madduck.net> [Mon, 09 Apr 2012 23:44:36 +0200] rev 507
Correct syntax errors
martin f. krafft <madduck@madduck.net> [Mon, 09 Apr 2012 23:40:52 +0200] rev 506
Teach CLI about catchall* commands
martin f. krafft <madduck@madduck.net> [Mon, 09 Apr 2012 23:21:56 +0200] rev 505
Provide catchall_* methods to the Handler class
martin f. krafft <madduck@madduck.net> [Mon, 09 Apr 2012 18:10:56 +0200] rev 504
First version of a CatchallAlias class
I based the CatchallAlias class in catchall.py heavily on the Alias class, but
by copy, not deriving. The two are functionally related, but the
implementations are too different because CatchallAliases have no localpart.
martin f. krafft <madduck@madduck.net> [Mon, 09 Apr 2012 17:45:02 +0200] rev 503
Add database table for catchall destinations
Catch-all aliases are stored for a domain. Since there can be multiple
destinations per domain, this is done using a 1:n relation on the gid.
This commit extends the SQL schema definition and also provides appropriate
upgrade DDL.