From 269eb518145b1854b4de34109cd1827d85513013 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 25 Nov 2005 11:05:05 -0500
Subject: [PATCH] Email Black and Whitelists
---
interface/web/sites/lib/module.conf.php | 6
interface/web/sites/form/mail_domain.tform.php | 2
interface/web/sites/list/mail_blacklist.list.php | 69 ++++
interface/web/sites/mail_blacklist_list.php | 26 +
interface/web/sites/lib/lang/en_mail_blacklist_list.lng | 12
interface/web/sites/lib/lang/en_mail_domain_catchall.lng | 9
interface/web/sites/list/mail_whitelist.list.php | 69 ++++
interface/web/sites/lib/lang/en_mail_blacklist.lng | 8
interface/web/sites/mail_blacklist_edit.php | 55 +++
interface/web/sites/mail_box_edit.php | 4
interface/web/sites/templates/mail_whitelist_edit.htm | 28 +
interface/web/sites/mail_whitelist_del.php | 54 +++
interface/web/sites/templates/mail_whitelist_list.htm | 27 +
interface/web/sites/lib/lang/en_mail_whitelist_list.lng | 12
interface/web/sites/form/mail_whitelist.tform.php | 96 ++++++
interface/web/sites/mail_whitelist_list.php | 26 +
interface/sql/ispconfig3db.sql | 52 +++
interface/web/sites/templates/mail_blacklist_list.htm | 27 +
interface/web/sites/mail_domain_catchall_list.php | 3
interface/web/sites/mail_domain_catchall_edit.php | 21 +
interface/web/sites/lib/lang/en_mail_whitelist.lng | 8
interface/web/sites/mail_blacklist_del.php | 54 +++
interface/web/sites/form/mail_domain_catchall.tform.php | 2
interface/web/sites/mail_whitelist_edit.php | 55 +++
interface/web/sites/templates/mail_blacklist_edit.htm | 28 +
interface/web/sites/form/mail_blacklist.tform.php | 96 ++++++
26 files changed, 834 insertions(+), 15 deletions(-)
diff --git a/interface/sql/ispconfig3db.sql b/interface/sql/ispconfig3db.sql
index ddfacec..d3bf57a 100644
--- a/interface/sql/ispconfig3db.sql
+++ b/interface/sql/ispconfig3db.sql
@@ -3,9 +3,9 @@
# http://www.phpmyadmin.net/ (download page)
#
# Host: localhost
-# Erstellungszeit: 24. November 2005 um 23:49
-# Server Version: 4.0.23
-# PHP-Version: 5.0.3
+# Erstellungszeit: 25. November 2005 um 17:03
+# Server Version: 4.0.22
+# PHP-Version: 5.0.2
# Datenbank: `ispconfig3`
# --------------------------------------------------------
@@ -16,8 +16,14 @@
DROP TABLE IF EXISTS mail_blacklist;
CREATE TABLE mail_blacklist (
blacklist_id int(11) NOT NULL auto_increment,
+ sys_userid int(11) NOT NULL default '0',
+ sys_groupid int(11) NOT NULL default '0',
+ sys_perm_user varchar(5) NOT NULL default '',
+ sys_perm_group varchar(5) NOT NULL default '',
+ sys_perm_other varchar(5) NOT NULL default '',
server_id int(11) NOT NULL default '0',
address varchar(255) NOT NULL default '',
+ active enum('0','1') NOT NULL default '1',
PRIMARY KEY (blacklist_id),
KEY server_id (server_id,address)
) TYPE=MyISAM;
@@ -26,6 +32,7 @@
# Daten f�r Tabelle `mail_blacklist`
#
+INSERT INTO mail_blacklist VALUES (1, 1, 1, 'riud', 'riud', '', 1, 'test@du.com', '1');
# --------------------------------------------------------
#
@@ -113,6 +120,7 @@
server_id int(11) NOT NULL default '0',
domain varchar(255) NOT NULL default '',
destination varchar(255) NOT NULL default '',
+ active enum('0','1') NOT NULL default '1',
PRIMARY KEY (domain_catchall_id),
KEY server_id (server_id,domain)
) TYPE=MyISAM;
@@ -121,6 +129,7 @@
# Daten f�r Tabelle `mail_domain_catchall`
#
+INSERT INTO mail_domain_catchall VALUES (1, 1, 1, 'riud', 'riud', '', 1, 'test.de', 'info@ensign.de', '1');
# --------------------------------------------------------
#
@@ -197,14 +206,47 @@
# --------------------------------------------------------
#
+# Tabellenstruktur f�r Tabelle `mail_transport`
+#
+
+DROP TABLE IF EXISTS mail_transport;
+CREATE TABLE mail_transport (
+ whitelist_id int(11) NOT NULL auto_increment,
+ sys_userid int(11) NOT NULL default '0',
+ sys_groupid int(11) NOT NULL default '0',
+ sys_perm_user varchar(5) NOT NULL default '',
+ sys_perm_group varchar(5) NOT NULL default '',
+ sys_perm_other varchar(5) NOT NULL default '',
+ server_id int(11) NOT NULL default '0',
+ domain varchar(255) NOT NULL default '',
+ destination varchar(255) NOT NULL default '',
+ active enum('0','1') NOT NULL default '1',
+ PRIMARY KEY (whitelist_id),
+ KEY server_id (server_id,destination),
+ KEY server_id_2 (server_id,domain)
+) TYPE=MyISAM;
+
+#
+# Daten f�r Tabelle `mail_transport`
+#
+
+# --------------------------------------------------------
+
+#
# Tabellenstruktur f�r Tabelle `mail_whitelist`
#
DROP TABLE IF EXISTS mail_whitelist;
CREATE TABLE mail_whitelist (
whitelist_id int(11) NOT NULL auto_increment,
+ sys_userid int(11) NOT NULL default '0',
+ sys_groupid int(11) NOT NULL default '0',
+ sys_perm_user varchar(5) NOT NULL default '',
+ sys_perm_group varchar(5) NOT NULL default '',
+ sys_perm_other varchar(5) NOT NULL default '',
server_id int(11) NOT NULL default '0',
address varchar(255) NOT NULL default '',
+ active enum('0','1') NOT NULL default '1',
PRIMARY KEY (whitelist_id),
KEY server_id (server_id,address)
) TYPE=MyISAM;
@@ -341,6 +383,10 @@
INSERT INTO sys_datalog VALUES (28, 'mail_box', 'mailbox_id:1', 'u', 1132788482, 'admin', 'a:1:{s:8:"cryptpwd";a:2:{s:3:"old";s:34:"$1$ye3.TQ1.$v/RvqbuU.Gh7UrLlA6HqX/";s:3:"new";s:0:"";}}');
INSERT INTO sys_datalog VALUES (29, 'mail_redirect', 'redirect_id:0', 'i', 1132859789, 'admin', 'a:5:{s:9:"server_id";a:2:{s:3:"old";N;s:3:"new";i:1;}s:5:"email";a:2:{s:3:"old";N;s:3:"new";s:11:"tom@test.de";}s:11:"destination";a:2:{s:3:"old";N;s:3:"new";s:12:"till@test.de";}s:4:"type";a:2:{s:3:"old";N;s:3:"new";s:5:"alias";}s:6:"active";a:2:{s:3:"old";N;s:3:"new";i:1;}}');
INSERT INTO sys_datalog VALUES (30, 'mail_redirect', 'redirect_id:0', 'i', 1132868928, 'admin', 'a:5:{s:9:"server_id";a:2:{s:3:"old";N;s:3:"new";i:1;}s:5:"email";a:2:{s:3:"old";N;s:3:"new";s:13:"hallo@test.de";}s:11:"destination";a:2:{s:3:"old";N;s:3:"new";s:17:"t.brehm@ensign.de";}s:4:"type";a:2:{s:3:"old";N;s:3:"new";s:7:"forward";}s:6:"active";a:2:{s:3:"old";N;s:3:"new";i:1;}}');
+INSERT INTO sys_datalog VALUES (31, 'mail_domain_catchall', 'domain_catchall_id:0', 'i', 1132930015, 'admin', 'a:3:{s:6:"domain";a:2:{s:3:"old";N;s:3:"new";s:7:"test.de";}s:11:"destination";a:2:{s:3:"old";N;s:3:"new";s:14:"info@ensign.de";}s:6:"active";a:2:{s:3:"old";N;s:3:"new";i:1;}}');
+INSERT INTO sys_datalog VALUES (32, 'mail_domain_catchall', 'domain_catchall_id:0', 'i', 1132930049, 'admin', 'a:3:{s:6:"domain";a:2:{s:3:"old";N;s:3:"new";s:7:"test.de";}s:11:"destination";a:2:{s:3:"old";N;s:3:"new";s:14:"info@ensign.de";}s:6:"active";a:2:{s:3:"old";N;s:3:"new";i:1;}}');
+INSERT INTO sys_datalog VALUES (33, 'mail_domain_catchall', 'domain_catchall_id:1', 'u', 1132930357, 'admin', 'a:1:{s:9:"server_id";a:2:{s:3:"old";s:1:"0";s:3:"new";i:1;}}');
+INSERT INTO sys_datalog VALUES (34, 'mail_blacklist', 'blacklist_id:0', 'i', 1132932985, 'admin', 'a:3:{s:9:"server_id";a:2:{s:3:"old";N;s:3:"new";i:1;}s:7:"address";a:2:{s:3:"old";N;s:3:"new";s:11:"test@du.com";}s:6:"active";a:2:{s:3:"old";N;s:3:"new";i:1;}}');
# --------------------------------------------------------
#
diff --git a/interface/web/sites/form/mail_blacklist.tform.php b/interface/web/sites/form/mail_blacklist.tform.php
new file mode 100644
index 0000000..541d705
--- /dev/null
+++ b/interface/web/sites/form/mail_blacklist.tform.php
@@ -0,0 +1,96 @@
+<?php
+
+/*
+ Form Definition
+
+ Tabledefinition
+
+ Datatypes:
+ - INTEGER (Forces the input to Int)
+ - DOUBLE
+ - CURRENCY (Formats the values to currency notation)
+ - VARCHAR (no format check, maxlength: 255)
+ - TEXT (no format check)
+ - DATE (Dateformat, automatic conversion to timestamps)
+
+ Formtype:
+ - TEXT (Textfield)
+ - TEXTAREA (Textarea)
+ - PASSWORD (Password textfield, input is not shown when edited)
+ - SELECT (Select option field)
+ - RADIO
+ - CHECKBOX
+ - CHECKBOXARRAY
+ - FILE
+
+ VALUE:
+ - Wert oder Array
+
+ Hint:
+ The ID field of the database table is not part of the datafield definition.
+ The ID field must be always auto incement (int or bigint).
+
+
+*/
+
+$form["title"] = "Email Blacklist";
+$form["description"] = "";
+$form["name"] = "mail_blacklist";
+$form["action"] = "mail_blacklist_edit.php";
+$form["db_table"] = "mail_blacklist";
+$form["db_table_idx"] = "blacklist_id";
+$form["db_history"] = "yes";
+$form["tab_default"] = "blacklist";
+$form["list_default"] = "mail_blacklist_list.php";
+$form["auth"] = 'yes'; // yes / no
+
+$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user
+$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user
+$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete
+
+$form["tabs"]['blacklist'] = array (
+ 'title' => "Blacklist",
+ 'width' => 100,
+ 'template' => "templates/mail_blacklist_edit.htm",
+ 'fields' => array (
+ ##################################
+ # Begin Datatable fields
+ ##################################
+ 'server_id' => array (
+ 'datatype' => 'INTEGER',
+ 'formtype' => 'SELECT',
+ 'default' => '',
+ 'datasource' => array ( 'type' => 'SQL',
+ 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
+ 'keyfield'=> 'server_id',
+ 'valuefield'=> 'server_name'
+ ),
+ 'value' => ''
+ ),
+ 'address' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY',
+ 'errmsg'=> 'address_error_notempty'),
+ ),
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
+ ),
+ 'active' => array (
+ 'datatype' => 'INTEGER',
+ 'formtype' => 'CHECKBOX',
+ 'default' => '1',
+ 'value' => '1'
+ ),
+ ##################################
+ # ENDE Datatable fields
+ ##################################
+ )
+);
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/sites/form/mail_domain.tform.php b/interface/web/sites/form/mail_domain.tform.php
index 91400df..81c822a 100644
--- a/interface/web/sites/form/mail_domain.tform.php
+++ b/interface/web/sites/form/mail_domain.tform.php
@@ -63,7 +63,7 @@
'formtype' => 'SELECT',
'default' => '',
'datasource' => array ( 'type' => 'SQL',
- 'querystring' => 'SELECT server_id,server_name FROM server WHERE 1 ORDER BY server_name',
+ 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
'keyfield'=> 'server_id',
'valuefield'=> 'server_name'
),
diff --git a/interface/web/sites/form/mail_domain_catchall.tform.php b/interface/web/sites/form/mail_domain_catchall.tform.php
index 30c4d2f..b7fe7bc 100644
--- a/interface/web/sites/form/mail_domain_catchall.tform.php
+++ b/interface/web/sites/form/mail_domain_catchall.tform.php
@@ -71,7 +71,7 @@
'errmsg'=> 'domain_error_unique'),
),
'datasource' => array ( 'type' => 'SQL',
- 'querystring' => "SELECT domain FROM mail_domain WHERE type = 'local' ORDER BY domain",
+ 'querystring' => "SELECT domain FROM mail_domain WHERE type = 'local' AND {AUTHSQL} ORDER BY domain",
'keyfield'=> 'domain',
'valuefield'=> 'domain'
),
diff --git a/interface/web/sites/form/mail_whitelist.tform.php b/interface/web/sites/form/mail_whitelist.tform.php
new file mode 100644
index 0000000..b9006bb
--- /dev/null
+++ b/interface/web/sites/form/mail_whitelist.tform.php
@@ -0,0 +1,96 @@
+<?php
+
+/*
+ Form Definition
+
+ Tabledefinition
+
+ Datatypes:
+ - INTEGER (Forces the input to Int)
+ - DOUBLE
+ - CURRENCY (Formats the values to currency notation)
+ - VARCHAR (no format check, maxlength: 255)
+ - TEXT (no format check)
+ - DATE (Dateformat, automatic conversion to timestamps)
+
+ Formtype:
+ - TEXT (Textfield)
+ - TEXTAREA (Textarea)
+ - PASSWORD (Password textfield, input is not shown when edited)
+ - SELECT (Select option field)
+ - RADIO
+ - CHECKBOX
+ - CHECKBOXARRAY
+ - FILE
+
+ VALUE:
+ - Wert oder Array
+
+ Hint:
+ The ID field of the database table is not part of the datafield definition.
+ The ID field must be always auto incement (int or bigint).
+
+
+*/
+
+$form["title"] = "Email Whitelist";
+$form["description"] = "";
+$form["name"] = "mail_whitelist";
+$form["action"] = "mail_whitelist_edit.php";
+$form["db_table"] = "mail_whitelist";
+$form["db_table_idx"] = "whitelist_id";
+$form["db_history"] = "yes";
+$form["tab_default"] = "whitelist";
+$form["list_default"] = "mail_whitelist_list.php";
+$form["auth"] = 'yes'; // yes / no
+
+$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user
+$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user
+$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete
+
+$form["tabs"]['whitelist'] = array (
+ 'title' => "Witelist",
+ 'width' => 100,
+ 'template' => "templates/mail_whitelist_edit.htm",
+ 'fields' => array (
+ ##################################
+ # Begin Datatable fields
+ ##################################
+ 'server_id' => array (
+ 'datatype' => 'INTEGER',
+ 'formtype' => 'SELECT',
+ 'default' => '',
+ 'datasource' => array ( 'type' => 'SQL',
+ 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name',
+ 'keyfield'=> 'server_id',
+ 'valuefield'=> 'server_name'
+ ),
+ 'value' => ''
+ ),
+ 'address' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY',
+ 'errmsg'=> 'address_error_notempty'),
+ ),
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
+ ),
+ 'active' => array (
+ 'datatype' => 'INTEGER',
+ 'formtype' => 'CHECKBOX',
+ 'default' => '1',
+ 'value' => '1'
+ ),
+ ##################################
+ # ENDE Datatable fields
+ ##################################
+ )
+);
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/lang/en_mail_blacklist.lng b/interface/web/sites/lib/lang/en_mail_blacklist.lng
new file mode 100644
index 0000000..a2f71fe
--- /dev/null
+++ b/interface/web/sites/lib/lang/en_mail_blacklist.lng
@@ -0,0 +1,8 @@
+<?php
+$wb["server_id_txt"] = 'Server';
+$wb["address_txt"] = 'Address';
+$wb["active_txt"] = 'Active';
+$wb["btn_save_txt"] = 'Save';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["address_error_notempty"] = 'Address is empty.';
+?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/lang/en_mail_blacklist_list.lng b/interface/web/sites/lib/lang/en_mail_blacklist_list.lng
new file mode 100644
index 0000000..c866e31
--- /dev/null
+++ b/interface/web/sites/lib/lang/en_mail_blacklist_list.lng
@@ -0,0 +1,12 @@
+<?php
+$wb["list_head_txt"] = 'Email Blacklist';
+$wb["server_id_txt"] = 'Server';
+$wb["address_txt"] = 'Blacklisted address';
+$wb["page_txt"] = 'Page';
+$wb["page_of_txt"] = 'of';
+$wb["page_next_txt"] = 'Next';
+$wb["page_back_txt"] = 'Back';
+$wb["delete_txt"] = 'Delete';
+$wb["filter_txt"] = 'Filter';
+$wb["add_new_record_txt"] = 'Add new Blacklist record';
+?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/lang/en_mail_domain_catchall.lng b/interface/web/sites/lib/lang/en_mail_domain_catchall.lng
index e14f136..ca7af2a 100644
--- a/interface/web/sites/lib/lang/en_mail_domain_catchall.lng
+++ b/interface/web/sites/lib/lang/en_mail_domain_catchall.lng
@@ -1,8 +1,9 @@
<?php
-$wb["server_id_txt"] = 'server_id';
-$wb["domain_txt"] = 'domain';
-$wb["destination_txt"] = 'destination';
-$wb["active_txt"] = 'active';
+$wb["domain_txt"] = 'Domain';
+$wb["destination_txt"] = 'Destination';
+$wb["active_txt"] = 'Active';
$wb["btn_save_txt"] = 'Save';
$wb["btn_cancel_txt"] = 'Cancel';
+$wb["domain_error_unique"] = "There is already a Catchall record for this domain.";
+$wb["no_domain_perm"] = "You have no permission for this domain.";
?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/lang/en_mail_whitelist.lng b/interface/web/sites/lib/lang/en_mail_whitelist.lng
new file mode 100644
index 0000000..a2f71fe
--- /dev/null
+++ b/interface/web/sites/lib/lang/en_mail_whitelist.lng
@@ -0,0 +1,8 @@
+<?php
+$wb["server_id_txt"] = 'Server';
+$wb["address_txt"] = 'Address';
+$wb["active_txt"] = 'Active';
+$wb["btn_save_txt"] = 'Save';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["address_error_notempty"] = 'Address is empty.';
+?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/lang/en_mail_whitelist_list.lng b/interface/web/sites/lib/lang/en_mail_whitelist_list.lng
new file mode 100644
index 0000000..cb982b4
--- /dev/null
+++ b/interface/web/sites/lib/lang/en_mail_whitelist_list.lng
@@ -0,0 +1,12 @@
+<?php
+$wb["list_head_txt"] = 'Email Whitelist';
+$wb["server_id_txt"] = 'Server';
+$wb["address_txt"] = 'Whitelisted address';
+$wb["page_txt"] = 'Page';
+$wb["page_of_txt"] = 'of';
+$wb["page_next_txt"] = 'Next';
+$wb["page_back_txt"] = 'Back';
+$wb["delete_txt"] = 'Delete';
+$wb["filter_txt"] = 'Filter';
+$wb["add_new_record_txt"] = 'Add new Whitelist record';
+?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/module.conf.php b/interface/web/sites/lib/module.conf.php
index ff465d5..dcdf738 100644
--- a/interface/web/sites/lib/module.conf.php
+++ b/interface/web/sites/lib/module.conf.php
@@ -56,6 +56,12 @@
'target' => 'content',
'link' => 'sites/mail_domain_catchall_list.php',
),
+ 7 =>
+ array (
+ 'title' => 'Email Routing',
+ 'target' => 'content',
+ 'link' => '',
+ ),
),
),
1 =>
diff --git a/interface/web/sites/list/mail_blacklist.list.php b/interface/web/sites/list/mail_blacklist.list.php
new file mode 100644
index 0000000..90315cc
--- /dev/null
+++ b/interface/web/sites/list/mail_blacklist.list.php
@@ -0,0 +1,69 @@
+<?php
+
+/*
+ Datatypes:
+ - INTEGER
+ - DOUBLE
+ - CURRENCY
+ - VARCHAR
+ - TEXT
+ - DATE
+*/
+
+
+
+// Name of the list
+$liste["name"] = "mail_blacklist";
+
+// Database table
+$liste["table"] = "mail_blacklist";
+
+// Index index field of the database table
+$liste["table_idx"] = "blacklist_id";
+
+// Search Field Prefix
+$liste["search_prefix"] = "search_";
+
+// Records per page
+$liste["records_per_page"] = 15;
+
+// Script File of the list
+$liste["file"] = "mail_blacklist_list.php";
+
+// Script file of the edit form
+$liste["edit_file"] = "mail_blacklist_edit.php";
+
+// Script File of the delete script
+$liste["delete_file"] = "mail_blacklist_del.php";
+
+// Paging Template
+$liste["paging_tpl"] = "templates/paging.tpl.htm";
+
+// Enable auth
+$liste["auth"] = "yes";
+
+
+/*****************************************************
+* Suchfelder
+*****************************************************/
+
+$liste["item"][] = array( 'field' => "server_id",
+ 'datatype' => "VARCHAR",
+ 'formtype' => "TEXT",
+ 'op' => "like",
+ 'prefix' => "%",
+ 'suffix' => "%",
+ 'width' => "",
+ 'value' => "");
+
+$liste["item"][] = array( 'field' => "address",
+ 'datatype' => "VARCHAR",
+ 'formtype' => "TEXT",
+ 'op' => "like",
+ 'prefix' => "%",
+ 'suffix' => "%",
+ 'width' => "",
+ 'value' => "");
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/sites/list/mail_whitelist.list.php b/interface/web/sites/list/mail_whitelist.list.php
new file mode 100644
index 0000000..8284766
--- /dev/null
+++ b/interface/web/sites/list/mail_whitelist.list.php
@@ -0,0 +1,69 @@
+<?php
+
+/*
+ Datatypes:
+ - INTEGER
+ - DOUBLE
+ - CURRENCY
+ - VARCHAR
+ - TEXT
+ - DATE
+*/
+
+
+
+// Name of the list
+$liste["name"] = "mail_whitelist";
+
+// Database table
+$liste["table"] = "mail_whitelist";
+
+// Index index field of the database table
+$liste["table_idx"] = "whitelist_id";
+
+// Search Field Prefix
+$liste["search_prefix"] = "search_";
+
+// Records per page
+$liste["records_per_page"] = 15;
+
+// Script File of the list
+$liste["file"] = "mail_whitelist_list.php";
+
+// Script file of the edit form
+$liste["edit_file"] = "mail_whitelist_edit.php";
+
+// Script File of the delete script
+$liste["delete_file"] = "mail_whitelist_del.php";
+
+// Paging Template
+$liste["paging_tpl"] = "templates/paging.tpl.htm";
+
+// Enable auth
+$liste["auth"] = "yes";
+
+
+/*****************************************************
+* Suchfelder
+*****************************************************/
+
+$liste["item"][] = array( 'field' => "server_id",
+ 'datatype' => "VARCHAR",
+ 'formtype' => "TEXT",
+ 'op' => "like",
+ 'prefix' => "%",
+ 'suffix' => "%",
+ 'width' => "",
+ 'value' => "");
+
+$liste["item"][] = array( 'field' => "address",
+ 'datatype' => "VARCHAR",
+ 'formtype' => "TEXT",
+ 'op' => "like",
+ 'prefix' => "%",
+ 'suffix' => "%",
+ 'width' => "",
+ 'value' => "");
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/sites/mail_blacklist_del.php b/interface/web/sites/mail_blacklist_del.php
new file mode 100644
index 0000000..5a453db
--- /dev/null
+++ b/interface/web/sites/mail_blacklist_del.php
@@ -0,0 +1,54 @@
+<?php
+
+/*
+Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of ISPConfig nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/******************************************
+* Begin Form configuration
+******************************************/
+
+$list_def_file = "list/mail_blacklist.list.php";
+$tform_def_file = "form/mail_blacklist.tform.php";
+
+/******************************************
+* End Form configuration
+******************************************/
+
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+// Checke Berechtigungen f�r Modul
+if(!stristr($_SESSION["s"]["user"]["modules"],$_SESSION["s"]["module"]["name"])) {
+ header("Location: ../index.php");
+ exit;
+}
+
+$app->uses("tform_actions");
+$app->tform_actions->onDelete();
+
+?>
\ No newline at end of file
diff --git a/interface/web/sites/mail_blacklist_edit.php b/interface/web/sites/mail_blacklist_edit.php
new file mode 100644
index 0000000..e72f28c
--- /dev/null
+++ b/interface/web/sites/mail_blacklist_edit.php
@@ -0,0 +1,55 @@
+<?php
+/*
+Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of ISPConfig nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+/******************************************
+* Begin Form configuration
+******************************************/
+
+$tform_def_file = "form/mail_blacklist.tform.php";
+
+/******************************************
+* End Form configuration
+******************************************/
+
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+// Checking module permissions
+if(!stristr($_SESSION["s"]["user"]["modules"],$_SESSION["s"]["module"]["name"])) {
+ header("Location: ../index.php");
+ exit;
+}
+
+// Loading classes
+$app->uses('tpl,tform,tform_actions');
+$app->tform_actions->onLoad();
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/sites/mail_blacklist_list.php b/interface/web/sites/mail_blacklist_list.php
new file mode 100644
index 0000000..2679fdf
--- /dev/null
+++ b/interface/web/sites/mail_blacklist_list.php
@@ -0,0 +1,26 @@
+<?php
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+/******************************************
+* Begin Form configuration
+******************************************/
+
+$list_def_file = "list/mail_blacklist.list.php";
+
+/******************************************
+* End Form configuration
+******************************************/
+
+// Checking module permissions
+if(!stristr($_SESSION["s"]["user"]["modules"],$_SESSION["s"]["module"]["name"])) {
+ header("Location: ../index.php");
+ exit;
+}
+
+$app->uses('listform_actions');
+
+$app->listform_actions->onLoad();
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/sites/mail_box_edit.php b/interface/web/sites/mail_box_edit.php
index 715964f..4d007a7 100644
--- a/interface/web/sites/mail_box_edit.php
+++ b/interface/web/sites/mail_box_edit.php
@@ -98,7 +98,7 @@
}
-$page = new page_action;
-$page->onLoad();
+$app->tform_actions = new page_action;
+$app->tform_actions->onLoad();
?>
\ No newline at end of file
diff --git a/interface/web/sites/mail_domain_catchall_edit.php b/interface/web/sites/mail_domain_catchall_edit.php
index 83e7e7d..4ea00b0 100644
--- a/interface/web/sites/mail_domain_catchall_edit.php
+++ b/interface/web/sites/mail_domain_catchall_edit.php
@@ -49,8 +49,27 @@
// Loading classes
$app->uses('tpl,tform,tform_actions');
+$app->load('tform_actions');
-// let tform_actions handle the page
+class page_action extends tform_actions {
+
+ function onSubmit() {
+ global $app, $conf;
+
+ // Check if Domain belongs to user
+ $domain = $app->db->queryOneRecord("SELECT server_id, domain FROM mail_domain WHERE domain = '".$app->db->quote($_POST["domain"])."' AND ".$app->tform->getAuthSQL('r'));
+ if($domain["domain"] != $_POST["domain"]) $app->tform->errorMessage .= $app->tform->wordbook["no_domain_perm"];
+
+ // Set the server id of the catchall = server ID of mail domain.
+ $this->dataRecord["server_id"] = $domain["server_id"];
+
+ parent::onSubmit();
+ }
+
+}
+
+$app->tform_actions = new page_action;
$app->tform_actions->onLoad();
+
?>
\ No newline at end of file
diff --git a/interface/web/sites/mail_domain_catchall_list.php b/interface/web/sites/mail_domain_catchall_list.php
index 9b52fb5..7e5f452 100644
--- a/interface/web/sites/mail_domain_catchall_list.php
+++ b/interface/web/sites/mail_domain_catchall_list.php
@@ -20,9 +20,6 @@
$app->uses('listform_actions');
-// Limit the results to alias domains
-$app->listform_actions->SQLExtWhere = "type = 'local'";
-
$app->listform_actions->onLoad();
diff --git a/interface/web/sites/mail_whitelist_del.php b/interface/web/sites/mail_whitelist_del.php
new file mode 100644
index 0000000..47c0189
--- /dev/null
+++ b/interface/web/sites/mail_whitelist_del.php
@@ -0,0 +1,54 @@
+<?php
+
+/*
+Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of ISPConfig nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/******************************************
+* Begin Form configuration
+******************************************/
+
+$list_def_file = "list/mail_whitelist.list.php";
+$tform_def_file = "form/mail_whitelist.tform.php";
+
+/******************************************
+* End Form configuration
+******************************************/
+
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+// Checke Berechtigungen f�r Modul
+if(!stristr($_SESSION["s"]["user"]["modules"],$_SESSION["s"]["module"]["name"])) {
+ header("Location: ../index.php");
+ exit;
+}
+
+$app->uses("tform_actions");
+$app->tform_actions->onDelete();
+
+?>
\ No newline at end of file
diff --git a/interface/web/sites/mail_whitelist_edit.php b/interface/web/sites/mail_whitelist_edit.php
new file mode 100644
index 0000000..9eec206
--- /dev/null
+++ b/interface/web/sites/mail_whitelist_edit.php
@@ -0,0 +1,55 @@
+<?php
+/*
+Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of ISPConfig nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+/******************************************
+* Begin Form configuration
+******************************************/
+
+$tform_def_file = "form/mail_whitelist.tform.php";
+
+/******************************************
+* End Form configuration
+******************************************/
+
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+// Checking module permissions
+if(!stristr($_SESSION["s"]["user"]["modules"],$_SESSION["s"]["module"]["name"])) {
+ header("Location: ../index.php");
+ exit;
+}
+
+// Loading classes
+$app->uses('tpl,tform,tform_actions');
+$app->tform_actions->onLoad();
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/sites/mail_whitelist_list.php b/interface/web/sites/mail_whitelist_list.php
new file mode 100644
index 0000000..cc245ff
--- /dev/null
+++ b/interface/web/sites/mail_whitelist_list.php
@@ -0,0 +1,26 @@
+<?php
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+/******************************************
+* Begin Form configuration
+******************************************/
+
+$list_def_file = "list/mail_whitelist.list.php";
+
+/******************************************
+* End Form configuration
+******************************************/
+
+// Checking module permissions
+if(!stristr($_SESSION["s"]["user"]["modules"],$_SESSION["s"]["module"]["name"])) {
+ header("Location: ../index.php");
+ exit;
+}
+
+$app->uses('listform_actions');
+
+$app->listform_actions->onLoad();
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/sites/templates/mail_blacklist_edit.htm b/interface/web/sites/templates/mail_blacklist_edit.htm
new file mode 100644
index 0000000..774a29c
--- /dev/null
+++ b/interface/web/sites/templates/mail_blacklist_edit.htm
@@ -0,0 +1,28 @@
+<table width="500" border="0" cellspacing="0" cellpadding="2">
+ <tr>
+ <td width="126" class="frmText11">{tmpl_var name='server_id_txt'}:</td>
+ <td width="366" class="frmText11">
+ <select name="server_id" class="text">
+ {tmpl_var name='server_id'}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td width="126" class="frmText11">{tmpl_var name='address_txt'}:</td>
+ <td width="366" class="frmText11"><input name="address" type="text" class="text" value="{tmpl_var name='address'}" size="30" maxlength="255"></td>
+ </tr>
+ <tr>
+ <td width="126" class="frmText11">{tmpl_var name='active_txt'}:</td>
+ <td width="366" class="frmText11">{tmpl_var name='active'}</td>
+ </tr> <tr>
+ <td class="frmText11"> </td>
+ <td class="frmText11"> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td><input name="btn_save" type="submit" class="button" value="{tmpl_var name='btn_save_txt'}">
+ <input name="btn_cancel" type="button" class="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="self.location.href='mail_blacklist_list.php';">
+ </td>
+ </tr>
+</table>
+<input type="hidden" name="id" value="{tmpl_var name='id'}">
\ No newline at end of file
diff --git a/interface/web/sites/templates/mail_blacklist_list.htm b/interface/web/sites/templates/mail_blacklist_list.htm
new file mode 100644
index 0000000..34cb69c
--- /dev/null
+++ b/interface/web/sites/templates/mail_blacklist_list.htm
@@ -0,0 +1,27 @@
+<form name="myform" action="mail_blacklist_list.php" method="POST">
+<div class="frmTextHead"><tmpl_var name="list_head_txt"></div><br />
+<input type="button" value="{tmpl_var name="add_new_record_txt"}" onClick="location.href='mail_blacklist_edit.php'" /><br /><br />
+<table width="100%" border="0" cellspacing="0" cellpadding="4">
+ <tr>
+ <td class="tblHead"><tmpl_var name="server_id_txt"></td>
+ <td class="tblHead"><tmpl_var name="address_txt"></td>
+ <td class="tblHead"> </td>
+ </tr>
+ <tr>
+ <td class="frmText11"><input type="text" name="search_server_id" value="{tmpl_var name='search_server_id'}" class="text" /></td>
+ <td class="frmText11"><input type="text" name="search_address" value="{tmpl_var name='search_address'}" class="text" /></td>
+ <td class="frmText11" align="right"><input name="Filter" type="submit" id="Filter" value="{tmpl_var name="filter_txt"}"></td>
+ </tr>
+ <tmpl_loop name="records">
+ <tr bgcolor="{tmpl_var name="bgcolor"}">
+ <td class="frmText11"><a href="mail_blacklist_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="server_id"}</a></td>
+ <td class="frmText11"><a href="mail_blacklist_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="address"}</a></td>
+ <td class="frmText11" align="right">[<a href="javascript: del_record('mail_blacklist_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}');" class="frmText11">{tmpl_var name='delete_txt'}</a>]</td>
+ </tr>
+ </tmpl_loop>
+
+ <tr>
+ <td colspan="3" height="40" align="center" class="tblFooter"><tmpl_var name="paging"></td>
+ </tr>
+</table>
+</form>
\ No newline at end of file
diff --git a/interface/web/sites/templates/mail_whitelist_edit.htm b/interface/web/sites/templates/mail_whitelist_edit.htm
new file mode 100644
index 0000000..8c11d09
--- /dev/null
+++ b/interface/web/sites/templates/mail_whitelist_edit.htm
@@ -0,0 +1,28 @@
+<table width="500" border="0" cellspacing="0" cellpadding="2">
+ <tr>
+ <td width="126" class="frmText11">{tmpl_var name='server_id_txt'}:</td>
+ <td width="366" class="frmText11">
+ <select name="server_id" class="text">
+ {tmpl_var name='server_id'}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td width="126" class="frmText11">{tmpl_var name='address_txt'}:</td>
+ <td width="366" class="frmText11"><input name="address" type="text" class="text" value="{tmpl_var name='address'}" size="30" maxlength="255"></td>
+ </tr>
+ <tr>
+ <td width="126" class="frmText11">{tmpl_var name='active_txt'}:</td>
+ <td width="366" class="frmText11">{tmpl_var name='active'}</td>
+ </tr> <tr>
+ <td class="frmText11"> </td>
+ <td class="frmText11"> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td><input name="btn_save" type="submit" class="button" value="{tmpl_var name='btn_save_txt'}">
+ <input name="btn_cancel" type="button" class="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="self.location.href='mail_whitelist_list.php';">
+ </td>
+ </tr>
+</table>
+<input type="hidden" name="id" value="{tmpl_var name='id'}">
\ No newline at end of file
diff --git a/interface/web/sites/templates/mail_whitelist_list.htm b/interface/web/sites/templates/mail_whitelist_list.htm
new file mode 100644
index 0000000..0046185
--- /dev/null
+++ b/interface/web/sites/templates/mail_whitelist_list.htm
@@ -0,0 +1,27 @@
+<form name="myform" action="mail_whitelist_list.php" method="POST">
+<div class="frmTextHead"><tmpl_var name="list_head_txt"></div><br />
+<input type="button" value="{tmpl_var name="add_new_record_txt"}" onClick="location.href='mail_whitelist_edit.php'" /><br /><br />
+<table width="100%" border="0" cellspacing="0" cellpadding="4">
+ <tr>
+ <td class="tblHead"><tmpl_var name="server_id_txt"></td>
+ <td class="tblHead"><tmpl_var name="address_txt"></td>
+ <td class="tblHead"> </td>
+ </tr>
+ <tr>
+ <td class="frmText11"><input type="text" name="search_server_id" value="{tmpl_var name='search_server_id'}" class="text" /></td>
+ <td class="frmText11"><input type="text" name="search_address" value="{tmpl_var name='search_address'}" class="text" /></td>
+ <td class="frmText11" align="right"><input name="Filter" type="submit" id="Filter" value="{tmpl_var name="filter_txt"}"></td>
+ </tr>
+ <tmpl_loop name="records">
+ <tr bgcolor="{tmpl_var name="bgcolor"}">
+ <td class="frmText11"><a href="mail_whitelist_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="server_id"}</a></td>
+ <td class="frmText11"><a href="mail_whitelist_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="address"}</a></td>
+ <td class="frmText11" align="right">[<a href="javascript: del_record('mail_whitelist_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}');" class="frmText11">{tmpl_var name='delete_txt'}</a>]</td>
+ </tr>
+ </tmpl_loop>
+
+ <tr>
+ <td colspan="3" height="40" align="center" class="tblFooter"><tmpl_var name="paging"></td>
+ </tr>
+</table>
+</form>
\ No newline at end of file
--
Gitblit v1.9.1