Hello community, here is the log from the commit of package postfixadmin for openSUSE:Factory checked in at 2017-02-12 00:49:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/postfixadmin (Old) and /work/SRC/openSUSE:Factory/.postfixadmin.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "postfixadmin" Changes: -------- --- /work/SRC/openSUSE:Factory/postfixadmin/postfixadmin.changes 2016-09-12 13:28:09.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.postfixadmin.new/postfixadmin.changes 2017-02-12 00:49:57.653187522 +0100 @@ -1,0 +2,14 @@ +Wed Feb 8 21:25:52 UTC 2017 - [email protected] + +- update to PostfixAdmin 3.0.2: + - SECURITY: don't allow to delete protected aliases (CVE-2017-5930, boo#1024211) + - fix VacationHandler for PostgreSQL + - AliasHandler: restrict mailbox subquery to allowed and specified domains + to improve performance on setups with lots of mailboxes + - allow switching between dovecot:* password schemes while still accepting + passwords hashed using the previous dovecot:* scheme + - FetchmailHandler: use a valid date as default for 'date' + - fix date formatting in non-english languages when using PostgreSQL + - various small fixes + +------------------------------------------------------------------- Old: ---- postfixadmin-3.0.tar.gz New: ---- postfixadmin-3.0.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ postfixadmin.spec ++++++ --- /var/tmp/diff_new_pack.4aPnRv/_old 2017-02-12 00:49:59.032991058 +0100 +++ /var/tmp/diff_new_pack.4aPnRv/_new 2017-02-12 00:49:59.036990488 +0100 @@ -1,7 +1,7 @@ # # spec file for package postfixadmin # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: postfixadmin -Version: 3.0 +Version: 3.0.2 Release: 0 Url: http://postfixadmin.sourceforge.net/ Source0: http://sourceforge.net/projects/postfixadmin/files/postfixadmin/%{name}-%{version}/%{name}-%{version}.tar.gz ++++++ postfixadmin-3.0.tar.gz -> postfixadmin-3.0.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/CHANGELOG.TXT new/postfixadmin-3.0.2/CHANGELOG.TXT --- old/postfixadmin-3.0/CHANGELOG.TXT 2016-09-10 22:02:33.000000000 +0200 +++ new/postfixadmin-3.0.2/CHANGELOG.TXT 2017-02-08 21:46:10.000000000 +0100 @@ -7,7 +7,27 @@ # Further details on the project are available at http://postfixadmin.sf.net # # Last update: -# $Id: CHANGELOG.TXT 1861 2016-09-10 20:02:33Z christian_boltz $ +# $Id: CHANGELOG.TXT 1895 2017-02-08 20:46:10Z christian_boltz $ + +Version 3.0.2 - 2017/02/08 - SVN r1895 +------------------------------------------------- + + - SECURITY: don't allow to delete protected aliases (CVE-2017-5930, PR#23) + - fix VacationHandler for PostgreSQL + - AliasHandler: restrict mailbox subquery to allowed and specified domains + to improve performance on setups with lots of mailboxes + - allow switching between dovecot:* password schemes while still accepting + passwords hashed using the previous dovecot:* scheme + - FetchmailHandler: use a valid date as default for 'date' + - fix date formatting in non-english languages when using PostgreSQL + - debian packaging: improve dependencies, remove old templates_c/ files + - various small fixes + +Version 3.0.1 - 2016/09/19 - SVN r1870 +------------------------------------------------- + + - add missing Smarty files to Debian package + (no changes to PostfixAdmin, therefore only released as Debian packages) Version 3.0 - 2016/09/11 - SVN r1861 ------------------------------------------------- @@ -452,8 +472,21 @@ - postfixadmin.docs: removed redundant changelog file - debian/postfixadmin.postrm: Call wwwconfig scripts only if they are existing +Version 2.3.8 - 2015/10/07 - SVN r1814 (postfixadmin-2.3 branch) +---------------------------------------------------------------- + + - fix query to enable/disable alias in edit-mailbox for PostgreSQL (#311) + - don't prefill username in users/ login on failed logins - fixes (probably + harmless) XSS + - fix show_gen_status() to properly escape mail addresses in query (#356) + - fix escaping in create-admin, create-mailbox and fetchmail templates - + fixes (harmless) XSS on form validation errors + - don't echo the password back to the browser in the fetchmail form + - allow MariaDB in Debian package dependencies + Version 2.3.7 - 2014/02/20 - SVN r1651 (postfixadmin-2.3 branch) ---------------------------------------------------------------- + - SECURITY: fix SQL injection in show_gen_status() - lt.lang, da.lang translation update - when enabling/disabling a mailbox, also update the corresponding alias diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/INSTALL.TXT new/postfixadmin-3.0.2/INSTALL.TXT --- old/postfixadmin-3.0/INSTALL.TXT 2016-01-12 13:07:25.000000000 +0100 +++ new/postfixadmin-3.0.2/INSTALL.TXT 2016-10-20 23:26:13.000000000 +0200 @@ -22,7 +22,7 @@ Users check out: - the PostfixAdmin documentation in the DOCUMENTS/ directory - - our wiki at http://sourceforge.net/apps/mediawiki/postfixadmin/ + - our wiki at https://sourceforge.net/p/postfixadmin/wiki/ There are also lots of HOWTOs around the web. Be warned that many of them (even those listed below) may be outdated or incomplete. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/VIRTUAL_VACATION/vacation.pl new/postfixadmin-3.0.2/VIRTUAL_VACATION/vacation.pl --- old/postfixadmin-3.0/VIRTUAL_VACATION/vacation.pl 2016-08-25 20:56:02.000000000 +0200 +++ new/postfixadmin-3.0.2/VIRTUAL_VACATION/vacation.pl 2017-02-08 21:24:31.000000000 +0100 @@ -1,8 +1,13 @@ -#!/usr/bin/perl -w +#!/usr/bin/perl -X +# Note - 2017/02/08 DG : +# Yes - I know -X (^) is not ideal. +# Patches are welcome to remove the dependency on Mail::Sender. +# Until then, we need -X to stop it failing with warnings like +# defined(@array) is deprecated at .../perl5/Mail/Sender.pm line 318. # -# Virtual Vacation 4.0r1 +# Virtual Vacation 4.0 # -# $Revision: 1857 $ +# $Revision: 1893 $ # Originally by Mischa Peters <mischa at high5 dot net> # # Copyright (c) 2002 - 2005 High5! diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/config.inc.php new/postfixadmin-3.0.2/config.inc.php --- old/postfixadmin-3.0/config.inc.php 2016-04-12 01:54:34.000000000 +0200 +++ new/postfixadmin-3.0.2/config.inc.php 2016-10-20 23:26:13.000000000 +0200 @@ -8,7 +8,7 @@ * * Further details on the project are available at http://postfixadmin.sf.net * - * @version $Id: config.inc.php 1833 2016-04-11 23:54:34Z christian_boltz $ + * @version $Id: config.inc.php 1876 2016-10-20 21:26:13Z christian_boltz $ * @license GNU GPL v2 or later. * * File: config.inc.php @@ -137,7 +137,7 @@ // system = whatever you have set as your PHP system default // cleartext = clear text passwords (ouch!) // mysql_encrypt = useful for PAM integration -// authlib = support for courier-authlib style passwords +// authlib = support for courier-authlib style passwords - also set $CONF['authlib_default_flavor'] // dovecot:CRYPT-METHOD = use dovecotpw -s 'CRYPT-METHOD'. Example: dovecot:CRAM-MD5 // IMPORTANT: // - don't use dovecot:* methods that include the username in the hash - you won't be able to login to PostfixAdmin in this case @@ -146,6 +146,7 @@ $CONF['encrypt'] = 'md5crypt'; // In what flavor should courier-authlib style passwords be encrypted? +// (only used if $CONF['encrypt'] == 'authlib') // md5 = {md5} + base64 encoded md5 hash // md5raw = {md5raw} + plain encoded md5 hash // SHA = {SHA} + base64-encoded sha1 hash @@ -261,7 +262,7 @@ PostfixAdmin, but it does not create it in the database. You have to do that yourself. Please follow the naming policy for custom database fields and tables on - http://sourceforge.net/apps/mediawiki/postfixadmin/index.php?title=Custom_fields + https://sourceforge.net/p/postfixadmin/wiki/Custom_fields/ to avoid clashes with future versions of PostfixAdmin. See initStruct() in the *Handler class for the default $struct. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/debian/changelog new/postfixadmin-3.0.2/debian/changelog --- old/postfixadmin-3.0/debian/changelog 2016-09-10 22:02:33.000000000 +0200 +++ new/postfixadmin-3.0.2/debian/changelog 2017-02-08 20:31:42.000000000 +0100 @@ -1,3 +1,22 @@ +postfixadmin (3.0.2-1) unstable; urgency=low + + * Security fix (don't delete protected aliases, CVE-2017-5930) + * Fix MySQL vacation.cache column (regression fix) + + -- David Goodwin <[email protected]> Wed, 08 Feb 2017 19:30:00 +0000 + +postfixadmin (3.0.1-2) unstable; urgency=low + + * Try and make dependencies less strict (and perhaps work for Ubuntu Precise as well) + + -- David Goodwin <[email protected]> Mon, 10 Oct 2016 20:00:00 +0100 + +postfixadmin (3.0.1-1) unstable; urgency=low + + * Fix packaging issues (missing: smarty/ and configs/) + + -- David Goodwin <[email protected]> Mon, 19 Sep 2016 10:08:00 +0100 + postfixadmin (3.0-1) unstable; urgency=low * New upstream release diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/debian/control new/postfixadmin-3.0.2/debian/control --- old/postfixadmin-3.0/debian/control 2016-05-23 06:49:00.000000000 +0200 +++ new/postfixadmin-3.0.2/debian/control 2016-12-21 22:20:21.000000000 +0100 @@ -11,8 +11,8 @@ Package: postfixadmin Architecture: all -Depends: debconf (>= 0.5), dbconfig-common, wwwconfig-common, apache2 | lighttpd | httpd, libapache2-mod-php | php-cgi | php, php-imap, php-mysql | php-pgsql | php-mysqlnd | php-sqlite3, mysql-client | postgresql-client, ${misc:Depends} -Recommends: postfix-mysql | postfix-pgsql, virtual-mysql-server | postgresql | sqlite, zendframework, dovecot-core | courier-authlib-mysql | courier-authlib-postgresql, php-cli +Depends: debconf (>= 0.5), dbconfig-common, wwwconfig-common, apache2 | lighttpd | httpd, libapache2-mod-php | libapache2-mod-php5 | php-cgi | php5-cgi | php5-fpm | php-fpm | php | php5 , php-imap | php5-imap, php-mysql | php5-mysql | php-pgsql | php5-pgsql | php-mysqlnd | php-sqlite3, mysql-client | postgresql-client | mariadb-client, ${misc:Depends} +Recommends: postfix-mysql | postfix-pgsql, virtual-mysql-server | postgresql | sqlite (>= 3.12.0), zendframework, dovecot-core | courier-authlib-mysql | courier-authlib-postgresql, php-cli Description: Virtual mail hosting interface for Postfix Postfixadmin is a web interface to manage virtual users and domains for a Postfix mail transport agent. It supports Virtual mailboxes, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/debian/postfixadmin.install new/postfixadmin-3.0.2/debian/postfixadmin.install --- old/postfixadmin-3.0/debian/postfixadmin.install 2016-05-22 21:25:31.000000000 +0200 +++ new/postfixadmin-3.0.2/debian/postfixadmin.install 2016-09-19 11:08:00.000000000 +0200 @@ -5,4 +5,6 @@ model usr/share/postfixadmin templates usr/share/postfixadmin users usr/share/postfixadmin +smarty usr/share/postfixadmin +configs usr/share/postfixadmin debian/lighttpd/90-postfixadmin.conf etc/lighttpd/conf-available diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/debian/postfixadmin.postinst new/postfixadmin-3.0.2/debian/postfixadmin.postinst --- old/postfixadmin-3.0/debian/postfixadmin.postinst 2016-05-22 20:50:03.000000000 +0200 +++ new/postfixadmin-3.0.2/debian/postfixadmin.postinst 2016-12-21 22:32:15.000000000 +0100 @@ -19,6 +19,10 @@ rm -f /etc/lighttpd/conf-available/postfixadmin fi +# See : https://sourceforge.net/p/postfixadmin/bugs/376/ - remove any existing templates_c files on upgrade. +if [ -d /usr/share/postfixadmin/templates_c ]; then + find /usr/share/postfixadmin/templates_c -type f -exec rm -r {} \; +fi #DEBHELPER# exit 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/functions.inc.php new/postfixadmin-3.0.2/functions.inc.php --- old/postfixadmin-3.0/functions.inc.php 2016-09-10 22:02:33.000000000 +0200 +++ new/postfixadmin-3.0.2/functions.inc.php 2017-02-08 21:45:26.000000000 +0100 @@ -8,14 +8,14 @@ * * Further details on the project are available at http://postfixadmin.sf.net * - * @version $Id: functions.inc.php 1861 2016-09-10 20:02:33Z christian_boltz $ + * @version $Id: functions.inc.php 1894 2017-02-08 20:45:26Z christian_boltz $ * @license GNU GPL v2 or later. * * File: functions.inc.php * Contains re-usable code. */ -$version = '3.0'; +$version = '3.0.2'; $min_db_version = 1835; # update (at least) before a release with the latest function numbrer in upgrade.php /** @@ -933,7 +933,9 @@ elseif (preg_match("/^dovecot:/", $CONF['encrypt'])) { $split_method = preg_split ('/:/', $CONF['encrypt']); - $method = strtoupper($split_method[1]); # TODO: if $pw_db starts with {method}, change $method accordingly + $method = strtoupper($split_method[1]); + # If $pw_db starts with {method}, change $method accordingly + if (!empty($pw_db) && preg_match('/^\{([A-Z0-9.-]+)\}.+/', $pw_db, $method_matches)) { $method = $method_matches[1]; } if (! preg_match("/^[A-Z0-9.-]+$/", $method)) { die("invalid dovecot encryption method"); } # TODO: check against a fixed list? # if (strtolower($method) == 'md5-crypt') die("\$CONF['encrypt'] = 'dovecot:md5-crypt' will not work because dovecotpw generates a random salt each time. Please use \$CONF['encrypt'] = 'md5crypt' instead."); # $crypt_method = preg_match ("/.*-CRYPT$/", $method); @@ -1686,11 +1688,13 @@ * db_where_clause * Action: builds and returns a WHERE clause for database queries. All given conditions will be AND'ed. * Call: db_where_clause (array $conditions, array $struct) - * param array $conditios: array('field' => 'value', 'field2' => 'value2, ...) + * param array $condition: array('field' => 'value', 'field2' => 'value2, ...) * param array $struct - field structure, used for automatic bool conversion * param string $additional_raw_where - raw sniplet to include in the WHERE part - typically needs to start with AND * param array $searchmode - operators to use (=, <, > etc.) - defaults to = if not specified for a field (see * $allowed_operators for available operators) + * Note: the $searchmode operator will only be used if a $condition for that field is set. + * This also means you'll need to set a (dummy) condition for NULL and NOTNULL. */ function db_where_clause($condition, $struct, $additional_raw_where = '', $searchmode = array()) { if (!is_array($condition)) { @@ -1703,7 +1707,7 @@ die('db_where_cond: parameter $struct is not an array!'); } - $allowed_operators = explode(' ', '< > >= <= = != <> CONT LIKE'); + $allowed_operators = explode(' ', '< > >= <= = != <> CONT LIKE NULL NOTNULL'); $where_parts = array(); $having_parts = array(); @@ -1724,7 +1728,15 @@ die('db_where_clause: Invalid searchmode for ' . $field); } } - $querypart = $field . $operator . "'" . escape_string($value) . "'"; + + if ($operator == "NULL") { + $querypart = $field . ' IS NULL'; + } elseif ($operator == "NOTNULL") { + $querypart = $field . ' IS NOT NULL'; + } else { + $querypart = $field . $operator . "'" . escape_string($value) . "'"; + } + if($struct[$field]['select'] != '') { $having_parts[$field] = $querypart; } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/bg.lang new/postfixadmin-3.0.2/languages/bg.lang --- old/postfixadmin-3.0/languages/bg.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/bg.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: bg.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: bg.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Bulgarian // by Plamen Tonev @@ -126,6 +126,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'За да създадете catch-all използвайте "*" за alias. За пренасочване на домейн към домейн използвайте "*@domain.tld" в полето Към.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Редактиране на alias за вашия домейн.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Един запис на ред.'; # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/ca.lang new/postfixadmin-3.0.2/languages/ca.lang --- old/postfixadmin-3.0/languages/ca.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/ca.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: ca.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: ca.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Catalan // by Jaume @@ -124,6 +124,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Per crear un àlies general usi "*" com a àlies. Per una redirecció de domini a domini, usi "*@domain.tld" com a Destí.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Editi un àlies pel seu domini.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Una entrada per línia.'; # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/cn.lang new/postfixadmin-3.0.2/languages/cn.lang --- old/postfixadmin-3.0/languages/cn.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/cn.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: cn.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: cn.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Simplified Chinese // by Matthew <matthew at cnfug dot org> @@ -125,6 +125,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = '要将所有的邮件全部转发请使用"*"作为别名. 域到域的转发请使用"*@domain.tld".'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = '编辑你域名中的别名.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = '每行一条记录.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/cs.lang new/postfixadmin-3.0.2/languages/cs.lang --- old/postfixadmin-3.0/languages/cs.lang 2016-02-16 20:01:27.000000000 +0100 +++ new/postfixadmin-3.0.2/languages/cs.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: cs.lang 1828 2016-02-16 19:01:27Z christian_boltz $ +# $Id: cs.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Czech Language Translation of PostfixAdmin // by Jakub @@ -131,6 +131,7 @@ $PALANG['alias_updated'] = 'Přesměrování %s bylo upraveno!'; $PALANG['pCreate_alias_catchall_text'] = 'Pro vytvoření doménového koše použijte * jako alias. Pro přesměrování doména -> doména použijte *@domain.tld jako cíl.'; $PALANG['mailbox_alias_cant_be_deleted'] = 'Toto přesměrování je svázáno s emailem a nemůže být proto vymazáno!'; +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Upravit nastavení přesměrování.'; $PALANG['pEdit_alias_help'] = 'Je možné zadat více cílových adres, jeden záznam na řádek.'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/da.lang new/postfixadmin-3.0.2/languages/da.lang --- old/postfixadmin-3.0/languages/da.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/da.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: da.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: da.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Danish // by Lars @@ -130,6 +130,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'For at tilføje et stjerne-alias, brug en "*" som alias. For domæne til domæne-videresending brug "*@domæne.tld" som modtager.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Rediger alias.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'En modtager pr. linje.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/de.lang new/postfixadmin-3.0.2/languages/de.lang --- old/postfixadmin-3.0/languages/de.lang 2016-05-22 17:49:17.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/de.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: de.lang 1844 2016-05-22 15:49:17Z christian_boltz $ +# $Id: de.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file German // by Tobias @@ -127,6 +127,7 @@ $PALANG['alias_updated'] = 'Der Alias %s wurde geändert.'; $PALANG['pCreate_alias_catchall_text'] = 'Um alle Adressen abzudecken benutzen Sie einen "*" als Alias. Um ganze Domains an andere Domains weiterzuleiten benutzen Sie "*@domain.tld" im "An"-Feld.'; $PALANG['mailbox_alias_cant_be_deleted'] = 'Dieser Alias gehört zu einer Mailbox und kann nicht gelöscht werden!'; +$PALANG['protected_alias_cant_be_deleted'] = 'Der Alias %s ist geschützt und kann nur von einem Superadmin gelöscht werden.'; $PALANG['pEdit_alias_welcome'] = 'Weiterleitungs-Einstellungen ändern'; $PALANG['pEdit_alias_help'] = 'Angabe mehrerer Ziele möglich, ein Eintrag pro Zeile.'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/en.lang new/postfixadmin-3.0.2/languages/en.lang --- old/postfixadmin-3.0/languages/en.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/en.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: en.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: en.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file English // by Mischa <mischa at high5 dot net> @@ -128,6 +128,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; $PALANG['pCreate_alias_catchall_text'] = 'To create a catch-all use an "*" as alias.'; # XXX don't propagate usage of *@target-domain.com for domain-aliasing any longer $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; $PALANG['pEdit_alias_welcome'] = 'Edit forwarding settings'; $PALANG['pEdit_alias_help'] = 'Accepts multiple targets, one entry per line.'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/es.lang new/postfixadmin-3.0.2/languages/es.lang --- old/postfixadmin-3.0/languages/es.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/es.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: es.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: es.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Spanish // by Alvaro @@ -125,6 +125,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Para crear un alias general use "*" como alias. Para una redirección de dominio a dominio, use "*@domain.tld" como Destino.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Edite un alias para su dominio.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Una entrada por línea.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/et.lang new/postfixadmin-3.0.2/languages/et.lang --- old/postfixadmin-3.0/languages/et.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/et.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: et.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: et.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Estonian // by Peeter Partel <peeter at sigma dot ee> @@ -125,6 +125,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Loomaks püüa-kõik aadressi kasuta aliasena "*". Domeenilt domeenile edasisaatmiseks kasuta kellele väljal "*@domeen.xx".'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Muuda aliast.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Üks kirje rea kohta.'; # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/eu.lang new/postfixadmin-3.0.2/languages/eu.lang --- old/postfixadmin-3.0/languages/eu.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/eu.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: eu.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: eu.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Euskara // by Julen @@ -123,6 +123,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Alias orokor bat sortzeko "*" erabil ezazu alias gisa. Domeinuz domeinurako birbideraketa baterako Norako gisa "*@domain.tld" erabil ezazu.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Domeinuarentzat aliasa aldatu.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Lerroko sarrera bat.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/fi.lang new/postfixadmin-3.0.2/languages/fi.lang --- old/postfixadmin-3.0/languages/fi.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/fi.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: fi.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: fi.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Finnish // by Palo @@ -126,6 +126,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Jos haluat luoda catch-all osoitteen käytä "*" merkkiä aliaksena. Ohjaus domainista domainiin tapahtuu käyttämällä "*@domain.tld" Kenelle: -osoitteena.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Muokkaa aliasta.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Yksi kohta per rivi.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['alias'] = 'Alias'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/fo.lang new/postfixadmin-3.0.2/languages/fo.lang --- old/postfixadmin-3.0/languages/fo.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/fo.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: fo.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: fo.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Faroese // by Danial @@ -125,6 +125,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Fyri at stovna eitt ið fangar alt, brúka eina "*" sum dulnevni. Fyri navnaøki til navnaøki víðarisending brúka "*@navnaøki.fo" til hetta.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Broyt eitt dulnevni á tínum navnaøki.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Eina adressu pr. linju.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/fr.lang new/postfixadmin-3.0.2/languages/fr.lang --- old/postfixadmin-3.0/languages/fr.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/fr.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: fr.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: fr.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file French // by Kuthz @@ -126,6 +126,7 @@ $PALANG['alias_updated'] = 'L\'alias %s a été mis à jour!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Pour ajouter un alias global, utilisez "*". Pour un transfert de domaine à domaine, utilisez "*@domain.tld" dans le champs A.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'Cet alias appartient à un compte courriel et ne peut être supprimé!'; +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Modifier les paramètres de transfert.'; $PALANG['pEdit_alias_help'] = 'Cibles multiples acceptées, une entrée par ligne.'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/hr.lang new/postfixadmin-3.0.2/languages/hr.lang --- old/postfixadmin-3.0/languages/hr.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/hr.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: hr.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: hr.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Croatian // by Daniel Radetic <drade at boobah dot info> @@ -124,6 +124,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Ukoliko elite stvoriti "sveprimajući" alias, upotrijebite "*" umjesto aliasa. Za preusmjeravanje iz domene na domenu, upotrijebite "*@domena.tld" u "Za" polju.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Uredi alias za domenu.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Jedan unos po liniji.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/hu.lang new/postfixadmin-3.0.2/languages/hu.lang --- old/postfixadmin-3.0/languages/hu.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/hu.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: hu.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: hu.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Hungarian // by Christian Hamar <krics at linuxforum dot hu> and Levente Farkas <lfarkas at lfarkas dot org> @@ -127,6 +127,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'A catch-all (*@valami.hu) beállításához használj "*" -ot az alias mezõnél. A domain-domain közötti átirányításhoz használd a "*@akarmi.hu" címet.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Alias szerkesztése a domainhez.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Soronként egy.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/is.lang new/postfixadmin-3.0.2/languages/is.lang --- old/postfixadmin-3.0/languages/is.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/is.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: is.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: is.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Icelandic // by Gestur @@ -125,6 +125,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Til að útbúa alias fyrir öll netföng í léninu, þá geturðu útbúið "*" alias. Til að áframsenda með alias á annað lén eða pósthólf, notaðu "*@domain.tld í til.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Breyta alias í léninu.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Ein færsla í einu.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/it.lang new/postfixadmin-3.0.2/languages/it.lang --- old/postfixadmin-3.0/languages/it.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/it.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: it.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: it.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Italian // by Massimiliano Stucchi <max at gufi dot org> @@ -126,6 +126,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Per creare un account universale, usare "*" come alias. Per inoltri da dominio a dominio, usare "*@domain.tld" come campo "a".'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Modifica un alias per il tuo dominio.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Un indirizzo per linea.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/ja.lang new/postfixadmin-3.0.2/languages/ja.lang --- old/postfixadmin-3.0/languages/ja.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/ja.lang 2017-02-08 18:53:13.000000000 +0100 @@ -127,6 +127,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'すべてのメールを受け取るには、転送元に "*" を使います。 別のドメインにすべて転送するには、転送先に "*.domain.tld" を使います。'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = '転送先アドレスの編集'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = '1行に1エントリです。'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/lt.lang new/postfixadmin-3.0.2/languages/lt.lang --- old/postfixadmin-3.0/languages/lt.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/lt.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: lt.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: lt.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Lithuanian // by Giedrius <giedrius_balbieris at metalot dot com> @@ -125,6 +125,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Jei norite sukurti sinonimą, kuris gautų visas žinutes neegzistuojantiems adresatams, naudokite "*".'; $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Keisti persiuntimo nustatymus'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/mk.lang new/postfixadmin-3.0.2/languages/mk.lang --- old/postfixadmin-3.0/languages/mk.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/mk.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: mk.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: mk.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Macedonian // by Damjan Georgiev <dame at mol dot com dot mk> @@ -125,6 +125,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'За да креираш catch-all користи "*" како алијас. За препраќање од домен на домен користи "*@domain.tld" како ДО.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Едитирање на алијас за вашиот домен.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Еден запис по линија.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/nb.lang new/postfixadmin-3.0.2/languages/nb.lang --- old/postfixadmin-3.0/languages/nb.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/nb.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: nb.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: nb.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Norwegian (bokmål) // by Odd Henriksen @@ -127,6 +127,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'For å opprette et "catch-all"-alias, bruk "*" som alias. For domene-til-domene-videresending, bruk "*@domene.tld" i Til-feltet.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Endre et alias.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Én e-postadresse per linje.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['alias'] = 'Alias'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/nl.lang new/postfixadmin-3.0.2/languages/nl.lang --- old/postfixadmin-3.0/languages/nl.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/nl.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: nl.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: nl.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Dutch // by Mourik @@ -126,6 +126,7 @@ $PALANG['alias_updated'] = 'De alias %s is bijgewerkt!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Om een catch-all te gebruiken, dient u een "*" (asteric) in te vullen als alias. Voor domein naar domein forwarding gebruik "*@domein.tld" als naar.'; $PALANG['mailbox_alias_cant_be_deleted'] = 'De alias maakt onderdeel uit van mailbox en kan niet worden verwijderd!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Bewerk een alias voor uw domein.'; $PALANG['pEdit_alias_help'] = 'Meerdere e-mailadressen toegestaan. Slechts één alias per regel.'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/nn.lang new/postfixadmin-3.0.2/languages/nn.lang --- old/postfixadmin-3.0/languages/nn.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/nn.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: nn.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: nn.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Norwegian - Bokmål // by Jon Arve Wålberg @@ -125,6 +125,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'For å opprette et alias som "mottar alt" bruk "*" som alias. For domene-til-domene videresending bruk "*@domene.tld" som mottaker.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Endre et alias.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'En mottaker per linje.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['alias'] = 'Alias'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/pl.lang new/postfixadmin-3.0.2/languages/pl.lang --- old/postfixadmin-3.0/languages/pl.lang 2015-10-20 18:08:17.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/pl.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: pl.lang 1821 2015-10-20 16:08:17Z gingerdog $ +# $Id: pl.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Polish // by Jarek @@ -128,6 +128,7 @@ $PALANG['alias_updated'] = 'Alias %s został zaktualizowany!'; $PALANG['pCreate_alias_catchall_text'] = 'Aby utworzyć domyślne konto dla domeny (catch-all) podaj "*" (gwiazdkę) jako alias. Jeśli chcesz przekazywać całość poczty do innej domeny, wpisz jako alias "*@domena.tld".'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Edytuj alias dla Twojej domeny.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Jeden wpis na linię.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['alias'] = 'Alias'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/pt-br.lang new/postfixadmin-3.0.2/languages/pt-br.lang --- old/postfixadmin-3.0/languages/pt-br.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/pt-br.lang 2017-02-08 18:53:13.000000000 +0100 @@ -129,6 +129,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Para criar um alias global, use "*" no campo Alias. Para encaminhar de um domínio para outro, use "*@dominio.tld" no campo Para.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Edição de alias do domínio.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Uma entrada por linha.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/ro.lang new/postfixadmin-3.0.2/languages/ro.lang --- old/postfixadmin-3.0/languages/ro.lang 2016-09-09 22:08:57.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/ro.lang 2017-02-08 18:53:13.000000000 +0100 @@ -127,6 +127,7 @@ $PALANG['alias_updated'] = 'Aliasul %s a fost modificat!'; $PALANG['pCreate_alias_catchall_text'] = 'Puteti crea un alias pentru adrese multiple prin folosirea "*".'; # XXX don't propagate usage of *@target-domain.com for domain-aliasing any longer $PALANG['mailbox_alias_cant_be_deleted'] = 'Acest alias apartine unei casute si nu poate fi sters!'; +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Editeaza setarile de redirectionare'; $PALANG['pEdit_alias_help'] = 'Se accepta inregistrari multiple, cate una pe linie.'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/ru.lang new/postfixadmin-3.0.2/languages/ru.lang --- old/postfixadmin-3.0/languages/ru.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/ru.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: ru.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: ru.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Russian // by Paul @@ -129,6 +129,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Для создания catch-all почтового ящика используйте "*" в качестве имени алиаса.'; # XXX don't propagate usage of *@target-domain.com for domain-aliasing any longer $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Редактирование настроек пересылки'; $PALANG['pEdit_alias_help'] = 'Можно указать несколько целей, одна запись на строку.'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/sk.lang new/postfixadmin-3.0.2/languages/sk.lang --- old/postfixadmin-3.0/languages/sk.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/sk.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: sk.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: sk.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Slovak // by bajk (eszabo @sf) @@ -126,6 +126,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Pre vytvorenie doménového koša použite * ako alias. Pre alias doména-doména použite *@domain.tld ako cieľ.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Upraviť aliasy'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Jeden záznam na riadku'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/sl.lang new/postfixadmin-3.0.2/languages/sl.lang --- old/postfixadmin-3.0/languages/sl.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/sl.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: sl.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: sl.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Slovenian // by Nejc Skoberne <nejc at skoberne dot net> @@ -125,6 +125,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Če želite ustvariti "vseobsegajoči" alias, uporabite "*" namesto aliasa. Za posredovanje iz domene na domeno, uporabite "*@domena.si" v "Za" polju.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Uredi alias za določeno domeno.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'V posamezni vrstici je lahko samo en naslov.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/sv.lang new/postfixadmin-3.0.2/languages/sv.lang --- old/postfixadmin-3.0/languages/sv.lang 2015-07-14 00:48:01.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/sv.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: sv.lang 1793 2015-07-13 22:48:01Z christian_boltz $ +# $Id: sv.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Swedish // by Stefan Jakobsson <stefan at katrinet dot se> @@ -128,6 +128,7 @@ $PALANG['alias_updated'] = 'Aliaset %s är uppdaterat!'; $PALANG['pCreate_alias_catchall_text'] = 'För att skapa en catch-all anges ett "*" som alias.'; $PALANG['mailbox_alias_cant_be_deleted'] = 'Detta alias tillhör en brevlåda och kan inte tas bort!'; +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'Inställningar för vidarebefordring.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Ett alias per rad.'; # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/tr.lang new/postfixadmin-3.0.2/languages/tr.lang --- old/postfixadmin-3.0/languages/tr.lang 2015-04-07 00:44:51.000000000 +0200 +++ new/postfixadmin-3.0.2/languages/tr.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: tr.lang 1781 2015-04-06 22:44:51Z christian_boltz $ +# $Id: tr.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Türkçe // by Onuryalazi @@ -125,6 +125,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = 'Hepsini-yakala yaratmak için alias olarak "*" kullanýn. Domain yönlendirme domaini için kime kýsmýnda "*@domain.tld" kullanýn.'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = 'domaniniz için bir domain\'i düzenleyin. '; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = 'Satýr baþýna bir giriþ.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/languages/tw.lang new/postfixadmin-3.0.2/languages/tw.lang --- old/postfixadmin-3.0/languages/tw.lang 2016-02-04 23:41:56.000000000 +0100 +++ new/postfixadmin-3.0.2/languages/tw.lang 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: tw.lang 1825 2016-02-04 22:41:56Z christian_boltz $ +# $Id: tw.lang 1889 2017-02-08 17:53:13Z christian_boltz $ // // Language file Traditional Chinese // by John Chen (johnpupu @SF) @@ -126,6 +126,7 @@ $PALANG['alias_updated'] = 'The alias %s has been updated!'; # XXX $PALANG['pCreate_alias_catchall_text'] = '要將所有的郵件全部轉發請使用"*"作為別名. 網域到網域的轉發請使用"*@domain.tld".'; # XXX check/beautify - was split in two lines before $PALANG['mailbox_alias_cant_be_deleted'] = 'This alias belongs to a mailbox and can\'t be deleted!'; # XXX +$PALANG['protected_alias_cant_be_deleted'] = 'The alias %s is protected and can only be deleted by a superadmin'; # XXX $PALANG['pEdit_alias_welcome'] = '編輯你網域中的別名.'; # XXX Text change to: 'Edit forwarding settings' $PALANG['pEdit_alias_help'] = '每行一條記錄.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/list-virtual.php new/postfixadmin-3.0.2/list-virtual.php --- old/postfixadmin-3.0/list-virtual.php 2015-12-07 00:27:45.000000000 +0100 +++ new/postfixadmin-3.0.2/list-virtual.php 2017-01-26 19:22:55.000000000 +0100 @@ -8,7 +8,7 @@ * * Further details on the project are available at http://postfixadmin.sf.net * - * @version $Id: list-virtual.php 1822 2015-12-06 23:27:45Z christian_boltz $ + * @version $Id: list-virtual.php 1888 2017-01-26 18:22:55Z christian_boltz $ * @license GNU GPL v2 or later. * * File: list-virtual.php @@ -136,10 +136,9 @@ $table_mailbox = table_by_key('mailbox'); if (count($search) == 0 || !isset($search['_'])) { - $list_param = "domain='$fDomain'"; + $search_alias = array('domain' => $fDomain); } else { - $searchterm = escape_string($search['_']); - $list_param = "(address LIKE '%$searchterm%' OR goto LIKE '%$searchterm%')"; + $search_alias = array('_' => $search['_']); } $handler = new AliasHandler(0, $admin_username); @@ -153,8 +152,8 @@ $alias_data['struct']['on_vacation']['display_in_list'] = 0; $alias_data['msg']['show_simple_search'] = False; # hide search box -$handler->getList($list_param, array(), $page_size, $fDisplay); -$pagebrowser_alias = $handler->getPagebrowser($list_param, array()); +$handler->getList($search_alias, array(), $page_size, $fDisplay); +$pagebrowser_alias = $handler->getPagebrowser($search_alias, array()); $tAlias = $handler->result(); @@ -451,8 +450,10 @@ $smarty->assign ('tDisplay_next_show', $tDisplay_next_show); $smarty->assign ('tDisplay_next', $tDisplay_next); -$smarty->assign ('tAliasDomains', $tAliasDomains); -$smarty->assign ('aliasdomain_data', $aliasdomain_data); +if (Config::bool('alias_domain')) { + $smarty->assign ('tAliasDomains', $tAliasDomains); + $smarty->assign ('aliasdomain_data', $aliasdomain_data); +} $smarty->assign ('tAlias', $tAlias); $smarty->assign ('alias_data', $alias_data); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/model/AliasHandler.php new/postfixadmin-3.0.2/model/AliasHandler.php --- old/postfixadmin-3.0/model/AliasHandler.php 2015-04-07 00:09:18.000000000 +0200 +++ new/postfixadmin-3.0.2/model/AliasHandler.php 2017-02-08 18:53:13.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: AliasHandler.php 1777 2015-04-06 22:09:18Z christian_boltz $ +# $Id: AliasHandler.php 1889 2017-02-08 17:53:13Z christian_boltz $ /** * Handlers User level alias actions - e.g. add alias, get aliases, update etc. @@ -42,13 +42,9 @@ /*options*/ '', /*not_in_db*/ 0, /*dont_write_to_db*/ 1, - /*select*/ 'coalesce(__is_mailbox,0) as is_mailbox, __mailbox_username', - # __mailbox_username is unused, but needed as workaround for a MariaDB bug - /*extrafrom*/ 'LEFT JOIN ( ' . - ' SELECT 1 as __is_mailbox, username as __mailbox_username ' . - ' FROM ' . table_by_key('mailbox') . - ' WHERE username IS NOT NULL ' . - ' ) AS __mailbox ON __mailbox_username = address' ), + /*select*/ 'coalesce(__is_mailbox,0) as is_mailbox' ), + /*extrafrom set via set_is_mailbox_extrafrom() */ + '__mailbox_username' => pacol( 0, 0, 1, 'vtxt', '' , '' , 0), # filled via is_mailbox 'goto_mailbox' => pacol( $mbgoto, $mbgoto,$mbgoto,'bool', 'pEdit_alias_forward_and_store' , '' , 0, /*options*/ '', /*not_in_db*/ 1 ), # read_from_db_postprocess() sets the value @@ -64,8 +60,37 @@ array('select' => '1 as _can_delete') ), # read_from_db_postprocess() updates the value # aliases listed in $CONF[default_aliases] are read-only for domain admins if $CONF[special_alias_control] is NO. ); + + $this->set_is_mailbox_extrafrom(); + } + + /* + * set $this->struct['is_mailbox']['extrafrom'] based on the search conditions. + * If a listing for a specific domain is requested, optimize the subquery to only return mailboxes from that domain. + * This doesn't change the result of the main query, but improves the performance a lot on setups with lots of mailboxes. + * When using this function to optimize the is_mailbox extrafrom, don't forget to reset it to the default value + * (all domains for this admin) afterwards. + */ + private function set_is_mailbox_extrafrom($condition=array(), $searchmode=array()) { + $extrafrom = 'LEFT JOIN ( ' . + ' SELECT 1 as __is_mailbox, username as __mailbox_username ' . + ' FROM ' . table_by_key('mailbox') . + ' WHERE username IS NOT NULL '; + + if(isset($condition['domain']) && !isset($searchmode['domain']) && in_array($condition['domain'], $this->allowed_domains)) { + # listing for a specific domain, so restrict subquery to that domain + $extrafrom .= ' AND ' . db_in_clause($this->domain_field, array($condition['domain'])); + } else { + # restrict subquery to all domains accessible to this admin + $extrafrom .= ' AND ' . db_in_clause($this->domain_field, $this->allowed_domains); + } + + $extrafrom .= ' ) AS __mailbox ON __mailbox_username = address'; + + $this->struct['is_mailbox']['extrafrom'] = $extrafrom; } + protected function initMsg() { $this->msg['error_already_exists'] = 'email_address_already_exists'; $this->msg['error_does_not_exist'] = 'alias_does_not_exist'; @@ -303,22 +328,34 @@ return $db_result; } - public function getList($condition, $searchmode = array(), $limit=-1, $offset=-1) { + private function condition_ignore_mailboxes($condition, $searchmode) { # only list aliases that do not belong to mailboxes - # TODO: breaks if $condition is an array - if ($condition != '') { - $condition = " AND ( $condition ) "; + if (is_array($condition)) { + $condition['__mailbox_username'] = 1; + $searchmode['__mailbox_username'] = 'NULL'; + } else { + if ($condition != '') { + $condition = " ( $condition ) AND "; + } + $condition = " $condition __mailbox_username IS NULL "; } - return parent::getList( "__mailbox_username IS NULL $condition", $searchmode, $limit, $offset); + return array($condition, $searchmode); + } + + public function getList($condition, $searchmode = array(), $limit=-1, $offset=-1) { + list($condition, $searchmode) = $this->condition_ignore_mailboxes($condition, $searchmode); + $this->set_is_mailbox_extrafrom($condition, $searchmode); + $result = parent::getList($condition, $searchmode, $limit, $offset); + $this->set_is_mailbox_extrafrom(); # reset to default + return $result; } public function getPagebrowser($condition, $searchmode = array()) { - # only list aliases that do not belong to mailboxes - # TODO: breaks if $condition is an array - if ($condition != '') { - $condition = " AND ( $condition ) "; - } - return parent::getPagebrowser( "__mailbox_username IS NULL $condition", $searchmode); + list($condition, $searchmode) = $this->condition_ignore_mailboxes($condition, $searchmode); + $this->set_is_mailbox_extrafrom($condition, $searchmode); + $result = parent::getPagebrowser($condition, $searchmode); + $this->set_is_mailbox_extrafrom(); # reset to default + return $result; } @@ -404,6 +441,11 @@ return false; } + if (!$this->can_delete) { + $this->errormsg[] = Config::Lang_f('protected_alias_cant_be_deleted', $this->id); + return false; + } + db_delete('alias', 'address', $this->id); list(/*NULL*/,$domain) = explode('@', $this->id); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/model/FetchmailHandler.php new/postfixadmin-3.0.2/model/FetchmailHandler.php --- old/postfixadmin-3.0/model/FetchmailHandler.php 2016-02-04 23:30:06.000000000 +0100 +++ new/postfixadmin-3.0.2/model/FetchmailHandler.php 2016-09-30 23:12:15.000000000 +0200 @@ -1,5 +1,5 @@ <?php -# $Id: FetchmailHandler.php 1824 2016-02-04 22:30:06Z christian_boltz $ +# $Id: FetchmailHandler.php 1873 2016-09-30 21:12:15Z christian_boltz $ /** * Handler for fetchmail jobs @@ -39,7 +39,7 @@ 'sslfingerprint'=> pacol( $extra, $extra, $extra, 'text', 'pFetchmail_field_sslfingerprint','' ), 'extra_options' => pacol( $extra, $extra, $extra, 'text', 'pFetchmail_field_extra_options', 'pFetchmail_desc_extra_options' ), 'mda' => pacol( $extra, $extra, $extra, 'text', 'pFetchmail_field_mda' , 'pFetchmail_desc_mda' ), - 'date' => pacol( 0, 0, 1, 'text', 'pFetchmail_field_date' , 'pFetchmail_desc_date' , 1 ), + 'date' => pacol( 0, 0, 1, 'text', 'pFetchmail_field_date' , 'pFetchmail_desc_date' , '2000-01-01' ), 'returned_text' => pacol( 0, 0, 1, 'text', 'pFetchmail_field_returned_text', 'pFetchmail_desc_returned_text' ), 'active' => pacol( 1, 1, 1, 'bool', 'active' , '' , 1 ), 'created' => pacol( 0, 0, 0, 'ts', 'created' , '' ), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/model/PFAHandler.php new/postfixadmin-3.0.2/model/PFAHandler.php --- old/postfixadmin-3.0/model/PFAHandler.php 2016-05-22 19:44:17.000000000 +0200 +++ new/postfixadmin-3.0.2/model/PFAHandler.php 2016-12-21 11:25:58.000000000 +0100 @@ -565,7 +565,7 @@ $no = escape_string(Config::lang('NO')); if (db_pgsql()) { - $formatted_date = "TO_DATE(text(###KEY###), '" . escape_string(Config::Lang('dateformat_pgsql')) . "')"; + $formatted_date = "TO_CHAR(###KEY###, '" . escape_string(Config::Lang('dateformat_pgsql')) . "')"; # $base64_decode = "DECODE(###KEY###, 'base64')"; } elseif (db_sqlite()) { $formatted_date = "strftime(###KEY###, '" . escape_string(Config::Lang('dateformat_mysql')) . "')"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/model/VacationHandler.php new/postfixadmin-3.0.2/model/VacationHandler.php --- old/postfixadmin-3.0/model/VacationHandler.php 2016-05-22 18:17:46.000000000 +0200 +++ new/postfixadmin-3.0.2/model/VacationHandler.php 2017-02-08 19:05:45.000000000 +0100 @@ -1,5 +1,5 @@ <?php -# $Id: VacationHandler.php 1845 2016-05-22 16:17:46Z christian_boltz $ +# $Id: VacationHandler.php 1890 2017-02-08 18:05:45Z christian_boltz $ class VacationHandler extends PFAHandler { @@ -21,12 +21,16 @@ 'body' => pacol( 1, 1, 0, 'text', 'pUsersVacation_body' , '' , '' ), 'activefrom' => pacol( 1, 1, 1, 'text', 'pUsersVacation_activefrom' , '' , '' ), 'activeuntil' => pacol( 1, 1, 1, 'text', 'pUsersVacation_activeuntil' , '' , '' ), - 'cache' => pacol( 0, 0, 0, 'text', '' , '' , '' ), # leftover from 2.2 'active' => pacol( 1, 1, 1, 'bool', 'active' , '' , 1 ), 'created' => pacol( 0, 0, 1, 'ts', 'created' , '' ), 'modified' => pacol( 0, 0, 1, 'ts', 'last_modified' , '' ), # TODO: add virtual 'notified' column and allow to display who received a vacation response? ); + + if ( ! db_pgsql() ) { + $this->struct['cache'] = pacol( 0, 0, 0, 'text', '' , '' , '' ); # leftover from 2.2 + } + } protected function initMsg() { @@ -180,9 +184,12 @@ 'active' => db_get_boolean(true), 'activefrom' => $activeFrom, 'activeuntil' => $activeUntil, - 'cache' => '', ); + if ( ! db_pgsql() ) { + $vacation_data['cache'] = ''; # leftover from 2.2 + } + // is there an entry in the vacaton table for the user, or do we need to insert? $table_vacation = table_by_key('vacation'); $result = db_query("SELECT * FROM $table_vacation WHERE email = '$E_username'"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/smarty.inc.php new/postfixadmin-3.0.2/smarty.inc.php --- old/postfixadmin-3.0/smarty.inc.php 2016-05-20 22:27:29.000000000 +0200 +++ new/postfixadmin-3.0.2/smarty.inc.php 2016-12-21 22:26:02.000000000 +0100 @@ -14,7 +14,13 @@ //$this->template->debugging = true; $incpath = dirname(__FILE__); $this->template->setTemplateDir(dirname(__FILE__) . '/templates'); - $this->template->setCompileDir(dirname(__FILE__) . '/templates_c'); + + // if it's not present or writeable, smarty should just not cache. + $templates_c = dirname(__FILE__) . '/templates_c'; + if(is_dir($templates_c) && is_writeable($templates_c)) { + $this->template->setCompileDir($templates_c); + } + $this->template->setConfigDir(dirname(__FILE__) . '/configs'); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/templates/list-virtual.tpl new/postfixadmin-3.0.2/templates/list-virtual.tpl --- old/postfixadmin-3.0/templates/list-virtual.tpl 2015-12-07 00:27:45.000000000 +0100 +++ new/postfixadmin-3.0.2/templates/list-virtual.tpl 2016-11-01 20:31:41.000000000 +0100 @@ -64,6 +64,7 @@ {if $tCanAddMailbox} <br /><a href="{#url_create_mailbox#}&domain={$fDomain|escape:"url"}" class="button">{$PALANG.add_mailbox}</a><br /> {/if} + <br /><br /><a href="list.php?table=mailbox&output=csv">{$PALANG.download_csv}</a> {/if} {if $CONF.show_status===YES && $CONF.show_status_key===YES} <br/><br/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/postfixadmin-3.0/upgrade.php new/postfixadmin-3.0.2/upgrade.php --- old/postfixadmin-3.0/upgrade.php 2016-05-22 21:58:54.000000000 +0200 +++ new/postfixadmin-3.0.2/upgrade.php 2016-11-01 21:31:52.000000000 +0100 @@ -4,7 +4,7 @@ } /* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ -# @version $Id: upgrade.php 1853 2016-05-22 19:58:54Z christian_boltz $ +# @version $Id: upgrade.php 1881 2016-11-01 20:31:52Z christian_boltz $ # Note: run with upgrade.php?debug=1 to see all SQL error messages @@ -139,7 +139,7 @@ $target_version = 0; // Rather than being bound to an svn revision number, just look for the largest function name that matches upgrade_\d+... - // $target_version = preg_replace('/[^0-9]/', '', '$Revision: 1853 $'); + // $target_version = preg_replace('/[^0-9]/', '', '$Revision: 1881 $'); $funclist = get_defined_functions(); $our_upgrade_functions = array_filter($funclist['user'], '_upgrade_filter_function'); foreach($our_upgrade_functions as $function_name) { @@ -1619,14 +1619,14 @@ function upgrade_1835_mysql() { # change default values for existing datetime fields with a 0000-00-00 default to {DATETIME} - foreach (array('admin', 'alias', 'alias_domain', 'domain', 'mailbox', 'domain_admins', 'vacation') as $table_to_change) { + foreach (array('domain_admins', 'vacation') as $table_to_change) { $table = table_by_key($table_to_change); db_query_parsed("ALTER TABLE `$table` CHANGE `created` `created` {DATETIME}"); } foreach (array('admin', 'alias', 'alias_domain', 'domain', 'mailbox') as $table_to_change) { $table = table_by_key($table_to_change); - db_query_parsed("ALTER TABLE `$table` CHANGE `modified` `modified` {DATETIME}"); + db_query_parsed("ALTER TABLE `$table` CHANGE `created` `created` {DATETIME}, CHANGE `modified` `modified` {DATETIME}"); } $table = table_by_key('log');
