Wed, 27 Jun 2012 12:46:27 +0000 VMM/account: Check the account's transport only when we have a transport. v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Wed, 27 Jun 2012 12:46:27 +0000] rev 560
VMM/account: Check the account's transport only when we have a transport.
Wed, 27 Jun 2012 12:18:53 +0000 VMM: The Python 2.4.x compatibility commit. v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Wed, 27 Jun 2012 12:18:53 +0000] rev 559
VMM: The Python 2.4.x compatibility commit.
Thu, 14 Jun 2012 20:45:12 +0000 pgsql/set-permissions.py: Extended permissions. v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Thu, 14 Jun 2012 20:45:12 +0000] rev 558
pgsql/set-permissions.py: Extended permissions. Postfix needs read access on the postfix_gid view. Dovecot needs read permissions on both mailboxformat columns.
Thu, 14 Jun 2012 16:06:09 +0000 VMM/handler: Restored method Handler.domain_transport(). v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Thu, 14 Jun 2012 16:06:09 +0000] rev 557
VMM/handler: Restored method Handler.domain_transport(). It went somehow lost with changeset 5806fb74130b.
Thu, 31 May 2012 18:48:00 +0000 pgsql: Added helper script: set-permissions.py. v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Thu, 31 May 2012 18:48:00 +0000] rev 556
pgsql: Added helper script: set-permissions.py.
Sun, 15 Apr 2012 13:17:21 +0200 Provide list{addresses,aliases,users,relocated} subcommands v0.6.x
martin f. krafft <madduck@madduck.net> [Sun, 15 Apr 2012 13:17:21 +0200] rev 555
Provide list{addresses,aliases,users,relocated} subcommands The patch provides the list{addresses,aliases,users,relocated} subcommands to the UI. All commands actually take the same path in the code and only one query is run with different parameters for each case. There are still two shortcomings: 1. With alias domains, the output order is not as one might want it, e.g. foo@example.org bar@example.org foo@example.com bar@example.com when it should really be foo@ twice and then bar@ twice. I have not found a way to modify the SQL accordingly. 2. The SELECT queries for Accounts, Alias and Relocated are hard-coded in common.py.
Sun, 15 Apr 2012 19:56:21 +0200 man: escape hyphens v0.6.x
martin f. krafft <madduck@madduck.net> [Sun, 15 Apr 2012 19:56:21 +0200] rev 554
man: escape hyphens Hyphens inside words must be spelt \- instead of just -. This patch fixes up the manpages. * * * .
Sun, 15 Apr 2012 19:47:58 +0200 man: add 'catchall' to domaininfo v0.6.x
martin f. krafft <madduck@madduck.net> [Sun, 15 Apr 2012 19:47:58 +0200] rev 553
man: add 'catchall' to domaininfo Since the addition of catchall, the domaininfo subcommand can also take 'catchall' as a [detail] to limit the output of details to the catch-all aliases. Also, the number of catch-all destinations is now included in the simple domaininfo output.
Sun, 15 Apr 2012 16:17:50 +0000 man: vmm1: Use `fqdn' instead of `domain' in catchall* descriptions. v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Sun, 15 Apr 2012 16:17:50 +0000] rev 552
man: vmm1: Use `fqdn' instead of `domain' in catchall* descriptions. Fixed a typo s/cadd/cad/. Replaced double quotes by \(dq.
Sun, 15 Apr 2012 15:56:01 +0000 VMM/cli/subcommands: Use the `fqdn' argument placeholder also for v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Sun, 15 Apr 2012 15:56:01 +0000] rev 551
VMM/cli/subcommands: Use the `fqdn' argument placeholder also for catch-all subcommands.
Sun, 15 Apr 2012 17:51:00 +0200 Fix transport_maps function for non-existent domains v0.6.x
martin f. krafft <madduck@madduck.net> [Sun, 15 Apr 2012 17:51:00 +0200] rev 550
Fix transport_maps function for non-existent domains The postfix_transport_maps function had a bug causing 2012-04-15 17:40:22 CEST LOG: statement: SELECT transport FROM postfix_transport_map('logcheck', 'domine.madduck.net'); 2012-04-15 17:40:22 CEST ERROR: query returned no rows when the domain was not in the database. This would make did be NULL and make the query fail. This patch moves the tid query until after a check for did. If the latter is NULL, the function RETURNs (rather than fails).
Sun, 15 Apr 2012 17:36:26 +0200 Revert caching of destination interpolation v0.6.x
martin f. krafft <madduck@madduck.net> [Sun, 15 Apr 2012 17:36:26 +0200] rev 549
Revert caching of destination interpolation Since 'destination' comes from the table in the query, it cannot be cached across queries! Doh!
Sun, 15 Apr 2012 15:30:16 +0000 pgsql: update_tables_*: Added missing `NOT' to `… tid DROP NOT NULL;'. v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Sun, 15 Apr 2012 15:30:16 +0000] rev 548
pgsql: update_tables_*: Added missing `NOT' to `… tid DROP NOT NULL;'.
Sun, 15 Apr 2012 12:54:16 +0000 pgsql: Create column `note' as text. v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Sun, 15 Apr 2012 12:54:16 +0000] rev 547
pgsql: Create column `note' as text.
Sun, 15 Apr 2012 14:10:40 +0200 Add docstring for common.format_domain_default v0.6.x
martin f. krafft <madduck@madduck.net> [Sun, 15 Apr 2012 14:10:40 +0200] rev 546
Add docstring for common.format_domain_default
Sat, 14 Apr 2012 21:48:00 +0200 Document domainnote in manpages v0.6.x
martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 21:48:00 +0200] rev 545
Document domainnote in manpages 5806fb74130b did not contain this, so I must have forgotten it. Oops.
Sat, 14 Apr 2012 22:56:52 +0200 Remove domain/account notes from TODO v0.6.x
martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 22:56:52 +0200] rev 544
Remove domain/account notes from TODO
Sat, 14 Apr 2012 22:53:21 +0200 Include account note in getuser output v0.6.x
martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 22:53:21 +0200] rev 543
Include account note in getuser output Modify the getuser output to include an account note, if one is present
Sat, 14 Apr 2012 22:52:40 +0200 Display formatted notes in info output v0.6.x
martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 22:52:40 +0200] rev 542
Display formatted notes in info output If the user/domain object has an attached note, this patch makes the userinfo/domaininfo output print the note, wrapped to the terminal size.
Sat, 14 Apr 2012 21:20:06 +0200 Ignore *.egg-status build directory created by setuptools v0.6.x
martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 21:20:06 +0200] rev 541
Ignore *.egg-status build directory created by setuptools
Sat, 14 Apr 2012 15:44:23 +0200 Add user/domainnote commands to manpages v0.6.x
martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 15:44:23 +0200] rev 540
Add user/domainnote commands to manpages
Sat, 14 Apr 2012 13:29:01 +0200 Add note field to Account/Domain and CLI v0.6.x
martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 13:29:01 +0200] rev 539
Add note field to Account/Domain and CLI
Sat, 14 Apr 2012 12:58:20 +0200 Modify SQL to add note field to domain_data and users v0.6.x
martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 12:58:20 +0200] rev 538
Modify SQL to add note field to domain_data and users
Sat, 14 Apr 2012 16:02:46 +0000 man: vmm.1: subcommand's name argument is optional now. v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Sat, 14 Apr 2012 16:02:46 +0000] rev 537
man: vmm.1: subcommand's name argument is optional now. Based on martin f. krafft's v2 of changeset c340ba4bd544.
Sat, 14 Apr 2012 14:33:21 +0200 Allow username to take no argument to erase value v0.6.x
martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 14:33:21 +0200] rev 536
Allow username to take no argument to erase value Once a username has been set, it could not be removed via the UI. Now, if no argument is passed to username, the value stored is replaced with NULL.
Sat, 14 Apr 2012 12:39:06 +0200 Add inheritance as a feature to README v0.6.x
martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 12:39:06 +0200] rev 535
Add inheritance as a feature to README
Sat, 14 Apr 2012 12:37:08 +0200 Change 'force' argument to reset user records for tid/ssid/qid v0.6.x
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.
Sat, 14 Apr 2012 00:36:43 +0200 Change UI to accept 'default' to restore inherited values v0.6.x
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.
Fri, 13 Apr 2012 23:24:12 +0200 Modify userinfo output to indicate when domain defaults are displayed v0.6.x
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.
Fri, 13 Apr 2012 23:09:40 +0200 Modify Account class to handle NULL references v0.6.x
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.
Fri, 13 Apr 2012 17:49:14 +0200 Modify SQL update script to accept NULL fields for users v0.6.x
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.
Fri, 13 Apr 2012 23:49:26 +0200 man: Add examples for userservices v0.6.x
martin f. krafft <madduck@madduck.net> [Fri, 13 Apr 2012 23:49:26 +0200] rev 529
man: Add examples for userservices
Sat, 14 Apr 2012 15:11:27 +0000 Reverted previous three changesets (e09139525580, 85517c8fde36, 3acbff727626) v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Sat, 14 Apr 2012 15:11:27 +0000] rev 528
Reverted previous three changesets (e09139525580, 85517c8fde36, 3acbff727626)
Fri, 13 Apr 2012 23:24:12 +0200 Modify userinfo output to indicate when domain defaults are displayed v0.6.x
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.
Fri, 13 Apr 2012 23:09:40 +0200 Modify Account class to handle NULL references v0.6.x
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.
Fri, 13 Apr 2012 17:49:14 +0200 Modify SQL update script to accept NULL fields for users v0.6.x
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.
Sat, 14 Apr 2012 11:50:33 +0200 Add list* subcommands to TODO v0.6.x
martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 11:50:33 +0200] rev 524
Add list* subcommands to TODO
Sat, 14 Apr 2012 10:41:10 +0200 add domain/account notes to TODO v0.6.x
martin f. krafft <madduck@madduck.net> [Sat, 14 Apr 2012 10:41:10 +0200] rev 523
add domain/account notes to TODO
Fri, 13 Apr 2012 22:57:23 +0200 Add my WIP items to the TODO list v0.6.x
martin f. krafft <madduck@madduck.net> [Fri, 13 Apr 2012 22:57:23 +0200] rev 522
Add my WIP items to the TODO list
Fri, 13 Apr 2012 14:56:29 +0200 Cache interpolated destination v0.6.x
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.
Thu, 12 Apr 2012 18:22:54 +0000 man: Use example.com in catchallinfo example output. v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Thu, 12 Apr 2012 18:22:54 +0000] rev 520
man: Use example.com in catchallinfo example output.
Thu, 12 Apr 2012 18:18:02 +0000 README: reStructuredText fix: ERROR/3 and WARNING/2. v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Thu, 12 Apr 2012 18:18:02 +0000] rev 519
README: reStructuredText fix: ERROR/3 and WARNING/2.
Wed, 11 Apr 2012 16:23:27 +0200 Enable interpolation of alias destinations v0.6.x
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.
Wed, 11 Apr 2012 09:08:19 +0200 Add catch-all aliases to README/features v0.6.x
martin f. krafft <madduck@madduck.net> [Wed, 11 Apr 2012 09:08:19 +0200] rev 517
Add catch-all aliases to README/features
Tue, 10 Apr 2012 23:50:35 +0200 Add catchall subcommands to manpages v0.6.x
martin f. krafft <madduck@madduck.net> [Tue, 10 Apr 2012 23:50:35 +0200] rev 516
Add catchall subcommands to manpages
Tue, 10 Apr 2012 23:50:18 +0200 Include catch-all count in domaininfo output v0.6.x
martin f. krafft <madduck@madduck.net> [Tue, 10 Apr 2012 23:50:18 +0200] rev 515
Include catch-all count in domaininfo output
Tue, 10 Apr 2012 22:56:30 +0200 Make PL/pgSQL function feed back identity for mailboxes/relocated when there v0.6.x
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.
Tue, 10 Apr 2012 01:08:25 +0200 Fix syntax errors v0.6.x
martin f. krafft <madduck@madduck.net> [Tue, 10 Apr 2012 01:08:25 +0200] rev 513
Fix syntax errors
Tue, 10 Apr 2012 00:50:55 +0200 Modify virtual_alias_maps function to check mailboxes/relocated first v0.6.x
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
Tue, 10 Apr 2012 00:33:53 +0200 Make virtual_alias_maps function search catchall when no aliases are found v0.6.x
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
Tue, 10 Apr 2012 00:08:12 +0200 Add catchall info to domain_info output v0.6.x
martin f. krafft <madduck@madduck.net> [Tue, 10 Apr 2012 00:08:12 +0200] rev 510
Add catchall info to domain_info output
Tue, 10 Apr 2012 00:07:49 +0200 Correct syntax errors v0.6.x
martin f. krafft <madduck@madduck.net> [Tue, 10 Apr 2012 00:07:49 +0200] rev 509
Correct syntax errors
Mon, 09 Apr 2012 23:50:12 +0200 Fixup catchall_info to return iterator, not self v0.6.x
martin f. krafft <madduck@madduck.net> [Mon, 09 Apr 2012 23:50:12 +0200] rev 508
Fixup catchall_info to return iterator, not self
Mon, 09 Apr 2012 23:44:36 +0200 Correct syntax errors v0.6.x
martin f. krafft <madduck@madduck.net> [Mon, 09 Apr 2012 23:44:36 +0200] rev 507
Correct syntax errors
Mon, 09 Apr 2012 23:40:52 +0200 Teach CLI about catchall* commands v0.6.x
martin f. krafft <madduck@madduck.net> [Mon, 09 Apr 2012 23:40:52 +0200] rev 506
Teach CLI about catchall* commands
Mon, 09 Apr 2012 23:21:56 +0200 Provide catchall_* methods to the Handler class v0.6.x
martin f. krafft <madduck@madduck.net> [Mon, 09 Apr 2012 23:21:56 +0200] rev 505
Provide catchall_* methods to the Handler class
Mon, 09 Apr 2012 18:10:56 +0200 First version of a CatchallAlias class v0.6.x
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.
Mon, 09 Apr 2012 17:45:02 +0200 Add database table for catchall destinations v0.6.x
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.
Sun, 08 Apr 2012 19:05:25 +0000 pgsql: Merged types and functions into the create_tables… files. v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Sun, 08 Apr 2012 19:05:25 +0000] rev 502
pgsql: Merged types and functions into the create_tables… files.
Sun, 08 Apr 2012 16:29:37 +0000 postfix: Removed VIEW-based comments from configuration files. v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Sun, 08 Apr 2012 16:29:37 +0000] rev 501
postfix: Removed VIEW-based comments from configuration files.
Sun, 08 Apr 2012 16:20:43 +0000 pgsql: Removed most of the VIEWs. v0.6.x
Pascal Volk <user@localhost.localdomain.org> [Sun, 08 Apr 2012 16:20:43 +0000] rev 500
pgsql: Removed most of the VIEWs. There are only two views left for now: - postfix_gid - vmm_domain_info All other views have a faster replacement: plpgsql functions.
Sun, 08 Apr 2012 13:18:02 +0200 Ignore even more Debian-build-related files v0.6.x
martin f. krafft <madduck@madduck.net> [Sun, 08 Apr 2012 13:18:02 +0200] rev 499
Ignore even more Debian-build-related files
Sun, 08 Apr 2012 11:54:17 +0200 Ignore more Debian-build-related files v0.6.x
martin f. krafft <madduck@madduck.net> [Sun, 08 Apr 2012 11:54:17 +0200] rev 498
Ignore more Debian-build-related files Debian produces log and debhelper files in debian/* that do not need to be known to mercurial. Hence, this patch adds the globs to .hgignore.
Sun, 08 Apr 2012 00:02:00 +0200 Add non-root TODO v0.6.x
martin f. krafft <madduck@madduck.net> [Sun, 08 Apr 2012 00:02:00 +0200] rev 497
Add non-root TODO
(0) -300 -100 -64 +64 +100 tip