# HG changeset patch # User Pascal Volk # Date 1340919599 0 # Node ID 3238c58d01ae7f967f0a0a53e7fe53e57a6562ca # Parent a4aead244f7542a33cac86ce79199608d89d532b Released vmm-0.6.0 diff -r a4aead244f75 -r 3238c58d01ae ChangeLog --- a/ChangeLog Thu Jun 28 19:26:50 2012 +0000 +++ b/ChangeLog Thu Jun 28 21:39:59 2012 +0000 @@ -1,3 +1,2925 @@ +=== 0.6.0 === +2012-06-28 Pascal Volk + + * VirtualMailManager/Account.py, VirtualMailManager/Alias.py, + VirtualMailManager/AliasDomain.py, VirtualMailManager/Config.py, + VirtualMailManager/Domain.py, VirtualMailManager/EmailAddress.py, + VirtualMailManager/Exceptions.py, + VirtualMailManager/MailLocation.py, VirtualMailManager/Relocated.py, + VirtualMailManager/Transport.py, + VirtualMailManager/VirtualMailManager.py, + VirtualMailManager/constants/ERROR.py, + VirtualMailManager/constants/EXIT.py, + VirtualMailManager/constants/VERSION.py, + VirtualMailManager/constants/__init__.py, + VirtualMailManager/ext/Postconf.py, pgsql + /create_optional_types_and_functions-dovecot-1.2.x.pgsql, + pgsql/create_optional_types_and_functions.pgsql, + pgsql/update_tables_0.4.x-0.5.pgsql, + pgsql/update_tables_0.5.x_for_dovecot-1.2.x.pgsql, + pgsql/update_types_and_functions_0.5.x_for_dovecot-1.2.x.pgsql, + postfix/pgsql-transport.cf, update_config_0.4.x-0.5.py: + Merged changes from v0.6.x(28230a8230bf). + [a4aead244f75] [tip] + + * Close v0.6.x branch. + [28230a8230bf] + + * vmm: + vmm: Don't insert the module directory into sys.path by default. + Doesn't make much sense, if the code is installed inside sys.path. + [54a84a311654] + + * COPYING, VirtualMailManager/__init__.py, + VirtualMailManager/account.py, VirtualMailManager/alias.py, + VirtualMailManager/aliasdomain.py, + VirtualMailManager/cli/__init__.py, + VirtualMailManager/cli/config.py, VirtualMailManager/cli/handler.py, + VirtualMailManager/cli/main.py, + VirtualMailManager/cli/subcommands.py, VirtualMailManager/common.py, + VirtualMailManager/config.py, VirtualMailManager/constants.py, + VirtualMailManager/domain.py, VirtualMailManager/emailaddress.py, + VirtualMailManager/errors.py, VirtualMailManager/ext/__init__.py, + VirtualMailManager/ext/postconf.py, VirtualMailManager/handler.py, + VirtualMailManager/mailbox.py, VirtualMailManager/maillocation.py, + VirtualMailManager/network.py, VirtualMailManager/password.py, + VirtualMailManager/pycompat/__init__.py, + VirtualMailManager/pycompat/hashlib.py, + VirtualMailManager/quotalimit.py, VirtualMailManager/relocated.py, + VirtualMailManager/serviceset.py, VirtualMailManager/transport.py, + setup.py, update_config.py, vmm: + Updated copyright notices to include the year 2012. + [14abdd04ddf5] + + * TODO: + TODO: Removed "listpwschemes" entry. Was done with changeset + a64c1b5e08b4 + [11ed67ee7ebb] + + * UPGRADE: + UPGRADE: Updated documentation. + [007786e58fb7] + + * VirtualMailManager/cli/subcommands.py, man/de/man1/vmm.1, + man/man1/vmm.1: + VMM/cli/subcommands: Replaced the keyword `default' by `domain'. + Patch by Martin F. Krafft + [a75923ce2842] + +2012-06-27 Pascal Volk + + * Configure.Dovecot_2, INSTALL: + INSTALL: Added description how to create additional dove* + user/group. `doveauth' user and group for the authentication process + and the group `dovemail' for mail related Dovecot processes. + [55148bc6348e] + + * INSTALL: + INSTALL: Updated documentation. + [b17a9d7a59ae] + + * Configure.Dovecot_2, install.sh, upgrade.sh: + Configure.Dovecot_2: Added configuration documentation for Dovecot_2 + >= 2.0. + [b5bb7b34e831] + + * VirtualMailManager/account.py, + VirtualMailManager/cli/subcommands.py: + VMM: The Python 2.4.x compatibility commit - part III. + [b0165b7af7a3] + + * VirtualMailManager/account.py: + VMM/account: Check the account's transport only when we have a + transport. + [2662f4e17eb4] + + * VirtualMailManager/account.py, + VirtualMailManager/cli/subcommands.py, + VirtualMailManager/handler.py: + VMM: The Python 2.4.x compatibility commit. + [cc0f67f99780] + +2012-06-14 Pascal Volk + + * pgsql/set-permissions.py: + pgsql/set-permissions.py: Extended permissions. Postfix needs read + access on the postfix_gid view. Dovecot needs read permissions on + both mailboxformat columns. + [2fcf12fdecc2] + + * VirtualMailManager/handler.py: + VMM/handler: Restored method Handler.domain_transport(). It went + somehow lost with changeset 5806fb74130b. + [1498abbb6c91] + +2012-05-31 Pascal Volk + + * pgsql/set-permissions.py: + pgsql: Added helper script: set-permissions.py. + [fbbb16476c5b] + +2012-04-15 martin f. krafft + + * TODO, VirtualMailManager/cli/handler.py, + VirtualMailManager/cli/subcommands.py, VirtualMailManager/common.py, + VirtualMailManager/constants.py, VirtualMailManager/handler.py: + 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. + [499c63f52462] + + * man/de/man1/vmm.1, man/de/man5/vmm.cfg.5, man/man1/vmm.1, + man/man5/vmm.cfg.5: + man: escape hyphens + + Hyphens inside words must be spelt \- instead of just -. This patch + fixes up the manpages. + * * * . + [a93671970617] + + * man/de/man1/vmm.1, man/man1/vmm.1: + 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. + [6f2c41c3c7d6] + +2012-04-15 Pascal Volk + + * man/de/man1/vmm.1, man/man1/vmm.1: + man: vmm1: Use `fqdn' instead of `domain' in catchall* descriptions. + Fixed a typo s/cadd/cad/. Replaced double quotes by \(dq. + [107f7a3be9f5] + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Use the `fqdn' argument placeholder also for + catch-all subcommands. + [62f2daff853e] + +2012-04-15 martin f. krafft + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + 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). + [867d950ce7b7] + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + Revert caching of destination interpolation + + Since 'destination' comes from the table in the query, it cannot be + cached across queries! Doh! + [44a808af6cf4] + +2012-04-15 Pascal Volk + + * pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + pgsql: update_tables_*: Added missing `NOT' to `… tid DROP NOT + NULL;'. + [92ef34f07da3] + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql: + pgsql: Create column `note' as text. + [5020c56f9388] + +2012-04-15 martin f. krafft + + * VirtualMailManager/common.py: + Add docstring for common.format_domain_default + [79f09cdd1a21] + +2012-04-14 martin f. krafft + + * man/de/man1/vmm.1, man/man1/vmm.1: + Document domainnote in manpages + + 5806fb74130b did not contain this, so I must have forgotten it. + Oops. + [47254b46c361] + + * TODO: + Remove domain/account notes from TODO + [ff805bd17817] + + * VirtualMailManager/account.py: + Include account note in getuser output + + Modify the getuser output to include an account note, if one is + present + [1b3bdce0bf87] + + * VirtualMailManager/cli/subcommands.py: + 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. + [c3b98364f03d] + + * .hgignore: + Ignore *.egg-status build directory created by setuptools + [a582f1452bc0] + + * man/de/man1/vmm.1, man/man1/vmm.1: + Add user/domainnote commands to manpages + [a8ee0328f908] + + * VirtualMailManager/account.py, + VirtualMailManager/cli/subcommands.py, VirtualMailManager/domain.py, + VirtualMailManager/handler.py: + Add note field to Account/Domain and CLI + [5806fb74130b] + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + Modify SQL to add note field to domain_data and users + [1f9ea5658627] + +2012-04-14 Pascal Volk + + * man/de/man1/vmm.1, man/man1/vmm.1: + man: vmm.1: subcommand's name argument is optional now. Based on + martin f. krafft's v2 of changeset c340ba4bd544. + [9a23043b0530] + +2012-04-14 martin f. krafft + + * VirtualMailManager/cli/subcommands.py, + VirtualMailManager/handler.py, man/de/man1/vmm.1, man/man1/vmm.1: + 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. + [c340ba4bd544] + + * README: + Add inheritance as a feature to README + [e956ddc868c0] + + * VirtualMailManager/domain.py, man/de/man1/vmm.1, man/man1/vmm.1: + 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. + [6a27c7529cd7] + + * VirtualMailManager/cli/subcommands.py, + VirtualMailManager/handler.py, man/de/man1/vmm.1, man/man1/vmm.1: + 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. + [2676dbf43e1c] + +2012-04-13 martin f. krafft + + * VirtualMailManager/account.py, + VirtualMailManager/cli/subcommands.py, VirtualMailManager/common.py: + 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. + [2bb40aaef94e] + + * VirtualMailManager/account.py: + 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. + [cf3eb03c1c4f] + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + 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. + [95dd123b552e] + + * man/de/man1/vmm.1, man/man1/vmm.1: + man: Add examples for userservices + [916b468cf994] + +2012-04-14 Pascal Volk + + * VirtualMailManager/account.py, + VirtualMailManager/cli/subcommands.py, VirtualMailManager/common.py, + pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + Reverted previous three changesets (e09139525580, 85517c8fde36, + 3acbff727626) + [4b8c3f51d7da] + +2012-04-13 martin f. krafft + + * VirtualMailManager/account.py, + VirtualMailManager/cli/subcommands.py, VirtualMailManager/common.py: + 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. + [e09139525580] + + * VirtualMailManager/account.py: + 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. + [85517c8fde36] + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + 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. + [3acbff727626] + +2012-04-14 martin f. krafft + + * TODO: + Add list* subcommands to TODO + [3ffe4ee3740f] + + * TODO: + add domain/account notes to TODO + [f494a593c674] + +2012-04-13 martin f. krafft + + * TODO: + Add my WIP items to the TODO list + [dc66f66c51cf] + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + Cache interpolated destination + + Instead of running the string modification function for destination + interpolation twice, store the result once and use the stored result + subsequently. + [75d1c0d6bb8f] + +2012-04-12 Pascal Volk + + * man/man1/vmm.1: + man: Use example.com in catchallinfo example output. + [a0a27688e616] + + * README: + README: reStructuredText fix: ERROR/3 and WARNING/2. + [b1fd6f08f369] + +2012-04-11 martin f. krafft + + * README, man/de/man1/vmm.1, man/man1/vmm.1, pgsql/create_tables- + dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + 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. + [5ec2068d02af] + + * README: + Add catch-all aliases to README/features + [88466a6ba3ae] + +2012-04-10 martin f. krafft + + * man/de/man1/vmm.1, man/man1/vmm.1: + Add catchall subcommands to manpages + [b2084e7f6854] + + * VirtualMailManager/cli/subcommands.py, VirtualMailManager/domain.py, + pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + Include catch-all count in domaininfo output + [09fa019bb330] + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + 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. + [d863a44a6353] + + * VirtualMailManager/catchall.py: + Fix syntax errors + [557c4703986c] + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + Modify virtual_alias_maps function to check mailboxes/relocated + first + [821d3ffaaaca] + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + Make virtual_alias_maps function search catchall when no aliases are + found + [0244f1344b04] + + * VirtualMailManager/cli/subcommands.py, VirtualMailManager/domain.py, + VirtualMailManager/handler.py: + Add catchall info to domain_info output + [1fa354bbdb90] + + * VirtualMailManager/catchall.py: + Correct syntax errors + [1a9247e9763f] + +2012-04-09 martin f. krafft + + * VirtualMailManager/handler.py: + Fixup catchall_info to return iterator, not self + [18870919ec48] + + * VirtualMailManager/catchall.py: + Correct syntax errors + [2aae58cddfa9] + + * VirtualMailManager/cli/subcommands.py: + Teach CLI about catchall* commands + [fb0ffde628d6] + + * VirtualMailManager/handler.py: + Provide catchall_* methods to the Handler class + [3da8c919584f] + + * VirtualMailManager/catchall.py: + 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. + [f180ead60568] + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + 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. + [492c179094c9] + +2012-04-08 Pascal Volk + + * pgsql/create_optional_types_and_functions-dovecot-1.2.x.pgsql, + pgsql/create_optional_types_and_functions.pgsql, pgsql + /create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql, + pgsql/update_types_and_functions_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_types_and_functions_0.5.x-0.6.pgsql: + pgsql: Merged types and functions into the create_tables… files. + [e1b32377032f] + + * postfix/pgsql-relocated_maps.cf, postfix/pgsql-transport_maps.cf, + postfix/pgsql-virtual_alias_maps.cf, postfix/pgsql- + virtual_mailbox_maps.cf, postfix/pgsql-virtual_uid_maps.cf: + postfix: Removed VIEW-based comments from configuration files. + [f2387d60624b] + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + 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. + [5ccc9c6e5193] + +2012-04-08 martin f. krafft + + * .hgignore: + Ignore even more Debian-build-related files + [23d04d1f29e8] + + * .hgignore: + 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. + [419c929739fd] + + * TODO: + Add non-root TODO + [5b9a03762813] + +2012-04-07 Pascal Volk + + * VirtualMailManager/config.py: + VMM/config: Fixed a typo: s/DB_MUDULES/DB_MODULES/g. + [17f2c5b5098e] + +2012-04-07 martin f. krafft + + * .hgignore: + Ignore build files related to Debian packaging + + During Debian packaging, the package is built in ./debian/vmm/, and + quilt is used (./.pc/). Both directories contain only generated + files and should hence be ignored from the perspective of Mercurial. + [612a60e9d558] + + * .hgignore: + Instruct mercurial to ignore build directory + + Python's distutil builds the package into ./build/, which can and + should be ignored with respect to the repository. This patch simply + adds the appropriate line to .hgignore. + [2c5e2613eca8] + +2012-04-06 Pascal Volk + + * VirtualMailManager/handler.py: + VMM/handler: Create domain directory with umask 0022. + [30365a87650d] + +2012-04-07 martin f. krafft + + * VirtualMailManager/domain.py: + Modify address check query to obtain well-defined result + + The way in which UNION does not yield the desired result, because + (a) UNION merges results and (b) the result order is undefined. This + patch changes the query to select the counts as columns and hence + provides a well-defined order. + [e5c2b3647971] + +2012-04-06 Pascal Volk + + * postfix/pgsql-smtpd_sender_login_maps.cf: + postfix: Uncommented the query in pgsql-smtpd_sender_login_maps.cf. + [320531aa1280] + + * postfix/pgsql-transport.cf, postfix/pgsql-transport_maps.cf: + postfix: Renamed pgsql-transport.cf to pgsql-transport_maps.cf. Now + it matches pgsql-${postfix-parameter}.cf. + [9cdc6ef83265] + +2012-03-29 Pascal Volk + + * po/fr.po: + po: Updated French translation (translated by Dimitri Duc). + [e0441b07bccc] + +2012-03-13 Pascal Volk + + * po/fi.po: + po: Updated Finnish translation (translated by Jorma Karvonen). + [b8d5564b4e42] + +2011-12-13 Pascal Volk + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Fixed a TypeError in user_info(). + [fb0af82ab4af] + +2011-12-05 Pascal Volk + + * postfix/pgsql-relocated_maps.cf, postfix/pgsql-transport.cf, postfix + /pgsql-virtual_alias_maps.cf, postfix/pgsql-virtual_mailbox_maps.cf, + postfix/pgsql-virtual_uid_maps.cf: + postfix: Use pgsql functions in query templates where possible. + [ccdfbbb1bb01] + + * pgsql/create_optional_types_and_functions-dovecot-1.2.x.pgsql, + pgsql/create_optional_types_and_functions.pgsql: + pgsql: Updated required privileges for function dovecotpassword. + [10e9b4855173] + +2011-11-27 Pascal Volk + + * README: + README: Added section `Installation Prerequisites'. Reworked some + parts. + [35395b49bc44] + +2011-11-26 Pascal Volk + + * update_config.py, upgrade.sh: + update_config: Write the old package install dir to a tmp file. + + upgrade: Remove old CamelCase files. Removed some unused variables. + [fb210a116f18] + +2011-11-13 Pascal Volk + + * VirtualMailManager/serviceset.py: + VMM: The pyPgSQL compatibility commit. + [428ee9cdf1b2] + + * VirtualMailManager/cli/subcommands.py, VirtualMailManager/config.py: + VMM: The Python 2.4.x compatibility commit. + [90d69ae4f40d] + + * VirtualMailManager/relocated.py: + VMM/relocated: Don't accept something@localhost as destination. + [099de308fd98] + + * man/de/man1/vmm.1, man/man1/vmm.1: + man1: Updated configuration related descriptions/examples, + accordingly to commit 4ff0fa3ba0fa. + [b33bdc0c3669] + +2011-11-12 Pascal Volk + + * VirtualMailManager/constants.py, man/de/man1/vmm.1, + man/de/man5/vmm.cfg.5, man/man1/vmm.1, man/man5/vmm.cfg.5, setup.py: + Updated the author's e-mail address. + [6278a7a2a476] + +2011-11-12 Pascal Volk + + * man/de/man1/vmm.1, man/de/man5/vmm.cfg.5, man/man1/vmm.1, + man/man5/vmm.cfg.5: + man: Updated the URL of the bug tracker. + [86fa217cba11] + +2011-11-11 Pascal Volk + + * man/de/man5/vmm.cfg.5, man/man5/vmm.cfg.5: + man5: Updated the `usable password schemes' part. + [c30ce0e079b6] + +2011-11-10 Pascal Volk + + * man/de/man1/vmm.1, man/man1/vmm.1: + man1: Copied new formatted/translated command output into the + examples. + [e321b764268e] + +2011-11-09 Pascal Volk + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Small improvement of domaininfo's output. + Pointed out that the displayed quota limit is valid per user. + [4353981e3a7f] + + * man/de/man1/vmm.1, man/man1/vmm.1: + man1: Removed obsolete commands and added new commands. + [9b9cccebccf0] + + * man/de/man1/vmm.1: + man/de/man1: Removed translated argument names. + [8f59a2f539e7] + +2011-11-08 Pascal Volk + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Use the common output formatting in + list_pwschemes(). + [5d0114f7bb99] + + * VirtualMailManager/handler.py: + VMM/handler: Added a comment for the Translation Project. + [807ad4df0774] + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Subcommand argument placeholders are no longer + translatable. + [1ebb6b88f589] + +2011-11-07 Pascal Volk + + * po/de.po: + po: Updated German translation (translated by Mario Blättermann). + [89bf9389d62f] + + * po/vmm.pot: + po: Updated address for message-id bug reports. Looks like as sf.net + would have horrible configured mail servers. :-/ + [b4d21e8bfa00] + + * merged changes from default(c0e1fb1b0145) + [863c691d7d14] + + * po/fi.po: + po: Added Finnish translation to the repository. Many thanks to + Jorma Karvonen from the Translation Project for the work. + [c0e1fb1b0145] + + * VirtualMailManager/password.py: + VMM/password: list_schemes(): report suffixes with a leading dot. + [7d4d79ff08d0] + + * po/de.po, po/vmm.pot: + po: Updated messages template and German translation. + [b175c9f62602] + +2011-11-06 Pascal Volk + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Added new subcommand `listpwschemes' (lp). + Marked version()'s ctx argument as unused. + [a64c1b5e08b4] + + * VirtualMailManager/password.py: + VMM/password: Added function list_schemes(). + [cabdf94ec580] + + * man/de/man5/vmm.cfg.5, man/man5/vmm.cfg.5: + man5: Moved some option descriptions to section doamin, accordingly + to commit 4ff0fa3ba0fa. Added a brief explanation of which settings + will be applied in which situations. + [e57dd007d69a] + +2011-11-05 Pascal Volk + + * update_config.py: + update_config: Updated, so that the previous config modifications + will be applied to 0.5.2 configurations files. + [033a0436894f] + + * VirtualMailManager/cli/subcommands.py, VirtualMailManager/config.py, + VirtualMailManager/handler.py, vmm.cfg: + VMM/config: Moved some options to section `domain': + + old new + ------------------------------------------------------------ + account.imap -> domain.imap account.pop3 + -> domain.pop3 account.sieve -> domain.sieve + account.smtp -> domain.account + + misc.quota_bytes -> domain.quota_bytes + misc.quota_messages -> domain.quota_messages misc.transport + -> domain.transport + [4ff0fa3ba0fa] + + * VirtualMailManager/__init__.py: + VMM: Show a warning when a unsupported locale setting was detected. + [2019aa415dcd] + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Small improvement in domain_add(). Inform the + admin, when the postmaster account will be auto-created. + [7847f949d0a2] + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Fixed a small failure in alias_info(). + [b15960e9c53c] + + * TODO: + TODO: updated … + [7d27627c7fb0] + + * VirtualMailManager/domain.py: + VMM/domain: Extended Domain._chk_state() to support both states. + [f2934105181b] + +2011-11-04 Pascal Volk + + * VirtualMailManager/constants.py: + VMM/constants: Cleared out obsolete error codes. + [63ae77f05088] + + * VirtualMailManager/account.py: + VMM/account: Removed unused import. + [2408a3cd4bea] + + * VirtualMailManager/maillocation.py, + VirtualMailManager/quotalimit.py: + VMM/{maillocation,quotalimit}: Unified object initialization code. + Simply raise a ValueError for wrong values (unknown IDs). + [fd4aa073015f] + + * VirtualMailManager/errors.py, VirtualMailManager/transport.py: + VMM/transport: Reworked Transport initialization. Set the transport + id only if we could find a transport with that id. Raise a + ValueError instead of a translatable TransportError(VMMError). + VMM/errors: Deleted class TransportError, it is no longer needed. + [6826acb9b0a7] + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: domainservices: Don't fail when neither a + service nor the keyword force was provided. + [45c917e6a386] + + * VirtualMailManager/cli/subcommands.py, VirtualMailManager/domain.py, + VirtualMailManager/handler.py: + VMM/domain: Extended/updated Domain.get_info() in order to: + - include active service(s) || None + - use more understandable English terms + + VMM/cli/subcommands: Updated (order of) keys of `domaininfo' output. + .`userinfo' will always show `sieve', no longer `managesieve'. + [c31d604e26d3] + +2011-11-03 Pascal Volk + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Small indent fix. + [18b75e6a39d5] + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Added subcommand domainservices (ds). Replaced + subcommands userdisable and userenable by userservices (us). + [b8c94e06cd46] + +2011-11-02 Pascal Volk + + * VirtualMailManager/account.py, VirtualMailManager/handler.py: + VMM/account: Integrated class ServiceSet in class Account. Replaced + methods Account.enable() and Account.disable() by + Account.update_serviceset(). VMM/handler: Replaced methods + Handler.user_disable() and Handler.user_enable() by + Handler.user_services() + [95275b61ff8a] + +2011-11-01 Pascal Volk + + * VirtualMailManager/serviceset.py: + VMM/serviceset: Added @property ServiceSet.services -> dict. + [e2b9e3de2b51] + + * VirtualMailManager/account.py: + VMM/account: Sorted imports … + [abcd73f5e980] + + * VirtualMailManager/domain.py, VirtualMailManager/handler.py: + VMM/domain: Integrated class ServiceSet in class Domain. + VMM/handler: Extended Handler.domain_add() and added + Handler.domain_services(). Removed unused domain.get_gid import. + [1af5fe0683ce] + + * VirtualMailManager/serviceset.py: + VMM/serviceset: Use SERVICES inside of ServiceSet - avoid slicing. + [1a08fe35b496] + +2011-10-31 Pascal Volk + + * VirtualMailManager/serviceset.py: + VMM/serviceset: Added module constant SERVICES. + [39036f5e6387] + +2011-10-30 Pascal Volk + + * VirtualMailManager/serviceset.py: + VMM: Added new module serviceset - provides class ServiceSet. + [e35efe931af3] + +2011-10-28 Pascal Volk + + * pgsql/create_optional_types_and_functions-dovecot-1.2.x.pgsql, + pgsql/create_optional_types_and_functions.pgsql, pgsql + /create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql, + pgsql/update_types_and_functions_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_types_and_functions_0.5.x-0.6.pgsql: + pgsql: Added new table `service_set'. Moved columns `smtp', `pop3' + `imap' and `sieve' from the `users' table to the new `service_set' + table. + [9823548b2717] + +2011-10-26 Pascal Volk + + * update_config.py: + update_config: Set database.module to pyPgSQL only when psycopg2 is + unavailable. + [d296a020f440] + + * README: + README: Added contet. + [ee6f8ac06197] + + * man/de/man1/vmm.1.rst, man/de/man5/vmm.cfg.5.rst, + man/substitute_links.rst, man/substitute_links_1.rst, + man/substitute_links_5.rst: + man: Removed reStructuredText files. + [3ca31d080432] + + * man/de/man1/vmm.1, man/de/man5/vmm.cfg.5: + man: Reworked/updated German manual pages. + [c2543ddde9f5] + +2011-10-25 Pascal Volk + + * man/man1/vmm.1: + man: Added missing `.RE' macro to sub section userinfo (ui). + [ad7cfbfbc68d] + +2011-10-16 Pascal Volk + + * po/de.po: + po: Fixed 2 fatal msgfmt errors inde.po. + [fdd05a757f43] + + * po/de.po: + po: Updated German translation. + [c11edcfc6e5f] + + * VirtualMailManager/cli/subcommands.py, po/vmm.pot: + Messages: Replaced some 'Available' by 'Existing'. + [9842650569c2] + + * po/vmm.pot: + po: Regenerated vmm.pot + [0d8e7977ae63] + +2011-09-03 Pascal Volk + + * VirtualMailManager/emailaddress.py: + VMM/emailaddress: Class DestinationEmailAddress accepts also + something@localhost addresses now. + [8e41e77b84e6] + + * VirtualMailManager/handler.py: + VMM/handler: Handler.alias_delete() also use class + DestinationEmailAddress for the destination address, instead of + class EmailAddress. + [933b9debbec1] + + * VirtualMailManager/alias.py: + VMM/alias: Alias.del_destination() corrected the value assignment in + the error message's dictionary. + [8394e222aba3] + + * VirtualMailManager/alias.py: + VMM/alias: Alias._load_dests() use class DestinationEmailAddress for + destination addresses, instead of class EmailAddress. + [46c296c6e231] + +2011-07-31 Pascal Volk + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: user_add() show only generated passwords - not + the given. + [a43a2e20de71] + +2011-03-10 Pascal Volk + + * VirtualMailManager/cli/handler.py, + VirtualMailManager/ext/postconf.py, VirtualMailManager/handler.py, + VirtualMailManager/mailbox.py: + VMM: Deleted a few unused variables. + [33a45e4c80c4] + +2011-03-05 Pascal Volk + + * VirtualMailManager/network.py: + VMM/network: Added new module network. + [ff2a61e155db] + +2011-02-27 Pascal Volk + + * VirtualMailManager/cli/main.py, + VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Added function update_cmd_map(). So the items + will be added to the cmd_map when gettext's _() has been installed + -> translatable subcommand descriptions. + [d4a341248500] + +2011-02-24 Pascal Volk + + * po/vmm.pot: + po: Regenerated vmm.pot + [241b192bfcc8] + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: The keyword 'force' is no longer translatable. + [542a4d23a9f0] + + * VirtualMailManager/account.py, VirtualMailManager/alias.py, + VirtualMailManager/aliasdomain.py, + VirtualMailManager/cli/__init__.py, + VirtualMailManager/cli/handler.py, VirtualMailManager/cli/main.py, + VirtualMailManager/cli/subcommands.py, VirtualMailManager/domain.py, + VirtualMailManager/emailaddress.py, + VirtualMailManager/ext/postconf.py, VirtualMailManager/handler.py, + VirtualMailManager/password.py, VirtualMailManager/relocated.py: + VMM: Updated some messages. (doesn't, isn't) -> (does not, is not) + Added missing dots at the end of some sentences. + [8209da83e256] + + * man/man1/vmm.1, man/man5/vmm.cfg.5: + man: Replaced unnecessary \(aq glyphs in man1/vmm.1. Updated COPYING + section in man1/vmm.1 and man5/vmm.cfg.5. + [f32b323fd347] + +2011-02-22 Pascal Volk + + * VirtualMailManager/mailbox.py: + VMM/mailbox: Use the correct mailbox hierarchy separator in + Mailbox.add_boxes() for mdbox and sdbox mailbox format. + [c7a963e6cf6e] + + * VirtualMailManager/cli/subcommands.py, VirtualMailManager/common.py: + VMM: Report quota usage/limit/percentage values formatted according + to the current LC_ALL setting. + [ae1a8428298c] + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Improved legibility of domaininfo's "quota + limit" output a little bit. + [e5b3b225bd5b] + + * man/man5/vmm.cfg.5, man/man5/vmm.cfg.5.rst: + man/man5: Reworked/updated vmm.cfg.5. Removed vmm.cfg.5.rst. + [65687300ba19] + + * man/man1/vmm.1: + man/man1: Small syntax fixes in vmm.1. + [1ca025a5ce0c] + +2011-02-21 Pascal Volk + + * man/man1/vmm.1, man/man1/vmm.1.rst: + man/man1: Reworked/updated vmm.1. Removed vmm.1.rst. + reStructuredText was nice to edit but the generated output … + [2bc9c36c1387] + +2011-02-18 Pascal Volk + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Update also the RunContext's subcommand if + 'plan A' in {,alias}domain_info() fails. + [54a89c19e534] + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Fixed a msgid issue (format string with unnamed + arguments). + [f6e55b27fe07] + + * VirtualMailManager/handler.py, VirtualMailManager/quotalimit.py: + VMM: Solve the default "misc.quota_bytes = '0'" problem where it may + occur. + [3162ff959375] + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Made argument names translatable. + [58e23bd7c97f] + +2011-02-14 Pascal Volk + + * man/de/man1/vmm.1.rst, man/man1/vmm.1.rst, + man/substitute_links_1.rst: + man1/vmm.1.rst: Added subcommands domainquota and userquota. Updated + description of subcommand aliasadd. + [da80de422b3c] + +2011-02-13 Pascal Volk + + * VirtualMailManager/account.py, VirtualMailManager/domain.py: + VMM/{account,domain}: Added a versions check to the + update_quotalimit methods of classes Account and Domain. + [0c52094447b0] + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Implemented subcommands domainquota and + userquota. + [a4f5d4cd886d] + + * VirtualMailManager/domain.py: + VMM/domain: Execute the database updates of + Domain.update_{quotalimit,transport}() when argument force is True, + even when the 'new' setting is the same as the current one. + [8984b1f4e6e3] + +2011-02-12 Pascal Volk + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Divided 'quota usage' from userinfo subcommand + into 'quota storage' and 'quota messages'. + [00a8c12a3da3] + + * VirtualMailManager/quotalimit.py: + VMM/quotalimit: Don't fail in QuotaLimit.__init__, if we get the + deafult misc.quota_bytes value: '0'. + [0512d940918f] + + * VirtualMailManager/common.py: + VMM/common: Reworked human_size() once more. Return bytes w/o + prefix. Use translatable $FOO_bibyte prefixes, e.g., MiB. + [fb22773f7a85] + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Added quota limit/usage output to + {domain,user}info subcommands. + [3e5ed678d535] + +2011-02-11 Pascal Volk + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: config_get: Print configured misc.quota_bytes + in human readable format. + [cf661a40266d] + + * VirtualMailManager/common.py: + VMM/common: human_size() size argument can be also a string. Because + the default value of misc.quota_bytes is '0', a string in order to + accept also settings like '500M'. + [7f931c1ca059] + + * VirtualMailManager/common.py: + VMM/common: human_size accept also 0 as size. + [0a13849243f2] + + * VirtualMailManager/common.py: + VMM/common: Small code cleanup in human_size(). + [d3a3c6155879] + + * VirtualMailManager/common.py: + VMM/common: Added function human_size(). + [fb2ba1456bc5] + +2011-02-10 Pascal Volk + + * VirtualMailManager/domain.py: + VMM/domain: Adjusted Domain.get_info() to the updated + vmm_domain_info view. + [ffce67e3c6eb] + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + pgsql: Updated view vmm_domain_info. No longer select data we have + already. + [8217ddd5220d] + + * VirtualMailManager/account.py, VirtualMailManager/domain.py, + VirtualMailManager/handler.py: + VMM/{account,domain,handler}: Added quota limit support. A few small + modifications in class Account. + [660b42391c8e] + +2011-02-09 Pascal Volk + + * VirtualMailManager/account.py: + VMM/account: Removed unused method Account.set_transport(). + [5f7e9f778b29] + +2011-02-08 Pascal Volk + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + pgsql: Added quotalimit's bytes and messages to view + vmm_domain_info. + [dd95ed5bc9d2] + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + pgsql/{create,update}_tables*: Added the ON DELETE CASCADE clause to + table userquota{,_11}'s foreign-key constraint + fkey_userquota_uid_users. + [05dc4e1f8dff] + +2011-02-07 Pascal Volk + + * VirtualMailManager/mailbox.py: + VMM/mailbox: Added missing dummy translator (_) and comment for + method Mailbox._add_boxes. + [b7854259ad74] + + * VirtualMailManager/quotalimit.py: + VMM/quotalimit: Added new module quotalimit to the repository. + [0cae9989395b] + +2011-02-06 Pascal Volk + + * VirtualMailManager/config.py, man/de/man5/vmm.cfg.5.rst, + man/man5/vmm.cfg.5.rst, vmm.cfg: + VMM/config: Added quota_bytes and quota_messages settings. Updated + …/man5/vmm.cfg.5 and vmm.cfg. + [d3a97f7fb98a] + +2011-02-04 Pascal Volk + + * VirtualMailManager/common.py: + VMM/common: Added function size_in_bytes(). + [ac5ac03b58da] + + * pgsql/create_optional_types_and_functions-dovecot-1.2.x.pgsql, + pgsql/create_optional_types_and_functions.pgsql, pgsql + /create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql, + pgsql/update_types_and_functions_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_types_and_functions_0.5.x-0.6.pgsql: + pgsql/*: Added tables, triggers and functions for quota support. + [5e6bcb2e010e] + +2011-02-02 Pascal Volk + + * VirtualMailManager/handler.py: + VMM:/handler: Fixed typo introduced with the previous commit. + [98223e5c95e0] + + * VirtualMailManager/handler.py: + VMM/handler: Handler._make_domain_dir(): Check if the domain + directory exists before calling os.mkdir(). + [5aaf2dd6b146] + + * VirtualMailManager/alias.py, VirtualMailManager/aliasdomain.py, + VirtualMailManager/domain.py, VirtualMailManager/relocated.py, + VirtualMailManager/transport.py: + VMM/*: Use target column names in all INSERT statements. In order to + avoid trouble after the definition of a table was changed. + [7518d927d443] + +2011-02-01 Pascal Volk + + * INSTALL: + INSTALL: Updated "user_query". + [af56cee51e67] + +2011-01-28 Pascal Volk + + * VirtualMailManager/mailbox.py: + VMM/mailbox: Be more detailed if doveadm couldn't create mailboxes. + [920cb090eb09] + +2011-01-20 Pascal Volk + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Update also the RunContext's subcommand if + 'plan A' in {alias,relocated,user}_info() fails. + [2af61bc06215] + + * VirtualMailManager/cli/handler.py, VirtualMailManager/handler.py: + VMM/{,cli/}handler: Moved the 'address-in-use check' (introduced + with changeset ef99be5b7ec0) to {alias,relocated,user}_add(). + [4cbaf8d229f9] + +2011-01-19 Pascal Volk + + * VirtualMailManager/account.py: + VMM/account: Account._count_aliases() cast the EmailAddress to str, + in order to avoid errors from the database. + [ecdba68c7a2c] + +2011-01-17 Pascal Volk + + * VirtualMailManager/handler.py: + VMM/handler: Handler.relocated_add() check if the target address' + domain is known, if so add a warning when the account/alias doesn't + exist. + [1016a17684c1] + + * VirtualMailManager/handler.py: + VMM/handler: Handler._get_{account,alias,relocated}() check if the + address is already in use. + [ef99be5b7ec0] + + * VirtualMailManager/handler.py: + VMM/handler: Handler.alias_add() and Handler.relocated_add() use + DestinationEmailAddress instances for target addresses. + [3b2fd0b4e51b] + +2011-01-17 Tobias Berling + + * VirtualMailManager/alias.py: + VMM/alias.py: Fixed TypeError when calling dbc.executemany() + [1b1f8f0cc687] + + * setup.py: + setup.py: Fixed syntax error + [4dfc5f3c1f2c] + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql: + pgsql/create_tables{,-dovecot-1.2.x}.pgsql: Fixed syntax errors + [be4bd77dbe57] + +2011-01-17 Pascal Volk + + * VirtualMailManager/emailaddress.py: + VMM/emailaddress: Added class DestinationEmailAddress. + [a6ad9895989d] + +2011-01-14 Pascal Volk + + * COPYING, VirtualMailManager/__init__.py, + VirtualMailManager/account.py, VirtualMailManager/alias.py, + VirtualMailManager/aliasdomain.py, + VirtualMailManager/cli/__init__.py, + VirtualMailManager/cli/config.py, VirtualMailManager/cli/handler.py, + VirtualMailManager/cli/main.py, + VirtualMailManager/cli/subcommands.py, VirtualMailManager/common.py, + VirtualMailManager/config.py, VirtualMailManager/constants.py, + VirtualMailManager/domain.py, VirtualMailManager/emailaddress.py, + VirtualMailManager/errors.py, VirtualMailManager/ext/__init__.py, + VirtualMailManager/ext/postconf.py, VirtualMailManager/handler.py, + VirtualMailManager/mailbox.py, VirtualMailManager/maillocation.py, + VirtualMailManager/password.py, + VirtualMailManager/pycompat/__init__.py, + VirtualMailManager/pycompat/hashlib.py, + VirtualMailManager/relocated.py, VirtualMailManager/transport.py, + setup.py, update_config.py, vmm: + Updated copyright notices to include the year 2011. + [d6573da35b5f] + +2011-01-13 Pascal Volk + + * INSTALL: + merged changes from default(cfd29e65e4f2) + [61fdd77d2e65] + + * INSTALL: + INSTALL: Use the %L modifier for %u variable in password_query and + user_query. + [cfd29e65e4f2] + +2010-08-10 Pascal Volk + + * VirtualMailManager/domain.py: + VMM/domain: set_{directory,transport} make sure the domain is new. + Assertions could be optimized away. + [502d59f4bb34] + + * VirtualMailManager/cli/subcommands.py, man/de/man1/vmm.1.rst, + man/man1/vmm.1.rst, man/substitute_links_1.rst: + VMM/cli/subcommands: Added 'auto postmaster' to domain_add(). + [c2e8eab2616d] + + * VirtualMailManager/cli/handler.py, + VirtualMailManager/cli/subcommands.py, man/de/man1/vmm.1.rst, + man/man1/vmm.1.rst, man/substitute_links_1.rst: + VMM/cli/handler: Added support for random passwords in user_add(). + [971577b89d26] + +2010-08-09 Pascal Volk + + * VirtualMailManager/transport.py: + VMM/transport: Small error message 'improvement'. + [44283818f8db] + + * VirtualMailManager/config.py: + VMM/config: Added option mailbox.format to the configuration check. + [7fa919dab42c] + + * update_config.py: + update_config: Set pyPgSQL, maybe there is no psycopg2 installed. + [6fabb9cd212d] + + * man/de/man5/vmm.cfg.5.rst, man/man5/vmm.cfg.5.rst: + man5/vmm.cfg: Added description for new settings in section + database. + [095b43faaba5] + + * INSTALL, setup.py: + Updated INSTALL and setup.py. + [61e732e4cb3e] + + * VirtualMailManager/handler.py: + VMM/handler: Added support for psycopg2. + [48bf20b43f2e] + + * VirtualMailManager/cli/main.py: + VMM/cli/main: Adjusted _get_handler() to changes in config module. + [a653c43048b1] + + * VirtualMailManager/config.py: + VMM/config: Extended configuration check and raise only a + ConfigError. Added new settings 'module', 'port', and 'sslmode' to + the database section. + [2ae40cd0d213] + +2010-08-07 Pascal Volk + + * VirtualMailManager/account.py, VirtualMailManager/alias.py, + VirtualMailManager/aliasdomain.py, VirtualMailManager/domain.py, + VirtualMailManager/maillocation.py, VirtualMailManager/relocated.py, + VirtualMailManager/transport.py: + VMM/…: Provide parameters as tuple to cursor.execute(). + [22d115376e4d] + + * VirtualMailManager/handler.py: + VMM/handler: Small code cleanups. + [4bba5fb90b78] + + * VirtualMailManager/common.py: + VMM/common: Reformulated error message in exec_ok. + [b7a4d7828608] + + * VirtualMailManager/cli/config.py: + VMM/cli/config: Except the VMMError from exec_ok in configure(). + [d60ffbc0124b] + + * VirtualMailManager/config.py: + VMM/config: Use common.VERSION_RE, instead of defining the regexp + two times. + [ca7575401549] + + * VirtualMailManager/common.py: + VMM/common: Made the version re pattern object accessible as + VERSION_RE. Small 'global …' cleanups. + [586367ee042b] + +2010-08-06 Pascal Volk + + * VirtualMailManager/cli/handler.py: + VMM/cli/handler: Don't perform config and environment checks twice. + [95d45e4ec1a6] + + * VirtualMailManager/cli/subcommands.py, man/de/man1/vmm.1.rst, + man/man1/vmm.1.rst: + VMM/cli/subcommands: Added subcommands configget and configset. + [f8d5c8bb8bce] + + * VirtualMailManager/cli/config.py: + VMM/cli/config: CliConfig.set raise a ConfigError, if the new value + could not be set. + [0d2430dc6ef8] + + * VirtualMailManager/cli/main.py: + VMM/cli/main: Except more errors and handle them correct. + [9232ed7e4d85] + + * VirtualMailManager/config.py: + VMM/config: LazyConfig._get_section_option check for empty + section/option names. + [b0c971f943dc] + +2010-08-05 Pascal Volk + + * VirtualMailManager/account.py, VirtualMailManager/cli/config.py, + VirtualMailManager/cli/handler.py, + VirtualMailManager/cli/subcommands.py, + VirtualMailManager/emailaddress.py, VirtualMailManager/handler.py, + VirtualMailManager/relocated.py, po/vmm.pot: + VMM/…: Unified messages and removed non-ASCII quotes. VMM/account: + Added TP-comment back. Was accidentally removed in changeset + f9a6b6701cf9. Refreshed po/vmm.pot. + [6709d0faf2f5] + + * VirtualMailManager/cli/__init__.py, VirtualMailManager/cli/main.py, + VirtualMailManager/cli/subcommands.py, vmm: + vmm: Renamed to VirtualMailManager/cli/main.py. Splitted subcommands + out to VirtualMailManager/cli/subcommands.py. vmm: New created with + minimal code. + [4515afec62e5] + + * VirtualMailManager/cli/handler.py: + VMM/cli/handler: CliHandler.user_password: Only prompt for the + password if the Account exists. + [abff2de9eed0] + + * VirtualMailManager/account.py: + VMM/account: Made Account._services available as account.SERVICES. + [45834dcc280e] + +2010-08-04 Pascal Volk + + * VirtualMailManager/cli/handler.py, VirtualMailManager/handler.py: + VMM/{,cli/}handler: user_add: Check earlier if the account exists. + [150ddcc8b315] + +2010-08-03 Pascal Volk + + * VirtualMailManager/domain.py: + VMM/domain: Added missing comma in Domain.get_info's SELECT list. + [d24c2ea39710] + +2010-08-01 Pascal Volk + + * VirtualMailManager/handler.py, man/de/man1/vmm.1.rst, + man/man1/vmm.1.rst: + VMM/handler: Updated Handler.user_{disable,enable} methods to accept + a list of services. man/{,de/}man1/vmm.1.rst: Updated + userenable/userdisable part. + [7a471cace3ba] + + * VirtualMailManager/account.py: + VMM/account: Reworked methods enable/disable in order to accept + multiple services. + [3f550826b1cc] + +2010-07-30 Pascal Volk + + * VirtualMailManager/account.py, VirtualMailManager/handler.py, + man/de/man1/vmm.1.rst, man/man1/vmm.1.rst: + VMM/{account,handler}: Account delete, use the boolean keyword force + too. + [1ed85e696748] + + * man/de/man1/vmm.1.rst, man/man1/vmm.1.rst: + man/{,de/}man1/vmm.1.rst: Updated domaindelete part. + [352ca7f1b332] + + * VirtualMailManager/domain.py, VirtualMailManager/handler.py: + VMM/domain: Simplified Domain.delete() related methods and their + arguments, VMM/handler: Adjusted to the changes in the domain + module. + [270b57af85de] + + * VirtualMailManager/handler.py: + VMM/handler: _make_home() Create the domain directory if it doesn't + exist for some reason. + [3fe8d6cdbe3a] + + * VirtualMailManager/account.py, VirtualMailManager/handler.py: + VMM/account: Replaced property domain_directory by domain. + [41789df75339] + +2010-07-29 Pascal Volk + + * VirtualMailManager/common.py: + VMM/common: Removed unused import. + [85972d3ba936] + + * VirtualMailManager/handler.py: + VMM/handler: Use more common.lisdir() in Handler's methods _chkenv, + _delete_domain_dir, _delete_home, _get_disk_usage, _make_domain_dir, + and _make_home. Handler._make_home(): Also check if the domain + directory exists. + [bb9ff81928f1] + + * VirtualMailManager/common.py, VirtualMailManager/config.py, + VirtualMailManager/mailbox.py: + VMM/common: Replaced function is_dir() by lisdir(). + VMM/{config,mailbox}: Adjusted to the above change. + [8f8d9c4c8332] + + * VirtualMailManager/handler.py: + VMM/handler: Reworked methods _get_disk_usage, _delete_home and + _delete_domain_dir. Deleted method _isdir. + [06c0457036a0] + + * VirtualMailManager/constants.py: + VMM/constants: Added MIN_GID and MIN_UID. + [38e344ba3d0f] + +2010-07-28 Pascal Volk + + * VirtualMailManager/mailbox.py: + VMM/mailbox: Removed accidentally committed debug print statement. + [d58cc465dc61] + + * VirtualMailManager/alias.py, VirtualMailManager/cli/config.py, + VirtualMailManager/config.py, VirtualMailManager/emailaddress.py, + VirtualMailManager/mailbox.py, VirtualMailManager/relocated.py: + VMM/…: More PEP-8 fixes; eliminated __names. VMM/emailaddress: + Fixed™ methods __eq__ and __ne__. (I'm not pylint's nanny.) + [94bd10e237e5] + + * VirtualMailManager/transport.py: + VMM/transport: Converted _mixedCase method names to + _lower_case_with_underscores. Added missing docstrings. Fixed™ + methods __eq__ and __ne__. (I'm not pylint's nanny.) + [883d5cd66498] + + * VirtualMailManager/Account.py, VirtualMailManager/Alias.py, + VirtualMailManager/AliasDomain.py, VirtualMailManager/Config.py, + VirtualMailManager/Domain.py, VirtualMailManager/EmailAddress.py, + VirtualMailManager/Handler.py, VirtualMailManager/Relocated.py, + VirtualMailManager/Transport.py, VirtualMailManager/__init__.py, + VirtualMailManager/account.py, VirtualMailManager/alias.py, + VirtualMailManager/aliasdomain.py, VirtualMailManager/cli/Config.py, + VirtualMailManager/cli/Handler.py, + VirtualMailManager/cli/__init__.py, + VirtualMailManager/cli/config.py, VirtualMailManager/cli/handler.py, + VirtualMailManager/common.py, VirtualMailManager/config.py, + VirtualMailManager/domain.py, VirtualMailManager/emailaddress.py, + VirtualMailManager/errors.py, VirtualMailManager/ext/Postconf.py, + VirtualMailManager/ext/postconf.py, VirtualMailManager/handler.py, + VirtualMailManager/mailbox.py, VirtualMailManager/maillocation.py, + VirtualMailManager/password.py, VirtualMailManager/relocated.py, + VirtualMailManager/transport.py: + VMM/*: Made all modules names lowercase, adjusted imports. + [011066435e6f] + + * VirtualMailManager/Handler.py, VirtualMailManager/cli/Handler.py: + VMM//{,cli/}Handler: PEP-8-ified the Handler classes: + * converted CamelCase method names to lower_case_with_underscores + * eliminated __names + * added missing docstrings + [f4956b4ceba1] + +2010-07-27 Pascal Volk + + * VirtualMailManager/Handler.py, VirtualMailManager/cli/Handler.py: + VMM//{,cli/}Handler: Reworked configuration related parts. Renamed + attributes _Cfg -> _cfg; _cfgFileName -> _cfg_fname. Renamed methods + __chkCfgFile -> __check_cfg_file; __findCfgFile -> __find_cfg_file. + Added missing docstrings. + [4dc2edf02d11] + + * VirtualMailManager/constants.py: + VMM/constants: Added __copyright__. + [d619e97a8f18] + +2010-07-26 Pascal Volk + + * VirtualMailManager/Account.py, VirtualMailManager/Alias.py, + VirtualMailManager/AliasDomain.py, VirtualMailManager/Config.py, + VirtualMailManager/Domain.py, VirtualMailManager/EmailAddress.py, + VirtualMailManager/Handler.py, VirtualMailManager/Relocated.py, + VirtualMailManager/Transport.py, VirtualMailManager/__init__.py, + VirtualMailManager/cli/Config.py, VirtualMailManager/cli/Handler.py, + VirtualMailManager/cli/__init__.py, VirtualMailManager/common.py, + VirtualMailManager/constants.py, + VirtualMailManager/constants/ERROR.py, + VirtualMailManager/constants/EXIT.py, + VirtualMailManager/constants/__init__.py, + VirtualMailManager/constants/version.py, + VirtualMailManager/ext/Postconf.py, VirtualMailManager/mailbox.py, + VirtualMailManager/maillocation.py, VirtualMailManager/password.py: + VMM/constants: Replaced the constants subpackage by a module. + [31d8931dc535] + + * VirtualMailManager/cli/__init__.py: + VMM/cli: Forgot to remove string_io from __all__. + [81bccfd14355] + + * VirtualMailManager/cli/__init__.py: + VMM/cli: Removed misplaced function string_io. + [0b4a6e9d9f27] + + * VirtualMailManager/cli/Config.py: + VMM/cli/Config: Write warnings to stderr. Renamed method + __saveChanges to __save_changes. + [c17c46d9e440] + + * VirtualMailManager/cli/__init__.py: + VMM/cli: w_err() call os.sys.exit only if code != 0. read_pass() + write errors to stderr. And a few other small fixes. + [6f39a1e56f4a] + +2010-07-25 Pascal Volk + + * VirtualMailManager/ext/Postconf.py: + VMM/ext/Postconf: Reworked class Postconf. Added method edit(). + [a0a10100aee5] + +2010-07-23 Pascal Volk + + * VirtualMailManager/Handler.py: + VMM/Handler: Reworked __domDirMake and reamed to __make_domain_dir. + Removed the (now) unused method __makedir. + [644e2cc4a441] + + * VirtualMailManager/Handler.py, VirtualMailManager/mailbox.py: + VMM/mailbox: Added to the repository. VMM/Handler: Integrated + mailbox module. Code cleanups. + [d21423478803] + + * VirtualMailManager/Transport.py: + VMM/Transport: Small cosmetics. + [aa4a9fc31e1b] + + * VirtualMailManager/maillocation.py, man/de/man5/vmm.cfg.5.rst, + man/man5/vmm.cfg.5.rst, vmm.cfg: + VMM/maillocation: Dovecot >= 2.0.beta5 is required for `doveadm + mailbox create -s …` + [217b419d6561] + +2010-07-22 Pascal Volk + + * VirtualMailManager/Account.py: + VMM/Account: s/prefix/mbformat/ and pass the dbh to + MailLocation.__init__. + [504fd29b4712] + + * VirtualMailManager/maillocation.py: + VMM/maillocation: Renamed MailLocation's property prefix to + mbformat. + [3c62f581d17a] + + * VirtualMailManager/Config.py, man/de/man5/vmm.cfg.5.rst, + man/man5/vmm.cfg.5.rst, man/substitute_links_5.rst, vmm.cfg: + VMM/Config: Added boolean option mailbox.subscribe. + [df0f7b22540c] + + * VirtualMailManager/Config.py: + VMM/Config: Return mailbox.{folders,root} settings as Unicode. + [8dd3a107fd92] + +2010-07-21 Pascal Volk + + * VirtualMailManager/Account.py, VirtualMailManager/maillocation.py: + VMM/maillocation: Reworked class MailLocation to match the new + database structure. + [32b4a39b5640] + + * VirtualMailManager/Config.py: + VMM/Config: Added function check_mailbox_format(). + [e1d3f027dd64] + +2010-07-20 Pascal Volk + + * man/de/man5/vmm.cfg.5.rst: + man/de/man5/vmm.cfg.5.rst: Fixed a typo. + [efa001edc349] + + * man/de/man5/vmm.cfg.5.rst, man/man5/vmm.cfg.5.rst: + man/{,de/}man5/vmm.cfg.5.rst: Added mailbox.root, small updates. + [d15a27eaa9d2] + + * VirtualMailManager/Config.py, update_config.py, vmm.cfg: + VMM/Config: Added mailbox.root setting. + [ee89399346cb] + + * TODO, pgsql/create_optional_types_and_functions-dovecot-1.2.x.pgsql, + pgsql/create_optional_types_and_functions.pgsql, pgsql + /create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql, + pgsql/update_types_and_functions_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_types_and_functions_0.5.x-0.6.pgsql: + pgsql: Added support for different mailbox formats. + - users.passwd can store sha512-crypt.hex hashes now + - Added new update scripts. + [e21ceaabe871] + +2010-07-12 Pascal Volk + + * pgsql/update_tables_0.4.x-0.5.pgsql, + pgsql/update_tables_0.5.x_for_dovecot-1.2.x.pgsql, + pgsql/update_types_and_functions_0.5.x_for_dovecot-1.2.x.pgsql: + pgsql: Removed old update SQL scripts. + [62211b6a9b8e] + +2010-07-04 Pascal Volk + + * VirtualMailManager/Alias.py, VirtualMailManager/maillocation.py: + VMM/maillocation: Code cleanups. Fixed error introduced with + changeset 084300a00ee1. + [18086c6a2521] + +2010-05-18 Pascal Volk + + * VirtualMailManager/Domain.py, VirtualMailManager/Handler.py: + VMM/Domain: removed functions ace2idna() and idn2ascii(). + domainname.encode('idna')/domainname.decode('idna') works too. + [7d1bafc6fa30] + +2010-05-12 Pascal Volk + + * VirtualMailManager/Account.py, VirtualMailManager/Handler.py: + VMM/Account: replaced attribute _mid : int by _mail : MailLocation. + [a77b67673aa6] + +2010-05-11 Pascal Volk + + * TODO, VirtualMailManager/password.py: + VMM/password: added some CRYPT_* constants. Reverted modification + (284:ec1966828246) in _get_salt(). + [619dadc0fd25] + +2010-05-10 Pascal Volk + + * VirtualMailManager/Config.py, VirtualMailManager/password.py, + man/de/man5/vmm.cfg.5.rst, man/man5/vmm.cfg.5.rst: + VMM/password: adapted Blowfish/SHA-256/SHA-512 crypt() to recent + changes in the Dovecot-2.0 source tree. + + VMM/Config: Added default number of encryption rounds to the + configuration. + + man5: updated description of + misc.crypt_{blowfish,sha{256,512}}_rounds. + [7ef3f117a230] + +2010-05-09 Pascal Volk + + * VirtualMailManager/Account.py, VirtualMailManager/Alias.py, + VirtualMailManager/AliasDomain.py, VirtualMailManager/Config.py, + VirtualMailManager/Domain.py, VirtualMailManager/EmailAddress.py, + VirtualMailManager/Handler.py, VirtualMailManager/Relocated.py, + VirtualMailManager/cli/Config.py, + VirtualMailManager/ext/Postconf.py, VirtualMailManager/password.py: + VMM/…: re-indented long queries and error messages. + [e2785e04f92e] + +2010-05-05 Pascal Volk + + * VirtualMailManager/password.py: + VMM/password: generate all crypt() salts w/o trailing $ sign + [142f188f7552] + +2010-05-04 Pascal Volk + + * man/de/man5/vmm.cfg.5.rst, man/man5/vmm.cfg.5.rst: + man5: added misc.dovecot_version to the minimal config example. + [01cb71c1ae33] + + * VirtualMailManager/Config.py, VirtualMailManager/password.py: + VMM/password: moved the 'scheme check' code from pwhash() to the new + function verify_scheme(). VMM/Config: use verify_scheme() to check + the scheme when LazyConfig.set() is called. + [1e77dd639fa3] + +2010-05-03 Pascal Volk + + * VirtualMailManager/Config.py, man/de/man5/vmm.cfg.5.rst, + man/man5/vmm.cfg.5.rst: + VMM/Config: removed the default value of misc.dovecot_version. There + are too many different versions installed on different systems. So, + it doesn't make much sense to have a default value. + [e2046d47688b] + + * VirtualMailManager/Handler.py: + VMM/Handler: import the errors before raising them. Rephrased the + 'permission error' message. + [d30a94f5aef5] + + * TODO, VirtualMailManager/Config.py, VirtualMailManager/password.py, + man/de/man5/vmm.cfg.5.rst, man/man5/vmm.cfg.5.rst, + man/substitute_links_5.rst: + VMM/password: Added support Blowfish/SHA-256/SHA-512 crypt(). Also + updated Config and man section 5. + [ec1966828246] + +2010-04-30 Pascal Volk + + * VirtualMailManager/Handler.py: + VMM/Handler: code cleanups in the user/alias/relocated info methods. + [ea6d052de24a] + + * VirtualMailManager/Handler.py: + VMM/Handler: fixed destination check in Handler.aliasAdd(). + [28871c1be260] + + * VirtualMailManager/Alias.py, VirtualMailManager/Handler.py, + VirtualMailManager/cli/Handler.py: + VMM/Alias: moved the postconf stuff from the Handlers to Alias + class. + [59ff7c719697] + + * VirtualMailManager/Config.py, VirtualMailManager/Handler.py: + VMM/{Config,Handler}: moved Config.install() to + Handler.cfg_install(). Handler.cfg_install() must be called + explicitly. To avoid 'strange' problems. + [db35d2eec518] + +2010-04-29 Pascal Volk + + * VirtualMailManager/cli/Handler.py: + VMM/cli/Handler: fixed AttributeError in CliHandler.__init__(). + Attribute '_scheme' was removed in previous commit. + [74d94b867348] + + * VirtualMailManager/Handler.py: + VMM/Handler: removed password hashing related stuff. + [5d229a50b115] + + * VirtualMailManager/Handler.py, VirtualMailManager/cli/Handler.py: + VMM{,/cli}/Handler: adjusted user* methods to the changes in + Account. All user methods was renamed from userAction() to + user_action(). Added missing docstrings. + [e50ffc0b8468] + + * VirtualMailManager/Account.py: + VMM/Account: always pass the EmailAddress to the pwhash() call. + [f2ecfe0a0e09] + + * VirtualMailManager/Account.py, + VirtualMailManager/constants/ERROR.py: + VMM/Account: some modifications and small improvements in class + Account. + - replaced the tid by a Transport instance + - check mailbox format dependencies in _repare() + - reset all attributes when the Account was deleted + - don't select information, we have already, from the db + - added __nonzero__() method + [524f7ed5ad5b] + + * VirtualMailManager/password.py: + VMM/password: added small output check on _dovecotpw(). + [45ec5c3cfef4] + + * VirtualMailManager/common.py: + VMM/common: added a caching dict for version_hex()/version_str() + [77fc7138ef6a] + +2010-04-28 Pascal Volk + + * VirtualMailManager/Config.py, VirtualMailManager/Handler.py, + VirtualMailManager/__init__.py, VirtualMailManager/password.py: + VMM/Config: Added method Config.install() -> global cfg_dget(). + VirtualMailManager.Configuration removed -> some adjustments. + [446483386914] + + * INSTALL, UPGRADE: + INSTALL: dropped group mail related stuff. UPGRADE: be more details + about nobody's primary group. + [e915d4725706] + + * VirtualMailManager/Config.py, VirtualMailManager/Handler.py, + man/de/man5/vmm.cfg.5.rst, man/man5/vmm.cfg.5.rst, update_config.py, + vmm.cfg: + configuration: Dropped setting misc.gid_mail. That setting was never + useful, since none of the virtual users was a member of a system + group. + [d3389645a91d] + + * man/de/man5/vmm.cfg.5.rst, man/man5/vmm.cfg.5.rst, + man/substitute_links.rst: + man/{,de/}man5/vmm.cfg.5.rst: Updated descriptions of dovecotpw and + password_scheme settings. + [188ea8d6072f] + + * INSTALL, VirtualMailManager/password.py, + VirtualMailManager/pycompat/hashlib.py: + VMM: added new modules password and pycompat.hashlib. INSTALL: + updated + [beb8f4421f92] + + * VirtualMailManager/maillocation.py: + VMM/maillocation: Use the hex version, since we are able to convert + it to an string, in case of a failure. + [084300a00ee1] + +2010-04-27 Tobias Berling + + * VirtualMailManager/Account.py, VirtualMailManager/Handler.py, + VirtualMailManager/common.py: + VMM/{Account,common,Handler}: Improved version_hex(). + - common: version_hex() now supports 'serials' > 16. Added + version_str() as counterpart to version_hex(). + - Account, Handler: updated hardcoded Dovecot versions. + [e14c345b44a1] + +2010-04-26 Pascal Volk + + * VirtualMailManager/Account.py, VirtualMailManager/common.py, + VirtualMailManager/maillocation.py: + VMM/{Account,common,maillocation}: Dovecot version (check) fixes. + - Account: fixed versions dependencies. + - maillocation: use the version string, may be uses in a error + message. + - common: version_hex() raises a ValueError, instead of returning 0, + if the version string is invalid. + [3c0173418d5d] + +2010-04-25 Pascal Volk + + * VirtualMailManager/Account.py, VirtualMailManager/Config.py, + VirtualMailManager/Handler.py, VirtualMailManager/maillocation.py, + man/de/man5/vmm.cfg.5.rst, man/man5/vmm.cfg.5.rst, update_config.py, + upgrade.sh, vmm.cfg: + Use the complete Dovecot version, not only the concatenated major + and minor parts. (1.2.11 instead of 12). + [04fea4d8b900] + + * VirtualMailManager/common.py: + VMM/common: improved version_hex() in order to convert also alpha, + beta and release candidate versions. + [07fdc93dde9f] + +2010-04-24 Pascal Volk + + * VirtualMailManager/Config.py, VirtualMailManager/Handler.py, + VirtualMailManager/__init__.py, VirtualMailManager/common.py: + VMM: moved some non-init functions to the new common module. + Adjusted imports in the Config and Handler module. + [6eea85d8b91d] + +2010-04-23 Pascal Volk + + * setup.py: + setup.py: Added sub-package pycompat to the packages list. + [1c2241dde942] + +2010-04-22 Pascal Volk + + * VirtualMailManager/pycompat.py, + VirtualMailManager/pycompat/__init__.py: + VMM/pycompat: is now a sub-package. + [b052a2f0f5d4] + +2010-04-20 Pascal Volk + + * VirtualMailManager/Handler.py: + merged changes from default(9bf8d97ced88) + [6c699837b4d4] + + * VirtualMailManager/VirtualMailManager.py: + VMM/VMM: corrected name of password scheme PLAIN-MD4. + [9bf8d97ced88] + +2010-04-18 Tobias Berling + + * VirtualMailManager/Alias.py, VirtualMailManager/AliasDomain.py, + pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql: + VMM/Alias.py: Replaced some %r with '%s'. VMM/AliasDomain.py: + save(), switch(), delete(): Update AliasDomain._gid after database + change. Added dbc.close() to AliasDomain.delete(). + create_tables{,-dovecot-1.2.x}.pgsql: Fixed a typo. + [5b8fde01e4f0] + +2010-04-18 Pascal Volk + + * TODO, VirtualMailManager/Handler.py, VirtualMailManager/__init__.py: + VMM: added 'Configuration' variable and set_configuration(). + Handler.__init__() now exports its config via set_configuration(). + [ae80282301a3] + +2010-04-17 Pascal Volk + + * VirtualMailManager/Handler.py: + VMM/Handler: renamed some methods and added their missing + docstrings: + - cfgDget() -> cfg_dget() + - cfgPget() -> cfg_pget() + - userByID() -> user_by_uid() + [d2ddd4a6528d] + +2010-04-16 Pascal Volk + + * VirtualMailManager/AliasDomain.py, VirtualMailManager/Domain.py, + VirtualMailManager/EmailAddress.py, VirtualMailManager/Handler.py, + VirtualMailManager/__init__.py: + VMM: moved functions ace2idna(), check_domainname(), idn2ascii() and + relevant parts to the Domain module. Adjusted imports in modules + AliasDomain, EmailAddress and Handler. + [8aecc83a0d32] + + * VirtualMailManager/EmailAddress.py, VirtualMailManager/__init__.py: + VMM: moved check_localpart() to the EmailAddress module. + [58d1b6f41664] + +2010-04-15 Pascal Volk + + * VirtualMailManager/Account.py: + VMM/Account: renamed function getAccountByID -> get_account_by_uid. + Fixed AttributeError (tid) in Account._prepare(). Removed unused + imports. + [af555e6967c8] + + * VirtualMailManager/Handler.py: + VMM/Handler: Implemented Handler._chk_other_address_types(). Removed + the static methods accountExists(), aliasExists(), relocatedExists() + and _exists(). + [0963ad2f5fe2] + + * VirtualMailManager/Account.py, VirtualMailManager/Alias.py, + VirtualMailManager/Relocated.py: + VMM/{Account,Alias,Relocated}: added a address property to the + classes Account, Alias and Relocated. + [73cd082cd724] + + * VirtualMailManager/Relocated.py: + VMM/Relocated: implemented Relocated.__nonzero__() for truth value + testing. Use EmailAddress' __str__() method when raising + RelocatedErrors. + [bb7d9906c529] + + * INSTALL: + merged changes from default(dbcb29ac89fa) + [da241eacad4d] + + * INSTALL: + INSTALL: simplified the 'SETUID copy of deliver' part + [dbcb29ac89fa] + + * VirtualMailManager/Account.py: + VMM/Account: Account.get_info() use the domain's transport, if tid + matches. + [481280686789] + + * VirtualMailManager/Account.py, + VirtualMailManager/constants/ERROR.py: + VMM/Account: reworked class Account. + [f9a6b6701cf9] + +2010-04-13 Pascal Volk + + * VirtualMailManager/Handler.py: + VMM/Handler: adjusted Handler.aliasDomain*() methods to changes in + the AliasDomain class. Updated docstrings. + [698ba4208ddc] + + * VirtualMailManager/AliasDomain.py: + VMM/AliasDomain: some cleanups in class AliasDomain. Added missing + docstrings. + [30aaf2bc079c] + +2010-04-05 Pascal Volk + + * VirtualMailManager/Domain.py: + VMM/Domain: search() small code cleanups. + [496099847480] + + * VirtualMailManager/Handler.py: + VMM/Handler: small code cleanups and an improved import statement. + [2493453f2c10] + + * VirtualMailManager/Domain.py, VirtualMailManager/Handler.py: + merged changes from default(184970fd7486) + [fb6336b25b8f] + + * VirtualMailManager/Domain.py: + VMM/Domain: search() lists now all matching domains, also when the + result contains primary and alias names, but the found alias is not + an alias for any of the found primaries. + [184970fd7486] + + * VirtualMailManager/VirtualMailManager.py: + VMM/VMM: applied 'code compression' from v0.6.x(09b7e3fe29b3) to + VirtualMailManager.domainList(). + [8f56166a3283] + +2010-04-04 Tobias Berling + + * VirtualMailManager/Handler.py: + VMM/Handler: compressed Handler.domainList() and replaced “%s” with + '%s' in error message. + [09b7e3fe29b3] + +2010-04-04 Pascal Volk + + * VirtualMailManager/Account.py, VirtualMailManager/AliasDomain.py, + VirtualMailManager/Domain.py, VirtualMailManager/Handler.py: + VMM/Domain: reworked Domain class. Adjusted classes Account, + AliasDomain and Handler to changes in the Domain class. + [084331dd1e4c] + +2010-04-03 Pascal Volk + + * VirtualMailManager/Account.py, VirtualMailManager/Transport.py: + VMM/Transport: Renamed attribute/property {,_}id to {,_}tid. + [9d3405ed08e5] + +2010-04-02 Pascal Volk + + * VirtualMailManager/__init__.py: + VMM: check_localpart() use '%s' instead of %r in error messages. + [e88ba0fb1281] + +2010-03-21 Pascal Volk + + * VirtualMailManager/Handler.py: + merged changes from default(8c4df3dd2d2c) + [55503d63ba30] + + * vmm: + vmm: minimal cleanups. + [3c766114d0b9] + + * VirtualMailManager/VirtualMailManager.py: + VMM: VirtualMailManager.__pwhash() added support for 'doveadm pw'. + dovecotpw was replaced by `doveadm pw` in Dovecot v2.0. To use + doveadm instead of dovecotpw use the following settings in vmm.cfg: + [bin] dovecotpw = /path/to/doveadm [misc] dovecotvers = + 20 + [8c4df3dd2d2c] + +2010-03-03 Pascal Volk + + * man/de/man5/vmm.cfg.5.rst, man/man5/vmm.cfg.5.rst, + man/substitute_links_5.rst: + man: updated configuration manual pages (maildir.* -> mailbox.*). + [eefbe052a135] + + * VirtualMailManager/Config.py, update_config.py, vmm.cfg: + vmm.cfg: renamed maildir.folders to mailbox.folders. maildir.name + was removed. new: mailbox.format, in order to support all mailbox + formats from Dovecot. Maildir is the default format. + + Adjusted VirtualMailManager/Config and update_config.py to the + changes mentioned above. + [0fb2f12648a7] + + * VirtualMailManager/Account.py, VirtualMailManager/maillocation.py: + VMM/maillocation: MailLocation.__init__(): take a 'format' name, + instead of a 'directory' name. + - added function known_format() to the module. + + VMM/Account: Adjusted to above changes. + [a7b000ca4ac9] + +2010-03-02 Pascal Volk + + * VirtualMailManager/Account.py, + VirtualMailManager/constants/ERROR.py, + VirtualMailManager/maillocation.py, + doc/source/vmm_constants_error.rst: + VMM/Account: Adjusted to changes in maillocation.MailLocation. + VMM/maillocation: Class MailLocation added missing property `mid`. + + Added new error to VMM/constants/ERROR and + doc/source/vmm_constants_error + [87db9f1f95ea] + + * VirtualMailManager/MailLocation.py, + VirtualMailManager/maillocation.py, + doc/source/vmm_constants_error.rst: + VMM/maillocation: rewrote MailLocation class. Renamed + MailLocation.py to maillocation.py. + [311eee429f67] + +2010-03-01 Pascal Volk + + * VirtualMailManager/Account.py, VirtualMailManager/Domain.py, + VirtualMailManager/Transport.py: + VMM/Transport: reworked Transport class. Use assertions for argument + checks. Removed methods getID() and getTransport(). This values are + now accessible through the read-only attributes id and transport. + + VMM/{Account,Domain}: adjusted to modifications in Transport class. + A few code cleanups. + [a51809f7940b] + + * VirtualMailManager/pycompat.py: + VMM/pycompat: added function any() for Python 2.4 + [7e9874a50d92] + + * VirtualMailManager/Alias.py, VirtualMailManager/Handler.py, + VirtualMailManager/ext/Postconf.py: + replaced some "for x in list …" + [5c7b7cbb01cd] + +2010-02-28 Pascal Volk + + * VirtualMailManager/Alias.py, VirtualMailManager/Domain.py, + VirtualMailManager/Handler.py, VirtualMailManager/Relocated.py: + VMM/Domain: get_gid() return 0 instead of raising an Exception, if + the domain wasn't found in the database. + [d0c16e70a9fb] + +2010-02-27 Pascal Volk + + * VirtualMailManager/Alias.py, VirtualMailManager/Handler.py: + VMM/Alias: renamed Alias.add_destination() to add_destinations(). + Now it's possible to add one ore more destinations to the alias with + a single method call. + + VMM/Handler: adjusted Handler.aliasAdd() to the API changes of the + Alias class. Also use get_gid from the Domain module to get the gid + of a domain. We don't need complete Domain object, only the gid. + + Handler.getWarnings(): no longer return the __warnings list. Return + a copy instead and empty the Handler.__warnings list. + [371ae0b4443d] + + * doc/source/index.rst, doc/source/vmm_alias.rst, + doc/source/vmm_constants_error.rst, doc/source/vmm_relocated.rst: + doc: Added the alias documentation. + [8b8d632f0ef3] + + * VirtualMailManager/pycompat.py: + VMM/pycompat: added to the repository. Provides all() for Py24. + [0b6ce895e1dc] + + * VirtualMailManager/EmailAddress.py: + VMM/EmailAddress: implemented EmailAddress.__hash__(). So we can + have a set() of EmailAddress instances. + [84094c7fa28b] + + * VirtualMailManager/cli/__init__.py: + VMM/cli: small optimizations in the functions w_std() and w_err() + [eecd05e31517] + +2010-02-26 Pascal Volk + + * VirtualMailManager/Account.py, VirtualMailManager/Alias.py, + VirtualMailManager/AliasDomain.py, VirtualMailManager/Config.py, + VirtualMailManager/Domain.py, VirtualMailManager/EmailAddress.py, + VirtualMailManager/Exceptions.py, VirtualMailManager/Handler.py, + VirtualMailManager/MailLocation.py, VirtualMailManager/Relocated.py, + VirtualMailManager/Transport.py, VirtualMailManager/__init__.py, + VirtualMailManager/cli/Config.py, VirtualMailManager/cli/Handler.py, + VirtualMailManager/errors.py, VirtualMailManager/ext/Postconf.py, + doc/source/index.rst, doc/source/vmm.rst, doc/source/vmm_config.rst, + doc/source/vmm_constants_error.rst, doc/source/vmm_emailaddress.rst, + doc/source/vmm_errors.rst, doc/source/vmm_exceptions.rst, + doc/source/vmm_relocated.rst: + Moved VirtualMailManager/Exceptions to VirtualMailManager/errors. + Renamed VMM*Exception classes to *Error. No longer add the attribute + 'message' to VMMError if it doesn't exist, like in Python 2.4. It + has been deprecated as of Python 2.6. Also removed the methods + code() and msg(), the values are now accessible via the attributes + 'code' and 'msg'. + [0c8c053b451c] + +2010-02-25 Pascal Volk + + * VirtualMailManager/Alias.py, VirtualMailManager/Config.py, + VirtualMailManager/EmailAddress.py, VirtualMailManager/Handler.py, + VirtualMailManager/Relocated.py, VirtualMailManager/__init__.py, + VirtualMailManager/cli/Config.py, + VirtualMailManager/cli/__init__.py, + VirtualMailManager/constants/VERSION.py, + VirtualMailManager/constants/version.py, doc/source/vmm.rst, + doc/source/vmm_config.rst, doc/source/vmm_relocated.rst: + PEP-8-ified the work of the last days. + + Renamed methods in class Alias: addDestination() -> + add_destination() delDestination() -> del_destination() + getDestinations() -> get_destinations() + + Renamed methods in class Relocated: setDestination() -> + set_destination() getInfo() -> get_info() + + Renamed VMM/constants/VERSION.py -> VMM/constants/version.py + + Adjusted relevant parts of the documentation. + [33f727efa7c4] + +2010-02-24 Pascal Volk + + * VirtualMailManager/Exceptions.py: + VMM/Exceptions: use the inherited CTor in all VMM*Exception classes. + [84e6e898e6c5] + + * VirtualMailManager/Alias.py, VirtualMailManager/EmailAddress.py, + VirtualMailManager/Relocated.py: + VMM:/{Alias,EmailAddress,Relocated}: use assertions for argument + checks. + [1a9fee6b93bc] + + * doc/source/conf.py, doc/source/index.rst, doc/source/vmm.rst, + doc/source/vmm_constants_error.rst, doc/source/vmm_emailaddress.rst, + doc/source/vmm_exceptions.rst, doc/source/vmm_relocated.rst: + doc: extended documentation. + [77ac6f572855] + +2010-02-22 Pascal Volk + + * VirtualMailManager/Config.py: + VMM/Config: LazyConfig.getboolean(), convert the value in our + getboolean. So RawConfigParser hasn't to do the whole get() stuff + again. + [0b129678cfe1] + + * .hgignore: + Added 'doc/build' to the ignored files. + [3ddb735ec9d2] + + * VirtualMailManager/Config.py, VirtualMailManager/__init__.py, + doc/Makefile, doc/source/conf.py, doc/source/index.rst, + doc/source/vmm.rst, doc/source/vmm_config.rst: + VMM{/Config}: reduced docstrings. Added doc to the repository. + [c705a9e38962] + + * VirtualMailManager/EmailAddress.py, VirtualMailManager/Handler.py, + VirtualMailManager/__init__.py: + VMM: removed unneeded/duplicated regular expression definitions + [efa1327b721f] + + * VirtualMailManager/Config.py: + VMM/Config: moved Config.sections() to class LazyConfig. No longer + import the ENCODING from VirtualMailManager, it's no longer required + in the Config module. + [95be8f62bc0c] + +2010-02-20 Pascal Volk + + * VirtualMailManager/Config.py, VirtualMailManager/cli/Config.py: + VMM/Config: renamed LazyConfig's get_boolean() to getboolean(). + VMM/cli/Config: import required ConfigParser.RawConfigParser. + [da07dd944ad1] + +2010-02-13 Pascal Volk + + * VirtualMailManager/cli/__init__.py: + VMM/cli: added __init__.py to the repository. + [bc9726c9ad85] + + * VirtualMailManager/Config.py, VirtualMailManager/cli/Config.py: + VMM/{,cli/}Config: fixed imports. Small code cleanups and cosmetic. + [83938336c518] + +2010-02-12 Pascal Volk + + * VirtualMailManager/Alias.py: + VMM/Alias: small code cleanups and cosmetic. + [4d601240b7db] + + * VirtualMailManager/Relocated.py: + VMM/Relocated: small code cleanups and cosmetic. + [43e7c8b440da] + + * VirtualMailManager/Config.py: + VMM/Config: LazyConfigOption.__init__() cast 'default' to 'cls'. If + the default value is not None, make sure it has the proper type. + [dbb0f7ed7858] + +2010-02-11 Pascal Volk + + * VirtualMailManager/Config.py: + VMM/Config: attributes of class LazyConfigOption are read-only now. + Some small code cleanups. + [983cf98d5881] + + * VirtualMailManager/AliasDomain.py, VirtualMailManager/Domain.py, + VirtualMailManager/EmailAddress.py, VirtualMailManager/__init__.py: + VMM: renamed function chk_domainname() -> check_domainname(). Moved + EmailAddress.check_localpart() -> + VirtualMailManager.check_localpart(). Some small code cleanups in + class EmailAddress. + [0684790fff7c] + +2010-02-10 Pascal Volk + + * VirtualMailManager/Alias.py, VirtualMailManager/Domain.py, + VirtualMailManager/Relocated.py: + VMM/Domain: added function get_gid() to the Domain module. We don't + need to load all the domain related information from the database, + when we need only the GID of a domain. For example in the Alias or + Relocated classes. + [02d467e4fbab] + + * VirtualMailManager/Handler.py, VirtualMailManager/Relocated.py: + VMM/{Relocated,Handler}: reworked Relocated class, adjusted Handler. + [d2712e8c724e] + + * VirtualMailManager/Alias.py, VirtualMailManager/Handler.py: + VMM/{Alias,Handler}: reworked Alias class, adjusted Handler class. + Handler: + - attribute _dbh is no longer private, the VMM/cli/Handler uses it + also. + - adjusted to changes in Alias and EmailAddress classes. + [65a3163bd113] + +2010-02-09 Pascal Volk + + * VirtualMailManager/EmailAddress.py: + VMM/EmailAddress: reworked class EmailAddress again. The attributes + domainname and localpart are now read-only. + [05dd49fc3ea1] + + * VirtualMailManager/EmailAddress.py: + VMM/EmailAddress: reworked once more. + - moved EmailAddress.__chkLocalpart() -> __module__.check_localpart() + - renamed EmailAddress.__chkAddress() -> EmailAddress._chk_address() + - attributes domainname and localpart are no longer protected + - added missing doc strings. + [6c06edb5b2d2] + +2010-02-08 Pascal Volk + + * VirtualMailManager/EmailAddress.py: + VMM/EmailAddress: rework EmailAddress class. + [a259bdeaab5c] + +2010-02-07 Pascal Volk + + * VirtualMailManager/Handler.py: + VMM/Handler: fixed a SyntaxError. Oops + [0854fb9f3bc5] + + * VirtualMailManager/Handler.py: + VMM/Handler: __mailDirMake() add warning for skipped mailboxes. + - domainInfo() removed old deprecated warning. + - fixed PEP8 warnings. + [db77501aeaed] + + * VirtualMailManager/Handler.py, VirtualMailManager/cli/Handler.py: + VMM/{,cli/}Handler: reverted most of cs cf1b5f22dbd2 added a cli + handler. Moved the interactive stuff from VMM/Handler to the derived + VMM/cli/Handler. + [1903d4ce97d7] + +2010-02-06 Pascal Volk + + * VirtualMailManager/cli/CliConfig.py, + VirtualMailManager/cli/Config.py: + moved VMM/cli/CliConfig to VMM/cli/Config + [e63853509ad0] + + * VirtualMailManager/Config.py, VirtualMailManager/Handler.py, + VirtualMailManager/__init__.py, vmm: + VMM/Handler: __init__ accepts now a config_type ('default'||'cli'). + - fixed syntax errors, introduced with the last commit. VMM/Config: + added Config.configure() -> NotImplementedError. VMM/__init__: + install gettext global, everything depends on it. + [cf1b5f22dbd2] + + * VirtualMailManager/Config.py, VirtualMailManager/Handler.py, + VirtualMailManager/__init__.py, VirtualMailManager/cli/CliConfig.py: + VMM/{,cli/Cli}Config: Moved interactive stuff to new CliConfig + class. Renamed Config.getsections() to Config.sections(). Small + cosmetics. + [38b9a9859749] + +2010-02-05 Pascal Volk + + * VirtualMailManager/Handler.py, VirtualMailManager/cli/handler.py: + moved VMM/cli/handler to VMM/Handler + [18757fd45e60] + + * VirtualMailManager/Account.py, VirtualMailManager/Alias.py, + VirtualMailManager/AliasDomain.py, VirtualMailManager/Config.py, + VirtualMailManager/Domain.py, VirtualMailManager/EmailAddress.py, + VirtualMailManager/MailLocation.py, VirtualMailManager/Relocated.py, + VirtualMailManager/Transport.py, VirtualMailManager/__init__.py, + VirtualMailManager/cli/handler.py, + VirtualMailManager/ext/Postconf.py, vmm: + VMM/*: Moved some methods from classes to modules __init__. + - Adjusted many import statements. + - Small adjustments and whitespace cosmetics in Config.py + [6e1ef32fbd82] + +2010-02-04 Pascal Volk + + * VirtualMailManager/VirtualMailManager.py, + VirtualMailManager/cli/handler.py: + moved VMM/VMM to VMM/cli/handler + [d0425225ce52] + +2010-02-02 Pascal Volk + + * vmm: + vmm: reworked subcommand/arguments mapping. + [eb4c73d9d0a4] + +2010-02-01 Pascal Volk + + * VirtualMailManager/VirtualMailManager.py: + VMM/VMM: Allow version/help subcommands even with missing + configuration options. + [84811fcc3c69] + + * update_config.py: + update_config: do not add options w/ default values. remove + config.done + [866a6d679fce] + + * VirtualMailManager/Config.py, + VirtualMailManager/VirtualMailManager.py, man/de/man5/vmm.cfg.5.rst, + man/man5/vmm.cfg.5.rst, vmm: + VMM/Config: dropped option config.done + [f8279c90e99c] + +2010-01-30 Pascal Volk + + * man/de/man1/vmm.1.rst, man/de/man5/vmm.cfg.5.rst, + man/man1/vmm.1.rst, man/man5/vmm.cfg.5.rst, + man/substitute_links.rst, man/substitute_links_1.rst, + man/substitute_links_5.rst, po/de.po: + man: updated documentation … + [3d09c657e9e5] + +2010-01-29 Pascal Volk + + * VirtualMailManager/Config.py, po/de.po, po/vmm.pot: + po: Quick refresh - for documentation purpose. + [9480f2b15129] + +2010-01-26 Pascal Volk + + * man/de/man5/vmm.cfg.5.rst, man/man5/vmm.cfg.5.rst: + man/{,de/}man5: added a note about how to use default settings. + man/de/man5: s/Abschnitt*/Sektion*/g + [ec2e1df8bb10] + +2010-01-25 Pascal Volk + + * man/de/man5/vmm.cfg.5.rst, man/man5/vmm.cfg.5.rst, vmm.cfg: + man: Added used default values to manual. + [cc0d79842fdf] + +2010-01-24 Pascal Volk + + * VirtualMailManager/Config.py, + VirtualMailManager/VirtualMailManager.py, vmm: + VMM/VMM: allow configure subcommand also with missing settings. + Removed method VirtualMailManager.setupIsDone() + + VMM/Config: Config.load() added 'finally' clause. + [b241272eb1bd] + + * VirtualMailManager/Config.py, + VirtualMailManager/VirtualMailManager.py, + VirtualMailManager/__init__.py, vmm: + VMM/Config: reworked configuration handling. Implemented + LazyConfig(RawConfigParser) and LazyConfigOption(object) Rewrote + Config class: + * use default values and added some validation stuff + * removed attributes: __VMMsections and __changes + * replaced methods __chkSections() and __chkOptions() with __chkCfg + + VMM/VMM: Adjusted to reworked Config class. + * removed attribute __cfgSections + * removed methods: cfgGetBoolean(), cfgGetInt(), cfgGetString() + * added methods: cfgDget(), cfgPget(), cfgSet() + + VMM/__init__: added function get_unicode() + + vmm: Adjusted to replaced methods in VMM/VMM. + [974bafa59330] + +2010-01-22 Pascal Volk + + * VirtualMailManager/Config.py: + branch merge + [c0e2c7687dd3] + + * VirtualMailManager/Config.py: + VMM/Config: Fixed error handling of missing sections in vmm.cfg. + [6526072ec709] + + * VirtualMailManager/Config.py: + VMM/Config: Fixed error handling of missing sections in vmm.cfg. + [6f8ac86d1611] + +2010-01-18 Pascal Volk + + * TODO, man/de/man5/vmm.cfg.5, man/de/man5/vmm.cfg.5.rst, + man/man5/vmm.cfg.5, man/man5/vmm.cfg.5.rst: + man: reworded some parts. + [d9ca5c46c1fa] + + * man/de/man5/vmm.cfg.5, man/de/man5/vmm.cfg.5.rst, + man/man5/vmm.cfg.5, man/man5/vmm.cfg.5.rst: + man: updated man/{de/,}man5/vmm.cfg.5, using reStructuredText now + [a72908248153] + +2010-01-14 Pascal Volk + + * VirtualMailManager/Config.py, + VirtualMailManager/VirtualMailManager.py, update_config.py, vmm, + vmm.cfg: + vmm.cfg: a few re-renamed configuration options. + + old new + -------------------------------------------------- + account.password_len -> account.password_length domain.force_del + -> domain.force_deletion misc.base_dir -> misc.base_directory + misc.dovecot_vers -> misc.dovecot_version + [fd496561acc6] + +2010-01-13 Pascal Volk + + * install.sh, update_config.py, update_config_0.4.x-0.5.py, + upgrade.sh: + update_config.py: adjusted functions stuff to renamed settings. + Finally renamed update_config_0.4.x-0.5.py to update_config.py - no + more version information in the filename. + + *.sh: removed .svn directory exclusion from find command. + [bb58aedefa3a] + + * VirtualMailManager/Config.py, + VirtualMailManager/VirtualMailManager.py, vmm, vmm.cfg: + vmm.cfg: dealt with the most overdue section/option renaming. Added + new options. Details: + + old new + ------------------------------------------------------------ + domdir.mode -> domain.directory_mode domdir.delete + -> domain.delete_directory domdir.base -> + misc.base_dir domdir -> _section domdir + deleted_ + + maildir.mode -> account.directory_mode + maildir.diskusage -> account.disk_usage maildir.delete + -> account.delete_directory + + misc.forcedel -> domain.force_del misc.passwdscheme + -> misc.password_scheme misc.dovecotvers -> + misc.dovecot_vers + + services.smtp -> account.smtp services.pop3 + -> account.pop3 services.imap -> account.imap + services.sieve -> account.sieve services + -> _section services deleted_ + + _NEW_.random_password -> account.random_password + _NEW_.password_len -> account.password_len + _NEW_.auto_postmaster -> domain.auto_postmaster + [b152ad5c7071] + +2010-01-04 Pascal Volk + + * INSTALL: + INSTALL: Adapted pgsql configuration steps to that in the wiki. + (Closes: #2922030) + [7e50e4c49ed7] + +2010-01-02 Pascal Volk + + * install.sh, upgrade.sh: + *.sh: Added --force option to python setup.py install call. + upgrade.sh: Removed old cleanup code. + [67dc18294de6] + + * setup.py: + setup.py: Fixed a UserWarning that may occur with older Python. + [1981f285f0c0] + + * COPYING, VirtualMailManager/Account.py, VirtualMailManager/Alias.py, + VirtualMailManager/AliasDomain.py, VirtualMailManager/Config.py, + VirtualMailManager/Domain.py, VirtualMailManager/EmailAddress.py, + VirtualMailManager/Exceptions.py, + VirtualMailManager/MailLocation.py, VirtualMailManager/Relocated.py, + VirtualMailManager/Transport.py, + VirtualMailManager/VirtualMailManager.py, + VirtualMailManager/__init__.py, + VirtualMailManager/constants/ERROR.py, + VirtualMailManager/constants/EXIT.py, + VirtualMailManager/constants/VERSION.py, + VirtualMailManager/constants/__init__.py, + VirtualMailManager/ext/Postconf.py, + VirtualMailManager/ext/__init__.py, man/de/man1/vmm.1, + man/de/man5/vmm.cfg.5, man/man1/vmm.1, man/man5/vmm.cfg.5, po/de.po, + setup.py, update_config_0.4.x-0.5.py, vmm: + Updated copyright notices to include the year 2010. Also corrected + the name of the copyright holder and updated the e-mail address. + [0ac9ef587769] + +2009-12-27 Pascal Volk + + * .hgtags: + Removed the svn-ish tag trunk + [b62aa4aabcd0] + +2009-10-23 Pascal Volk + + * create_optional_types_and_functions-dovecot-1.2.x.pgsql, + create_optional_types_and_functions.pgsql, create_tables- + dovecot-1.2.x.pgsql, create_tables.pgsql, pgsql + /create_optional_types_and_functions-dovecot-1.2.x.pgsql, + pgsql/create_optional_types_and_functions.pgsql, pgsql + /create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.4.x-0.5.pgsql, + pgsql/update_tables_0.5.x_for_dovecot-1.2.x.pgsql, + pgsql/update_types_and_functions_0.5.x_for_dovecot-1.2.x.pgsql, + update_tables_0.4.x-0.5.pgsql, + update_tables_0.5.x_for_dovecot-1.2.x.pgsql, + update_types_and_functions_0.5.x_for_dovecot-1.2.x.pgsql: + *.pgsql: moved to pgsql/ + [639cf4003965] + +2009-10-22 Pascal Volk + + * install.sh, pgsql-relocated_maps.cf, pgsql- + smtpd_sender_login_maps.cf, pgsql-transport.cf, pgsql- + virtual_alias_maps.cf, pgsql-virtual_gid_maps.cf, pgsql- + virtual_mailbox_domains.cf, pgsql-virtual_mailbox_maps.cf, pgsql- + virtual_uid_maps.cf, postfix/pgsql-relocated_maps.cf, postfix/pgsql- + smtpd_sender_login_maps.cf, postfix/pgsql-transport.cf, postfix + /pgsql-virtual_alias_maps.cf, postfix/pgsql-virtual_gid_maps.cf, + postfix/pgsql-virtual_mailbox_domains.cf, postfix/pgsql- + virtual_mailbox_maps.cf, postfix/pgsql-virtual_uid_maps.cf, + upgrade.sh: + Moved Postfix PostgreSQL client configuration files into the postfix + directory. + [78b6b06188d3] + + * VirtualMailManager/VirtualMailManager.py, + VirtualMailManager/constants/ERROR.py: + VMM: Don't prompt endless for a password. Stop after 3rd failure. + [6949f6eaf26e] + +2009-10-20 Pascal Volk + + * po/vmm.pot, vmm: + vmm: plan_a_b s/address/object/ + [eb3ccf9484b3] + + * VirtualMailManager/Account.py, + VirtualMailManager/VirtualMailManager.py, po/vmm.pot, vmm: + Added comments for the Translation Project. Updated PO template. + [a849843115e9] + +2009-10-19 Pascal Volk + + * VirtualMailManager/Account.py, VirtualMailManager/Alias.py, + VirtualMailManager/AliasDomain.py, VirtualMailManager/Domain.py, + VirtualMailManager/EmailAddress.py, VirtualMailManager/Relocated.py, + VirtualMailManager/VirtualMailManager.py, + VirtualMailManager/ext/Postconf.py, vmm: + Fixed some grammar errors and typos. (Reported by Clytie Siddall) + [eb866ebb9f2e] + +2009-10-11 Pascal Volk + + * po/vi.po: + Added the Vietnamese translation to the repository. Many thanks to + Clytie Siddall from the Translation Project for the work. + [6e6488722807] + +2009-09-29 Pascal Volk + + * po/nl.po: + Updated Dutch translation (translated by Erwin Poeze). + [f0386ee0c7e8] + +2009-09-10 Pascal Volk + + * VirtualMailManager/__init__.py: + Ignore unsupported locale setting and silently fall back to 'C'. + [3dbee02711cd] + +2009-09-09 Pascal Volk + + * .hgtags: + Added tag vmm-0.5.2 for changeset 3e972996da7f + [350488efe67d] + + * ChangeLog, NEWS, VirtualMailManager/constants/VERSION.py, setup.py: + Released vmm-0.5.2 + [3e972996da7f] [vmm-0.5.2] + === 0.5.2 === 2009-09-09 Pascal Volk diff -r a4aead244f75 -r 3238c58d01ae NEWS --- a/NEWS Thu Jun 28 19:26:50 2012 +0000 +++ b/NEWS Thu Jun 28 21:39:59 2012 +0000 @@ -1,3 +1,43 @@ +v0.6.0 2012-06-28 Pascal Volk + + * Now vmm supports Dovecot v.2.0.x and v2.1.x + * Added support for Psycopg 2 + * Added support for Blowfish-, SHA-256- and SHA-512-crypt password + hashes. Works also with Dovecot < v2.0.x. + New subcommand: listpwschemes + * Added support for PostgreSQL-based dictionary quota limits per user. + Configurable globally and per domain. New commands: domainquota and + userquota. (Requires Dovecot >= v1.1.2) + * Command aliasadd accepts multiple destinations. + * Command domainadd can automatically create a postmaster account. + * Command useradd can generate random passwords. + * Notes can be assigned to domains and accounts (by Martin F. Krafft). + New subcommands domainnote and usernote. + * The subcommands userenable and userdisable have been replaced by + userservices. It is now also possible to enable/disable services per + domain with the additional subcommand domainservices. + * New translation: Vietnamese + + Catch-all support (by Martin F. Krafft) New subcommands: catchalladd, + catchalldelete and catchallinfo. + + Interpolated alias destinations (by Martin F. Krafft). For example: + The alias postmaster@example.org → postmaster+%d@admin.example.org + will forward mails addressed to postmaster@example.org to + postmaster+example.org@admin.example.org. + + New subcommands: configget and configset. + + New subcommands by Martin F. Krafft: listaddresses, listaliases, + listrelocated and listusers + + Added support for Dovecot's own high-performance mailbox formats + single- and multi-dbox. + - Fixed Python 2.6 DeprecationWarnings + - Command domaindelete replaced keywords 'delalias', 'deluser' and + 'delall' by the keyword 'force'. + - Command listdomains lists now all matching domains, also when the + result contains primary and alias names, but the found alias is not + alias for any of the found primaries. + - Commands userenable/userdisable accept multiple service names. The + keyword 'all' has been removed. + - Command userdelete replaced keyword 'delalias' by 'force'. + v0.5.2 2009-09-09 Pascal Volk * Now vmm supports Dovecot v1.2.x. diff -r a4aead244f75 -r 3238c58d01ae VirtualMailManager/constants.py --- a/VirtualMailManager/constants.py Thu Jun 28 19:26:50 2012 +0000 +++ b/VirtualMailManager/constants.py Thu Jun 28 21:39:59 2012 +0000 @@ -15,8 +15,8 @@ __all__ = ['__author__', '__date__', '__version__'] AUTHOR = 'Pascal Volk ' -RELDATE = '2009-09-09' -VERSION = '0.5.2' +RELDATE = '2012-06-28' +VERSION = '0.6.0' __author__ = AUTHOR __copyright__ = 'Copyright (c) 2007-2012 %s' % __author__ __date__ = RELDATE diff -r a4aead244f75 -r 3238c58d01ae setup.py --- a/setup.py Thu Jun 28 19:26:50 2012 +0000 +++ b/setup.py Thu Jun 28 21:39:59 2012 +0000 @@ -7,7 +7,7 @@ from distutils.core import setup from distutils.dist import DistributionMetadata -VERSION = '0.5.2' +VERSION = '0.6.0' descr = 'Tool to manage mail domains/accounts/aliases for Dovecot and Postfix' long_description = """ @@ -29,8 +29,10 @@ 'License :: OSI Approved :: BSD License', 'Natural Language :: Dutch', 'Natural Language :: English', + 'Natural Language :: Finnish', 'Natural Language :: French', 'Natural Language :: German', + 'Natural Language :: Vietnamese', 'Operating System :: POSIX', 'Operating System :: POSIX :: BSD', 'Operating System :: POSIX :: Linux',