Merge remote-tracking branch 'svnexport/master'

pull/19/head
David Goodwin 10 years ago
commit 1bdf85b728

@ -38,6 +38,8 @@ $smtp_from_email = smtp_get_admin_email();
if ($_SERVER['REQUEST_METHOD'] == "POST") if ($_SERVER['REQUEST_METHOD'] == "POST")
{ {
if (safepost('token') != $_SESSION['PFA_token']) die('Invalid token!');
if (empty($_POST['subject']) || empty($_POST['message']) || empty($_POST['name'])) if (empty($_POST['subject']) || empty($_POST['message']) || empty($_POST['name']))
{ {
$error = 1; $error = 1;

@ -22,6 +22,7 @@ if(!defined('POSTFIXADMIN')) { # already defined if called from setup.php
if (!defined('POSTFIXADMIN_CLI')) { if (!defined('POSTFIXADMIN_CLI')) {
// this is the default; see also https://sourceforge.net/p/postfixadmin/bugs/347/ // this is the default; see also https://sourceforge.net/p/postfixadmin/bugs/347/
session_cache_limiter('nocache'); session_cache_limiter('nocache');
session_name('postfixadmin_session');
session_start(); session_start();
if (defined('POSTFIXADMIN_LOGOUT')) { if (defined('POSTFIXADMIN_LOGOUT')) {

@ -6,17 +6,6 @@ http://youserver/postfixadmin/setup.php works. This should
guide you through the appropriate process. guide you through the appropriate process.
Integration with Postfix, Dovecot etc.
======================================
Now that PostfixAdmin is working, you need to do some configuration
in Postfix, Dovecot etc. so that they use the domains, mailboxes and
aliases you setup in PostfixAdmin.
The files in /usr/share/doc/postfixadmin/ directory explain which
settings you need to do/change.
Recommended and Suggested Packages Recommended and Suggested Packages
================================== ==================================
- Postfix - Postfix

8
debian/README.txt vendored

@ -12,8 +12,10 @@ postfixadmin project), do the following :
1. Update debian/changelog; include your email address in the last change 1. Update debian/changelog; include your email address in the last change
(this is used to determine a gpg key to use) (this is used to determine a gpg key to use)
2. dpkg-buildpackage -rfakeroot 2. debian/rules prep
3. Look in ../ at the shiny .deb / .tar.gz 3. dpkg-buildpackage -rfakeroot
4. Profit. 4. Look in ../ at the shiny .deb / .tar.gz
5. Profit.

7
debian/changelog vendored

@ -1,3 +1,10 @@
postfixadmin (2.93-2) unstable; urgency=low
* Replace debian/ using Debian v2.3.7-2. See Debian's #821643
* This adds : PHP7 and Apache 2.4 support.
-- David Goodwin <david@palepurple.co.uk> Sun, 22 May 2016 19:41:01 +0100
postfixadmin (2.93-1) unstable; urgency=low postfixadmin (2.93-1) unstable; urgency=low
* New upstream release (effectively beta3 for v3.0) * New upstream release (effectively beta3 for v3.0)

14
debian/control vendored

@ -2,17 +2,17 @@ Source: postfixadmin
Section: admin Section: admin
Priority: optional Priority: optional
Maintainer: Norman Messtorff <normes@normes.org> Maintainer: Norman Messtorff <normes@normes.org>
Build-Depends: debhelper (>= 7), po-debconf Uploaders: Gaudenz Steinlin <gaudenz@debian.org>, Christoph Martin <martin@uni-mainz.de>
Standards-Version: 3.9.3 Build-Depends: debhelper (>= 7), po-debconf, dh-apache2
XS-Vcs-Svn: https://postfixadmin.svn.sourceforge.net/svnroot/postfixadmin/trunk Standards-Version: 3.9.5
XS-Vcs-Browser: https://postfixadmin.svn.sourceforge.net/svnroot/postfixadmin/trunk Vcs-Git: git://anonscm.debian.org/collab-maint/postfixadmin.git
Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/postfixadmin.git
Homepage: http://postfixadmin.sourceforge.net Homepage: http://postfixadmin.sourceforge.net
Package: postfixadmin Package: postfixadmin
Architecture: all Architecture: all
Depends: debconf (>= 0.5), dbconfig-common, wwwconfig-common, apache2 | lighttpd | httpd, libapache2-mod-php5 | php5-cgi | php5, php5-cli, php5-imap, php5-mysql | php5-mysqlnd | php5-pgsql, mysql-client | postgresql-client | mariadb-client, ${misc:Depends} 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, mysql-server | postgresql-server | mariadb-server Recommends: postfix-mysql | postfix-pgsql, virtual-mysql-server | postgresql | sqlite, zendframework, dovecot-core | courier-authlib-mysql | courier-authlib-postgresql, php-cli
Suggests: dovecot-common | courier-authlib-mysql | courier-authlib-postgresql
Description: Virtual mail hosting interface for Postfix Description: Virtual mail hosting interface for Postfix
Postfixadmin is a web interface to manage virtual users and domains Postfixadmin is a web interface to manage virtual users and domains
for a Postfix mail transport agent. It supports Virtual mailboxes, for a Postfix mail transport agent. It supports Virtual mailboxes,

@ -1,25 +1,31 @@
Description: This patch sets the dbconfig placeholders in config.inc.php. From: Norman Messtorff <normes@normes.org>
Forwarded: not-needed Date: Sun, 23 Mar 2014 17:40:30 +0100
Author: Norman Messtorff <normes@normes.org> Subject: db_credentials
Last-Update: 2012-05-28
---
config.inc.php | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
Index: postfixadmin/config.inc.php Index: postfixadmin/config.inc.php
=================================================================== ===================================================================
--- postfixadmin.orig/config.inc.php 2015-09-26 15:03:05.000000000 +0100 --- a/config.inc.php
+++ postfixadmin/config.inc.php 2015-09-26 15:03:16.000000000 +0100 +++ b/config.inc.php
@@ -15,6 +15,11 @@ @@ -15,6 +15,14 @@
* Contains configuration options. * Contains configuration options.
*/ */
+// This loads the automatic generated DB credentials from /etc/postfixadmin/dbconfig.inc.php +
+require_once('/etc/postfixadmin/dbconfig.inc.php'); +// Debian: This loads the automatic generated DB credentials from
+if (!isset($dbserver) || empty($dbserver)) +// /etc/postfixadmin/dbconfig.inc.php
+require_once('dbconfig.inc.php');
+if (!isset($dbserver) || empty($dbserver)) {
+ $dbserver='localhost'; + $dbserver='localhost';
+}
+ +
/***************************************************************** /*****************************************************************
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* You have to set $CONF['configured'] = true; before the * You have to set $CONF['configured'] = true; before the
@@ -22,7 +27,7 @@ @@ -22,7 +30,7 @@
* Doing this implies you have changed this file as required. * Doing this implies you have changed this file as required.
* i.e. configuring database etc; specifying setup.php password etc. * i.e. configuring database etc; specifying setup.php password etc.
*/ */
@ -28,10 +34,10 @@ Index: postfixadmin/config.inc.php
// In order to setup Postfixadmin, you MUST specify a hashed password here. // In order to setup Postfixadmin, you MUST specify a hashed password here.
// To create the hash, visit setup.php in a browser and type a password into the field, // To create the hash, visit setup.php in a browser and type a password into the field,
@@ -80,11 +85,11 @@ @@ -81,11 +89,11 @@
// mysql = MySQL 3.23 and 4.0, 4.1 or 5
// mysqli = MySQL 4.1+ or MariaDB // mysqli = MySQL 4.1+ or MariaDB
// pgsql = PostgreSQL // pgsql = PostgreSQL
// sqlite = SQLite 3
-$CONF['database_type'] = 'mysqli'; -$CONF['database_type'] = 'mysqli';
-$CONF['database_host'] = 'localhost'; -$CONF['database_host'] = 'localhost';
-$CONF['database_user'] = 'postfix'; -$CONF['database_user'] = 'postfix';
@ -45,3 +51,5 @@ Index: postfixadmin/config.inc.php
// If you need to specify a different port for a MYSQL database connection, use e.g. // If you need to specify a different port for a MYSQL database connection, use e.g.
// $CONF['database_host'] = '172.30.33.66:3308'; // $CONF['database_host'] = '172.30.33.66:3308';
// If you need to specify a different port for POSTGRESQL database connection // If you need to specify a different port for POSTGRESQL database connection

@ -1 +1 @@
db_credentials 0001-db_credentials.patch

@ -1 +0,0 @@
[type: gettext/rfc822deb] templates

32
debian/po/cs.po vendored

@ -1,32 +0,0 @@
# Czech PO debconf template translation of postfixadmin.
# Copyright (C) 2012 Michal Simunek <michal.simunek@gmail.com>
# This file is distributed under the same license as the postfixadmin package.
# Michal Simunek <michal.simunek@gmail.com>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: postfixadmin 2.3.5-1\n"
"Report-Msgid-Bugs-To: postfixadmin@packages.debian.org\n"
"POT-Creation-Date: 2008-10-27 22:14+0100\n"
"PO-Revision-Date: 2012-04-13 18:31+0200\n"
"Last-Translator: Michal Simunek <michal.simunek@gmail.com>\n"
"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid "Web server to reconfigure automatically:"
msgstr "Automaticky přenastavit webový server:"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid ""
"Please choose the web server that should be automatically configured to run "
"postfixadmin."
msgstr ""
"Zvolte si prosím webový server, který se má automaticky nastavit ke "
"spuštění postfixadmin."

34
debian/po/da.po vendored

@ -1,34 +0,0 @@
# Danish translation postfixadmin.
# Copyright (C) 2012 postfixadmin & nedenstående oversættere.
# This file is distributed under the same license as the postfixadmin package.
# Joe Hansen <joedalton2@yahoo.dk>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: postfixadmin\n"
"Report-Msgid-Bugs-To: postfixadmin@packages.debian.org\n"
"POT-Creation-Date: 2008-10-27 22:14+0100\n"
"PO-Revision-Date: 2012-04-11 19:21+0100\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <debian-l10n-danish@lists.debian.org>\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid "Web server to reconfigure automatically:"
msgstr "Internetserver at rekonfigurere automatisk:"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid ""
"Please choose the web server that should be automatically configured to run "
"postfixadmin."
msgstr ""
"Vælg venligst internetserveren som automatisk skal konfigureres til at "
"køre postfixadmin."

32
debian/po/de.po vendored

@ -1,32 +0,0 @@
# German translation of debconf templates for postfixadmin.
# Copyright (C) 2012 Holger Wansing
# This file is distributed under the same license as the postfixadmin package.
# Holger Wansing <linux@wansing-online.de>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: postfixadmin 2.3.5-1\n"
"Report-Msgid-Bugs-To: postfixadmin@packages.debian.org\n"
"POT-Creation-Date: 2008-10-27 22:14+0100\n"
"PO-Revision-Date: 2012-04-10 21:19+0200\n"
"Last-Translator: Holger Wansing <linux@wansing-online.de>\n"
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid "Web server to reconfigure automatically:"
msgstr "Webserver, der automatisch neu konfiguriert werden soll:"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid ""
"Please choose the web server that should be automatically configured to run "
"postfixadmin."
msgstr ""
"Bitte wählen Sie den Webserver, der automatisch konfiguriert werden soll, um "
"Postfixadmin auszuführen."

53
debian/po/es.po vendored

@ -1,53 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Changes:
# - Initial translation
# Matías Bellone <matiasbellone+debian@gmail.com>, 2012
#
# Traductores, si no conocen el formato PO, merece la pena leer la
# documentación de gettext, especialmente las secciones dedicadas a este
# formato, por ejemplo ejecutando:
# info -n '(gettext)PO Files'
# info -n '(gettext)Header Entry'
#
# Equipo de traducción al español, por favor, lean antes de traducir
# los siguientes documentos:
#
# - El proyecto de traducción de Debian al español
# http://www.debian.org/intl/spanish/
# especialmente las notas de traducción en
# http://www.debian.org/intl/spanish/notas
#
# - La guía de traducción de po's de debconf:
# /usr/share/doc/po-debconf/README-trans
# o http://www.debian.org/intl/l10n/po-debconf/README-trans
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: postfixadmin@packages.debian.org\n"
"POT-Creation-Date: 2008-10-27 22:14+0100\n"
"PO-Revision-Date: 2012-04-15 04:27:00+00:00\n"
"Last-Translator: Matías Bellone <matiasbellone+debian@gmail.com>\n"
"Language-Team: Debian Spanish <debian-l10n-spanish@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid "Web server to reconfigure automatically:"
msgstr "Servidor web a reconfigurar automáticamente:"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid ""
"Please choose the web server that should be automatically configured to run "
"postfixadmin."
msgstr ""
"Seleccione el servidor web que deberá ser configurado automáticamente "
"para ejecutar «postfixadmin»."

35
debian/po/fr.po vendored

@ -1,35 +0,0 @@
# Translation of postfixadmin debconf template to French.
# Copyright (C) 2012 Debian French l10n team <debian-l10n-french@lists.debian.org>
# This file is distributed under the same license as the postfixadmin package.
# Translators:
# Christian Perrier <bubulle@debian.org>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: postfixadmin@packages.debian.org\n"
"POT-Creation-Date: 2008-10-27 22:14+0100\n"
"PO-Revision-Date: 2012-04-07 19:46+0200\n"
"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"X-Generator: Lokalize 1.2\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid "Web server to reconfigure automatically:"
msgstr "Serveur web à reconfigurer automatiquement :"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid ""
"Please choose the web server that should be automatically configured to run "
"postfixadmin."
msgstr ""
"Veuillez choisir le serveur web qui doit être configuré automatiquement pour "
"exécuter postfixadmin."

34
debian/po/it.po vendored

@ -1,34 +0,0 @@
# Italian translation of postfixadmin debconf messages.
# Copyright (C) 2012 postfixadmin package copyright holder
# This file is distributed under the same license as the postfixadmin package.
# Beatrice Torracca <beatricet@libero.it>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: postfixadmin\n"
"Report-Msgid-Bugs-To: postfixadmin@packages.debian.org\n"
"POT-Creation-Date: 2008-10-27 22:14+0100\n"
"PO-Revision-Date: 2012-04-07 16:15+0200\n"
"Last-Translator: Beatrice Torracca <beatricet@libero.it>\n"
"Language-Team: Italian <debian-l10n-italian@lists.debian.org>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Virtaal 0.7.1\n"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid "Web server to reconfigure automatically:"
msgstr "Server web da riconfigurare automaticamente:"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid ""
"Please choose the web server that should be automatically configured to run "
"postfixadmin."
msgstr ""
"Scegliere il server web che deve essere configurato automaticamente per "
"eseguire postfixadmin."

32
debian/po/nl.po vendored

@ -1,32 +0,0 @@
# Dutch translation of postfixadmin debconf templates.
# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the postfixadmin package.
# Jeroen Schot <schot@a-eskwadraat.nl>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: postfixadmin 2.3.5-1\n"
"Report-Msgid-Bugs-To: postfixadmin@packages.debian.org\n"
"POT-Creation-Date: 2008-10-27 22:14+0100\n"
"PO-Revision-Date: 2012-04-12 15:26+0200\n"
"Last-Translator: Jeroen Schot <schot@a-eskwadraat.nl>\n"
"Language-Team: Debian l10n Dutch <debian-l10n-dutch@lists.debian.org>\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid "Web server to reconfigure automatically:"
msgstr "Automatisch te configureren webserver:"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid ""
"Please choose the web server that should be automatically configured to run "
"postfixadmin."
msgstr ""
"Welke webserver moet automatisch worden geconfigureerd voor postfixadmin?"

37
debian/po/pl.po vendored

@ -1,37 +0,0 @@
# Translation of ostfixadmi debconf templates to Polish.
# Copyright (C) 2008
# This file is distributed under the same license as the ostfixadmi package.
#
# Michał Kułach <michal.kulach@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: postfixadmin@packages.debian.org\n"
"POT-Creation-Date: 2008-10-27 22:14+0100\n"
"PO-Revision-Date: 2012-04-07 18:47+0200\n"
"Last-Translator: Michał Kułach <michal.kulach@gmail.com>\n"
"Language-Team: Polish <debian-l10n-polish@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pl\n"
"X-Generator: Lokalize 1.2\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid "Web server to reconfigure automatically:"
msgstr "Serwer WWW do automatycznej konfiguracji:"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid ""
"Please choose the web server that should be automatically configured to run "
"postfixadmin."
msgstr ""
"Proszę wybrać serwer WWW, który powinien być automatycznie skonfigurowany w "
"celu uruchomienia postfixadmin."

32
debian/po/pt.po vendored

@ -1,32 +0,0 @@
# Portuguese translation for postfixadmin (debconf)
# This file is distributed under the same license as the postfixadmin package.
# Rui Branco <ruipb@debianpt.org>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: postfixadmin 2.3.5-1\n"
"Report-Msgid-Bugs-To: postfixadmin@packages.debian.org\n"
"POT-Creation-Date: 2008-10-27 22:14+0100\n"
"PO-Revision-Date: 2012-04-09 21:26+0100\n"
"Last-Translator: Rui Branco <ruipb@debianpt.org>\n"
"Language-Team: Portuguese <traduz@debianpt.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid "Web server to reconfigure automatically:"
msgstr "Servidor Web a reconfigurar automaticamente:"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid ""
"Please choose the web server that should be automatically configured to run "
"postfixadmin."
msgstr ""
"Por favor escolha o servidor web a ser reconfigurado para correr o "
"postfixadmin."

36
debian/po/ru.po vendored

@ -1,36 +0,0 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the postfixadmin package.
#
# Yuri Kozlov <yuray@komyakino.ru>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: 2.3.5-1\n"
"Report-Msgid-Bugs-To: postfixadmin@packages.debian.org\n"
"POT-Creation-Date: 2008-10-27 22:14+0100\n"
"PO-Revision-Date: 2012-04-09 20:40+0400\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ru\n"
"X-Generator: Lokalize 1.2\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<"
"=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid "Web server to reconfigure automatically:"
msgstr "Веб-сервер для автоматической перенастройки:"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid ""
"Please choose the web server that should be automatically configured to run "
"postfixadmin."
msgstr ""
"Выберите веб-сервер, который нужно автоматически настроить для запуска "
"dpostfixadmin."

33
debian/po/sv.po vendored

@ -1,33 +0,0 @@
# Translation of postfixadmin debconf template to Swedish
# Copyright (C) 2012 Martin Bagge <brother@bsnet.se>
# This file is distributed under the same license as the postfixadmin package.
#
# Martin Bagge <brother@bsnet.se>, 2012
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: postfixadmin@packages.debian.org\n"
"POT-Creation-Date: 2008-10-27 22:14+0100\n"
"PO-Revision-Date: 2012-04-10 18:40+0100\n"
"Last-Translator: Martin Bagge / brother <brother@bsnet.se>\n"
"Language-Team: Swedish <debian-l10n-swedish@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Swedish\n"
"X-Poedit-Country: Sweden\n"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid "Web server to reconfigure automatically:"
msgstr "Webbservrar som ska ställas in automatiskt:"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid ""
"Please choose the web server that should be automatically configured to run "
"postfixadmin."
msgstr ""
"Välj webbservrar som automatiskt ska ställas in för att köra postfixadmin."

@ -1,31 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: postfixadmin@packages.debian.org\n"
"POT-Creation-Date: 2008-10-27 22:14+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid "Web server to reconfigure automatically:"
msgstr ""
#. Type: multiselect
#. Description
#: ../templates:1001
msgid ""
"Please choose the web server that should be automatically configured to run "
"postfixadmin."
msgstr ""

31
debian/po/zh_TW.po vendored

@ -1,31 +0,0 @@
# Chinese translations for PACKAGE package.
# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Vincent Chen <vinmun@gmail.com>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: postfixadmin@packages.debian.org\n"
"POT-Creation-Date: 2008-10-27 22:14+0100\n"
"PO-Revision-Date: 2012-04-09 18:25-0700\n"
"Last-Translator: Vincent Chen <vinmun@gmail.com>\n"
"Language-Team: Chinese (traditional)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zh_TW\n"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid "Web server to reconfigure automatically:"
msgstr "網頁伺服器將自動重新設定:"
#. Type: multiselect
#. Description
#: ../templates:1001
msgid ""
"Please choose the web server that should be automatically configured to run "
"postfixadmin."
msgstr "請選擇要自動執行 postfixadmin 的網頁伺服器"

@ -0,0 +1 @@
conf debian/apache/postfixadmin.conf

@ -2,9 +2,6 @@
set -e set -e
. /usr/share/debconf/confmodule . /usr/share/debconf/confmodule
db_version 2.0
db_input high postfixadmin/reconfigure-webserver || true
db_go || true
if [ -f /usr/share/dbconfig-common/dpkg/config ]; then if [ -f /usr/share/dbconfig-common/dpkg/config ]; then
# we support mysql and pgsql # we support mysql and pgsql

@ -2,4 +2,3 @@ usr/share/postfixadmin
usr/share/postfixadmin/css usr/share/postfixadmin/css
usr/share/doc/postfixadmin usr/share/doc/postfixadmin
etc/postfixadmin etc/postfixadmin
etc/apache2/conf.d

@ -1,14 +1,8 @@
*.php usr/share/postfixadmin *.php usr/share/postfixadmin
*.js usr/share/postfixadmin
configs usr/share/postfixadmin
css usr/share/postfixadmin css usr/share/postfixadmin
images usr/share/postfixadmin images usr/share/postfixadmin
languages usr/share/postfixadmin languages usr/share/postfixadmin
model usr/share/postfixadmin model usr/share/postfixadmin
scripts usr/share/postfixadmin
smarty usr/share/postfixadmin
templates usr/share/postfixadmin templates usr/share/postfixadmin
templates_c usr/share/postfixadmin
users usr/share/postfixadmin users usr/share/postfixadmin
debian/apache.conf etc/postfixadmin debian/lighttpd/90-postfixadmin.conf etc/lighttpd/conf-available
debian/lighttpd.conf etc/postfixadmin

@ -0,0 +1,3 @@
# move webserver configuration files
mv_conffile /etc/postfixadmin/apache.conf /etc/apache2/conf-available/postfixadmin.conf 2.3.7-1~
mv_conffile /etc/postfixadmin/lighttpd.conf /etc/lighttpd/conf-available/postfixadmin.conf 2.3.7-1~

@ -8,24 +8,17 @@ if [ "$1" = "configure" ]; then
. /usr/share/debconf/confmodule . /usr/share/debconf/confmodule
. /usr/share/dbconfig-common/dpkg/postinst . /usr/share/dbconfig-common/dpkg/postinst
dbc_go postfixadmin $@ dbc_go postfixadmin $@
fi
# configure webserver stuff # remove legacy apache and lighthttpd configuration symlink,
db_get postfixadmin/reconfigure-webserver # conf.d is no longer supported with Apache 2.4
servers="$RET" if [ "$(readlink /etc/apache2/conf.d/postfixadmin)" = "../../postfixadmin/apache.conf" ]; then
restart="$servers" rm -f /etc/apache2/conf.d/postfixadmin
linkdestination_apache="../../postfixadmin/apache.conf"
linkdestination_lighttpd="../../postfixadmin/lighttpd.conf"
linkname="postfixadmin"
if [ -e /usr/share/wwwconfig-common/confd-link.sh ]; then
. /usr/share/wwwconfig-common/confd-link.sh
else
. /usr/share/postfixadmin/confd-link.sh
fi fi
. /usr/share/wwwconfig-common/restart.sh if [ "$(readlink /etc/lighttpd/conf-available/postfixadmin)" = "../../postfixadmin/lighttpd.conf" ]; then
rm -f /etc/lighttpd/conf-available/postfixadmin
fi fi
#DEBHELPER# #DEBHELPER#
chown www-data /usr/share/postfixadmin/templates_c
exit 0 exit 0

@ -6,16 +6,6 @@ if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then
. /usr/share/debconf/confmodule . /usr/share/debconf/confmodule
db_version 2.0 db_version 2.0
# restart the webserver only if we know which one was configured.
if db_get postfixadmin/reconfigure-webserver; then
servers="$RET"
restart=$servers
linkname="postfixadmin"
if [ -e /usr/share/wwwconfig-common/restart.sh ]; then
. /usr/share/wwwconfig-common/restart.sh
fi
fi
if [ -f /usr/share/dbconfig-common/dpkg/postrm ]; then if [ -f /usr/share/dbconfig-common/dpkg/postrm ]; then
. /usr/share/dbconfig-common/dpkg/postrm . /usr/share/dbconfig-common/dpkg/postrm
dbc_go postfixadmin $@ dbc_go postfixadmin $@

@ -8,17 +8,4 @@ if [ -f /usr/share/dbconfig-common/dpkg/prerm ]; then
dbc_go postfixadmin $@ dbc_go postfixadmin $@
fi fi
if [ -f /usr/share/debconf/confmodule ]; then
. /usr/share/debconf/confmodule
db_version 2.0
db_get postfixadmin/reconfigure-webserver
servers="$RET"
linkname="postfixadmin"
if [ -e /usr/share/wwwconfig-common/confd-link.sh ]; then
. /usr/share/wwwconfig-common/confd-link.sh
else
. /usr/share/postfixadmin/confd-link.sh
fi
fi
#DEBHELPER# #DEBHELPER#

17
debian/rules vendored

@ -7,6 +7,12 @@
export VERSION = $(shell grep -E "version = '.*';" functions.inc.php |sed -e "s/.version = '//" |sed -e "s/';.*//" |sed -e "s/ /-/g") export VERSION = $(shell grep -E "version = '.*';" functions.inc.php |sed -e "s/.version = '//" |sed -e "s/';.*//" |sed -e "s/ /-/g")
export DEBVERSION = $(shell grep -E "postfixadmin .([0-9]+|\.)+" debian/changelog |head -1 |sed -e "s/postfixadmin .//" |sed -e "s/-.*//") export DEBVERSION = $(shell grep -E "postfixadmin .([0-9]+|\.)+" debian/changelog |head -1 |sed -e "s/postfixadmin .//" |sed -e "s/-.*//")
# Create a needed tar.gz file to build a non-nativ .dpkg
prep:
rm -f ../postfixadmin_*orig.tar.gz
cd ..; tar --exclude-vcs --exclude=$(notdir ${CURDIR})/debian --exclude=$(notdir ${CURDIR})/.pc -cvzf postfixadmin_${DEBVERSION}.orig.tar.gz $(notdir ${CURDIR})
build: build-arch build-indep build: build-arch build-indep
build-arch: build-stamp build-arch: build-stamp
build-indep: build-stamp build-indep: build-stamp
@ -14,16 +20,10 @@ build-stamp:
dh_testdir dh_testdir
touch build-stamp touch build-stamp
# Create a needed tar.gz file to build a non-nativ .dpkg
prep:
rm -f ../postfixadmin_*orig.tar.gz
cd ..; tar --exclude-vcs --exclude=$(notdir ${CURDIR})/debian --exclude=$(notdir ${CURDIR})/.pc -cvzf postfixadmin_${DEBVERSION}.orig.tar.gz $(notdir ${CURDIR})
clean: clean:
dh_testdir dh_testdir
dh_testroot dh_testroot
dh_clean dh_clean
debconf-updatepo
install: build install: build
dh_testdir dh_testdir
@ -31,12 +31,9 @@ install: build
dh_prep dh_prep
dh_installdirs dh_installdirs
dh_install dh_install
dh_apache2
mv debian/postfixadmin/usr/share/postfixadmin/config.inc.php debian/postfixadmin/etc/postfixadmin/config.inc.php mv debian/postfixadmin/usr/share/postfixadmin/config.inc.php debian/postfixadmin/etc/postfixadmin/config.inc.php
find debian/postfixadmin -name .svn | xargs -r rm -r find debian/postfixadmin -name .svn | xargs -r rm -r
chmod +x debian/postfixadmin/usr/share/postfixadmin/scripts/postfixadmin-cli
chmod +x debian/postfixadmin/usr/share/postfixadmin/scripts/postfixadmin-cli.php
chown www-data debian/postfixadmin/usr/share/postfixadmin/templates_c
# Build architecture-independent files here. # Build architecture-independent files here.
binary-indep: build install binary-indep: build install

6
debian/templates vendored

@ -1,6 +0,0 @@
Template: postfixadmin/reconfigure-webserver
Type: multiselect
Choices: apache2, apache, apache-ssl, apache-perl, lighttpd
_Description: Web server to reconfigure automatically:
Please choose the web server that should be automatically configured
to run postfixadmin.

@ -93,6 +93,7 @@ if ($_SERVER['REQUEST_METHOD'] == "GET") {
if ($_SERVER['REQUEST_METHOD'] == "POST") { if ($_SERVER['REQUEST_METHOD'] == "POST") {
if (safepost('token') != $_SESSION['PFA_token']) die('Invalid token!');
$inp_values = safepost('value', array() ); $inp_values = safepost('value', array() );
foreach($form_fields as $key => $field) { foreach($form_fields as $key => $field) {

@ -16,6 +16,7 @@
*/ */
$version = '2.93'; $version = '2.93';
$min_db_version = 1835; # update (at least) before a release with the latest function numbrer in upgrade.php
/** /**
* check_session * check_session
@ -1754,7 +1755,34 @@ function table_by_key ($table_key) {
return $CONF['database_prefix'].$table; return $CONF['database_prefix'].$table;
} }
/*
* check if the database layout is up to date
* returns the current 'version' value from the config table
* if $error_out is True (default), die() with a message that recommends to run setup.php.
*/
function check_db_version($error_out = True) {
global $min_db_version;
$table = table_by_key('config');
$sql = "SELECT value FROM $table WHERE name = 'version'";
$r = db_query($sql);
if($r['rows'] == 1) {
$row = db_assoc($r['result']);
$dbversion = $row['value'];
} else {
$dbversion = 0;
db_query("INSERT INTO $table (name, value) VALUES ('version', '0')", 0, '');
}
if ( ($dbversion < $min_db_version) && $error_out == True) {
echo "ERROR: The PostfixAdmin database layout is outdated (you have r$dbversion, but r$min_db_version is expected).\nPlease run setup.php to upgrade the database.\n";
exit(1);
}
return $dbversion;
}
/* /*
Called after an alias_domain has been deleted in the DBMS. Called after an alias_domain has been deleted in the DBMS.

@ -14,14 +14,14 @@ $PALANG['exit'] = 'Verlassen';
$PALANG['cancel'] = 'Abbrechen'; $PALANG['cancel'] = 'Abbrechen';
$PALANG['save'] = 'Änderungen speichern'; $PALANG['save'] = 'Änderungen speichern';
$PALANG['confirm'] = 'Sind Sie sicher dass Sie das löschen wollen?\n'; $PALANG['confirm'] = 'Sind Sie sicher dass Sie das löschen wollen?\n';
$PALANG['confirm_delete_admin'] = 'Do you really want to delete the admin %s?'; # XXX $PALANG['confirm_delete_admin'] = 'Wollen Sie wirklich den Admin %s löschen?';
$PALANG['confirm_delete_alias'] = 'Do you really want to delete the alias %s?'; # XXX $PALANG['confirm_delete_alias'] = 'Wollen Sie wirklich den Alias %s löschen?';
$PALANG['confirm_delete_aliasdomain'] = 'Do you really want to delete the alias domain %s?'; # XXX $PALANG['confirm_delete_aliasdomain'] = 'Wollen Sie wirklich die Admin-Domain %s löschen?';
$PALANG['confirm_delete_domain'] = 'Wollen Sie wirklich alle Einträge der Domain %s löschen? Dies kann NICHT rückgängig gemacht werden!'; $PALANG['confirm_delete_domain'] = 'Wollen Sie wirklich alle Einträge der Domain %s löschen? Dies kann NICHT rückgängig gemacht werden!';
$PALANG['confirm_delete_fetchmail'] = 'Do you really want to delete the fetchmail job %s?'; # XXX $PALANG['confirm_delete_fetchmail'] = 'Wollen Sie wirklich den Fetchmail-Job %s löschen?';
$PALANG['confirm_delete_mailbox'] = 'Do you really want to delete the mailbox %s?'; # XXX $PALANG['confirm_delete_mailbox'] = 'Wollen Sie wirklich die Mailbox %s löschen?';
$PALANG['confirm_delete_vacation'] = 'Do you really want to delete the vacation message for %s?'; # XXX $PALANG['confirm_delete_vacation'] = 'Wollen Sie wirklich die Abwesenheitsnachricht für %s löschen?';
$PALANG['no_delete_permissions'] = 'You are not allowed to delete %s!'; # XXX $PALANG['no_delete_permissions'] = 'Sie dürfen %s nicht löschen!';
$PALANG['check_update'] = 'Auf Updates überprüfen'; $PALANG['check_update'] = 'Auf Updates überprüfen';
$PALANG['invalid_parameter'] = 'Ungültiger Parameter!'; $PALANG['invalid_parameter'] = 'Ungültiger Parameter!';
$PALANG['show'] = 'Anzeigen:'; $PALANG['show'] = 'Anzeigen:';
@ -31,7 +31,7 @@ $PALANG['unknown'] = 'unbekannt';
$PALANG['download_csv'] = 'Diese Liste als CSV-Datei herunterladen'; $PALANG['download_csv'] = 'Diese Liste als CSV-Datei herunterladen';
$PALANG['missing_field'] = 'Das Feld %s fehlt'; $PALANG['missing_field'] = 'Das Feld %s fehlt';
$PALANG['must_be_numeric'] = '%s muss numerisch sein'; $PALANG['must_be_numeric'] = '%s muss numerisch sein';
$PALANG['must_be_numeric_bigger_than_null'] = '%s must be numeric and bigger than 0'; # XXX $PALANG['must_be_numeric_bigger_than_null'] = '%s muss numerisch und größer als 0 sein';
$PALANG['must_be_boolean'] = "%s muss ein Bool'scher Wert sein"; $PALANG['must_be_boolean'] = "%s muss ein Bool'scher Wert sein";
$PALANG['invalid_value_given'] = 'Ungültiger Wert für %s angegeben'; $PALANG['invalid_value_given'] = 'Ungültiger Wert für %s angegeben';
$PALANG['edit_not_allowed'] = 'Sie dürfen %s nicht bearbeiten!'; $PALANG['edit_not_allowed'] = 'Sie dürfen %s nicht bearbeiten!';
@ -181,8 +181,8 @@ $PALANG['pVacation_result_added'] = 'Automatische Antwort für %s wurde aktivier
$PALANG['pVacation_reply_type'] = 'Choice of reply'; # XXX $PALANG['pVacation_reply_type'] = 'Choice of reply'; # XXX
$PALANG['pVacation_reply_delay_time'] = 'Interval time'; # XXX $PALANG['pVacation_reply_delay_time'] = 'Interval time'; # XXX
$PALANG['pVacation_reply_delay_time_text'] = 'Zeit in Sekunden'; $PALANG['pVacation_reply_delay_time_text'] = 'Zeit in Sekunden';
$PALANG['pVacation_until_before_today'] = 'The Date of [Active until] is set before Today'; # XXX $PALANG['pVacation_until_before_today'] = 'Das Datum von [Aktiv bis] ist in der Vergangenheit';
$PALANG['pVacation_until_before_from'] = 'The Date of [Active until] is set before [Active from]'; # XXX $PALANG['pVacation_until_before_from'] = 'Das Datum von [Aktiv bis] ist vor [Aktiv ab]';
$PALANG['reply_once'] = 'Einmal antworten'; $PALANG['reply_once'] = 'Einmal antworten';
$PALANG['reply_every_mail'] = 'Jede Mail beantworten'; $PALANG['reply_every_mail'] = 'Jede Mail beantworten';
$PALANG['reply_once_per_day'] = 'Einmal pro Tag antworten'; $PALANG['reply_once_per_day'] = 'Einmal pro Tag antworten';
@ -213,9 +213,9 @@ $PALANG['pViewlog_action_create_admin'] = 'Admin erstellen';
$PALANG['pViewlog_action_edit_admin'] = 'Admin ändern'; $PALANG['pViewlog_action_edit_admin'] = 'Admin ändern';
$PALANG['pViewlog_action_delete_admin'] = 'Admin löschen'; $PALANG['pViewlog_action_delete_admin'] = 'Admin löschen';
$PALANG['pViewlog_action_edit_vacation'] = 'Automatische Antwort ändern'; $PALANG['pViewlog_action_edit_vacation'] = 'Automatische Antwort ändern';
$PALANG['pViewlog_action_create_fetchmail'] = 'create fetchmail job'; # XXX $PALANG['pViewlog_action_create_fetchmail'] = 'Fetchmail-Job erstellen';
$PALANG['pViewlog_action_edit_fetchmail'] = 'edit fetchmail job'; # XXX $PALANG['pViewlog_action_edit_fetchmail'] = 'Fetchmail-Job bearbeiten';
$PALANG['pViewlog_action_delete_fetchmail'] = 'delete fetchmail job'; # XXX $PALANG['pViewlog_action_delete_fetchmail'] = 'Fetchmail-Job löschen';
$PALANG['pViewlog_result_error'] = 'Kann keine Einträge finden!'; $PALANG['pViewlog_result_error'] = 'Kann keine Einträge finden!';
@ -272,8 +272,8 @@ $PALANG['pAdminEdit_domain_maxquota'] = 'Max Quota';
$PALANG['pAdminEdit_domain_maxquota_text'] = 'MB | -1 = ausschalten | 0 = kein Limit'; $PALANG['pAdminEdit_domain_maxquota_text'] = 'MB | -1 = ausschalten | 0 = kein Limit';
$PALANG['pAdminEdit_domain_quota'] = 'Domain Quota'; $PALANG['pAdminEdit_domain_quota'] = 'Domain Quota';
$PALANG['transport'] = 'Transport'; $PALANG['transport'] = 'Transport';
$PALANG['pAdminEdit_domain_transport_text'] = 'Define transport'; $PALANG['pAdminEdit_domain_transport_text'] = 'Transport festlegen';
$PALANG['pAdminEdit_domain_backupmx'] = 'Mail server is backup MX'; $PALANG['pAdminEdit_domain_backupmx'] = 'Mail server ist Backup-MX';
$PALANG['pAdminEdit_domain_result_error'] = 'Das Ändern der Domain %s ist fehlgeschlagen'; $PALANG['pAdminEdit_domain_result_error'] = 'Das Ändern der Domain %s ist fehlgeschlagen';
$PALANG['pAdminCreate_admin_welcome'] = 'Neuen Domain-Admin hinzufügen'; $PALANG['pAdminCreate_admin_welcome'] = 'Neuen Domain-Admin hinzufügen';
@ -344,8 +344,8 @@ $PALANG['pInvalidMailRegex'] = "Ungültige Mailadresse %s - Überprüfung per Re
$PALANG['pFetchmail_welcome'] = 'E-Mail Abruf für: '; $PALANG['pFetchmail_welcome'] = 'E-Mail Abruf für: ';
$PALANG['pFetchmail_new_entry'] = 'Neuer Eintrag'; $PALANG['pFetchmail_new_entry'] = 'Neuer Eintrag';
$PALANG['fetchmail_already_exists'] = 'This fetchmail job already exists!'; # XXX $PALANG['fetchmail_already_exists'] = 'Dieser Fetchmail-Job existiert schon!';
$PALANG['fetchmail_does_not_exist'] = 'This fetchmail job does not exist!'; # XXX $PALANG['fetchmail_does_not_exist'] = 'Dieser Fetchmail-Job existiert nicht!';
$PALANG['pFetchmail_database_save_error'] = 'Eintrag konnte nicht in der Datenbank gespeichert werden!'; $PALANG['pFetchmail_database_save_error'] = 'Eintrag konnte nicht in der Datenbank gespeichert werden!';
$PALANG['pFetchmail_database_save_success'] = 'Eintrag wurde in der Datenbank gespeichert'; $PALANG['pFetchmail_database_save_success'] = 'Eintrag wurde in der Datenbank gespeichert';
$PALANG['pFetchmail_error_invalid_id'] = 'Kein Eintrag mit ID %s gefunden!'; $PALANG['pFetchmail_error_invalid_id'] = 'Kein Eintrag mit ID %s gefunden!';

@ -34,6 +34,7 @@ if($CONF['configured'] !== true) {
exit; exit;
} }
check_db_version(); # check if the database layout is up to date (and error out if not)
if ($_SERVER['REQUEST_METHOD'] == "POST") if ($_SERVER['REQUEST_METHOD'] == "POST")
{ {

@ -228,7 +228,7 @@ abstract class PFAHandler {
* *vtxt "virtual" line of text, coming from JOINs etc. * *vtxt "virtual" line of text, coming from JOINs etc.
* html raw html (use carefully, won't get auto-escaped by smarty! Don't use with user input!) * html raw html (use carefully, won't get auto-escaped by smarty! Don't use with user input!)
* pass password (will be encrypted with pacrypt()) * pass password (will be encrypted with pacrypt())
* b64p password (will be stored with base64_encode()) * b64p password (will be stored with base64_encode() - but will NOT be decoded automatically)
* num number * num number
* txtl text "list" - array of one line texts * txtl text "list" - array of one line texts
* *vnum "virtual" number, coming from JOINs etc. * *vnum "virtual" number, coming from JOINs etc.
@ -566,14 +566,14 @@ abstract class PFAHandler {
if (db_pgsql()) { if (db_pgsql()) {
$formatted_date = "TO_DATE(text(###KEY###), '" . escape_string(Config::Lang('dateformat_pgsql')) . "')"; $formatted_date = "TO_DATE(text(###KEY###), '" . escape_string(Config::Lang('dateformat_pgsql')) . "')";
$base64_decode = "DECODE(###KEY###, 'base64')"; # $base64_decode = "DECODE(###KEY###, 'base64')";
} elseif (db_sqlite()) { } elseif (db_sqlite()) {
$formatted_date = "strftime(###KEY###, '" . escape_string(Config::Lang('dateformat_mysql')) . "')"; $formatted_date = "strftime(###KEY###, '" . escape_string(Config::Lang('dateformat_mysql')) . "')";
$base64_decode = "base64_decode(###KEY###)"; # $base64_decode = "base64_decode(###KEY###)";
} else { } else {
$formatted_date = "DATE_FORMAT(###KEY###, '" . escape_string(Config::Lang('dateformat_mysql')) . "')"; $formatted_date = "DATE_FORMAT(###KEY###, '" . escape_string(Config::Lang('dateformat_mysql')) . "')";
$base64_decode = "FROM_BASE64(###KEY###)"; # $base64_decode = "FROM_BASE64(###KEY###)"; # requires MySQL >= 5.6
} }
$colformat = array( $colformat = array(
@ -582,7 +582,7 @@ abstract class PFAHandler {
# 'bool' fields are always returned as 0/1, additonally _$field contains yes/no (already translated) # 'bool' fields are always returned as 0/1, additonally _$field contains yes/no (already translated)
'bool' => "CASE ###KEY### WHEN '" . db_get_boolean(true) . "' THEN '1' WHEN '" . db_get_boolean(false) . "' THEN '0' END as ###KEY###," . 'bool' => "CASE ###KEY### WHEN '" . db_get_boolean(true) . "' THEN '1' WHEN '" . db_get_boolean(false) . "' THEN '0' END as ###KEY###," .
"CASE ###KEY### WHEN '" . db_get_boolean(true) . "' THEN '$yes' WHEN '" . db_get_boolean(false) . "' THEN '$no' END as _###KEY###", "CASE ###KEY### WHEN '" . db_get_boolean(true) . "' THEN '$yes' WHEN '" . db_get_boolean(false) . "' THEN '$no' END as _###KEY###",
'b64p' => "$base64_decode AS ###KEY###", # 'b64p' => "$base64_decode AS ###KEY###", # not available in MySQL < 5.6, therefore not decoding for any database
); );
# get list of fields to display # get list of fields to display

@ -21,7 +21,7 @@ class VacationHandler extends PFAHandler {
'body' => pacol( 1, 1, 0, 'text', 'pUsersVacation_body' , '' , '' ), 'body' => pacol( 1, 1, 0, 'text', 'pUsersVacation_body' , '' , '' ),
'activefrom' => pacol( 1, 1, 1, 'text', 'pUsersVacation_activefrom' , '' , '' ), 'activefrom' => pacol( 1, 1, 1, 'text', 'pUsersVacation_activefrom' , '' , '' ),
'activeuntil' => pacol( 1, 1, 1, 'text', 'pUsersVacation_activeuntil' , '' , '' ), 'activeuntil' => pacol( 1, 1, 1, 'text', 'pUsersVacation_activeuntil' , '' , '' ),
# 'cache' => pacol( 0, 0, 0, 'text', '' , '' , '' ), # leftover from 2.2 'cache' => pacol( 0, 0, 0, 'text', '' , '' , '' ), # leftover from 2.2
'active' => pacol( 1, 1, 1, 'bool', 'active' , '' , 1 ), 'active' => pacol( 1, 1, 1, 'bool', 'active' , '' , 1 ),
'created' => pacol( 0, 0, 1, 'ts', 'created' , '' ), 'created' => pacol( 0, 0, 1, 'ts', 'created' , '' ),
'modified' => pacol( 0, 0, 1, 'ts', 'last_modified' , '' ), 'modified' => pacol( 0, 0, 1, 'ts', 'last_modified' , '' ),
@ -180,6 +180,7 @@ class VacationHandler extends PFAHandler {
'active' => db_get_boolean(true), 'active' => db_get_boolean(true),
'activefrom' => $activeFrom, 'activefrom' => $activeFrom,
'activeuntil' => $activeUntil, 'activeuntil' => $activeUntil,
'cache' => '',
); );
// is there an entry in the vacaton table for the user, or do we need to insert? // is there an entry in the vacaton table for the user, or do we need to insert?

@ -177,6 +177,9 @@ class PostfixAdmin {
return false; return false;
} }
# make sure global variables fron functions.inc.php end up in the global namespace, instead of being local to this function
global $version, $min_db_version;
if (!require_once(PATH . '/common.php')) { if (!require_once(PATH . '/common.php')) {
$this->stderr("Failed to load " . PATH . '/common.php'); $this->stderr("Failed to load " . PATH . '/common.php');
return false; return false;
@ -190,6 +193,8 @@ class PostfixAdmin {
public function dispatch() { public function dispatch() {
$CONF = Config::read('all'); $CONF = Config::read('all');
check_db_version(); # ensure the database layout is up to date
if (!isset($this->args[0])) { if (!isset($this->args[0])) {
$this->help(); $this->help();
return; return;

@ -39,6 +39,8 @@ $smtp_from_email = smtp_get_admin_email();
if ($_SERVER['REQUEST_METHOD'] == "POST") if ($_SERVER['REQUEST_METHOD'] == "POST")
{ {
if (safepost('token') != $_SESSION['PFA_token']) die('Invalid token!');
$fTo = safepost('fTo'); $fTo = safepost('fTo');
$fFrom = $smtp_from_email; $fFrom = $smtp_from_email;
$fSubject = safepost('fSubject'); $fSubject = safepost('fSubject');

@ -1,5 +1,6 @@
<div id="edit_form"> <div id="edit_form">
<form name="broadcast-message" method="post" action=""> <form name="broadcast-message" method="post" action="">
<input class="flat" type="hidden" name="token" value="{$smarty.session.PFA_token|escape:"url"}" />
<table> <table>
<tr> <tr>
<th colspan="2">{$PALANG.pBroadcast_title}</th> <th colspan="2">{$PALANG.pBroadcast_title}</th>

@ -1,6 +1,7 @@
<div id="edit_form"> <div id="edit_form">
<form name="edit_{$table}" method="post" action=""> <form name="edit_{$table}" method="post" action="">
<input class="flat" type="hidden" name="table" value="{$table}" /> <input class="flat" type="hidden" name="table" value="{$table}" />
<input class="flat" type="hidden" name="token" value="{$smarty.session.PFA_token|escape:"url"}" />
<table> <table>
<tr> <tr>

@ -1,5 +1,6 @@
<div id="edit_form"> <div id="edit_form">
<form name="password" method="post" action=""> <form name="password" method="post" action="">
<input class="flat" type="hidden" name="token" value="{$smarty.session.PFA_token|escape:"url"}" />
<table> <table>
<tr> <tr>
<th colspan="3">{$PALANG.pPassword_welcome}</th> <th colspan="3">{$PALANG.pPassword_welcome}</th>

@ -1,5 +1,6 @@
<div id="edit_form"> <div id="edit_form">
<form name="mailbox" method="post" action=""> <form name="mailbox" method="post" action="">
<input class="flat" type="hidden" name="token" value="{$smarty.session.PFA_token|escape:"url"}" />
<table> <table>
<tr> <tr>
<th colspan="3">{$PALANG.pSendmail_welcome}</th> <th colspan="3">{$PALANG.pSendmail_welcome}</th>

@ -1,5 +1,6 @@
<div id="edit_form"> <div id="edit_form">
<form name="alias" method="post" action=""> <form name="alias" method="post" action="">
<input class="flat" type="hidden" name="token" value="{$smarty.session.PFA_token|escape:"url"}" />
<table> <table>
<tr> <tr>
<th colspan="3">{$PALANG.pEdit_alias_welcome}<br /><em>{$PALANG.pEdit_alias_help}</em></th> <th colspan="3">{$PALANG.pEdit_alias_welcome}<br /><em>{$PALANG.pEdit_alias_help}</em></th>

@ -3,6 +3,7 @@
{/literal} {/literal}
<div id="edit_form"> <div id="edit_form">
<form name="edit-vacation" method="post" action=''> <form name="edit-vacation" method="post" action=''>
<input class="flat" type="hidden" name="token" value="{$smarty.session.PFA_token|escape:"url"}" />
<table> <table>
<tr> <tr>
<th colspan="3">{$PALANG.pUsersVacation_welcome}</th> <th colspan="3">{$PALANG.pUsersVacation_welcome}</th>

@ -131,21 +131,7 @@ if($CONF['database_type'] == 'pgsql') {
db_query_parsed($mysql, 0, " ENGINE = MYISAM COMMENT = 'PostfixAdmin settings'"); db_query_parsed($mysql, 0, " ENGINE = MYISAM COMMENT = 'PostfixAdmin settings'");
} }
$sql = "SELECT * FROM $table WHERE name = 'version'"; $version = check_db_version(False);
// insert into config('version', '01');
$r = db_query($sql);
if($r['rows'] == 1) {
$rs = $r['result'];
$row = db_array($rs);
$version = $row['value'];
} else {
db_query_parsed("INSERT INTO $table (name, value) VALUES ('version', '0')", 0, '');
$version = 0;
}
_do_upgrade($version); _do_upgrade($version);
function _do_upgrade($current_version) { function _do_upgrade($current_version) {

@ -52,6 +52,8 @@ if ($_SERVER['REQUEST_METHOD'] == "GET")
if ($_SERVER['REQUEST_METHOD'] == "POST") if ($_SERVER['REQUEST_METHOD'] == "POST")
{ {
if (safepost('token') != $_SESSION['PFA_token']) die('Invalid token!');
// user clicked on cancel button // user clicked on cancel button
if(isset($_POST['fCancel'])) { if(isset($_POST['fCancel'])) {
header("Location: main.php"); header("Location: main.php");

@ -30,6 +30,7 @@ $rel_path = '../';
define('POSTFIXADMIN_LOGOUT', 1); define('POSTFIXADMIN_LOGOUT', 1);
require_once("../common.php"); require_once("../common.php");
check_db_version(); # check if the database layout is up to date (and error out if not)
if ($_SERVER['REQUEST_METHOD'] == "POST") if ($_SERVER['REQUEST_METHOD'] == "POST")
{ {

@ -37,6 +37,8 @@ $pPassword_password_current_text = "";
if ($_SERVER['REQUEST_METHOD'] == "POST") if ($_SERVER['REQUEST_METHOD'] == "POST")
{ {
if (safepost('token') != $_SESSION['PFA_token']) die('Invalid token!');
if(isset($_POST['fCancel'])) { if(isset($_POST['fCancel'])) {
header("Location: main.php"); header("Location: main.php");
exit(0); exit(0);

@ -103,6 +103,8 @@ if ($_SERVER['REQUEST_METHOD'] == "GET") {
if ($_SERVER['REQUEST_METHOD'] == "POST") if ($_SERVER['REQUEST_METHOD'] == "POST")
{ {
if (safepost('token') != $_SESSION['PFA_token']) die('Invalid token!');
if(isset($_POST['fCancel'])) { if(isset($_POST['fCancel'])) {
header ("Location: $Return_url"); header ("Location: $Return_url");
exit(0); exit(0);

Loading…
Cancel
Save