From e1ceb050e19c7574bca146a8da7047ee4ff456b5 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Sun, 10 Jul 2016 05:02:35 -0400
Subject: [PATCH] Merge branch 'stable-3.1'
---
interface/web/mail/form/mail_user.tform.php | 516 +++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 356 insertions(+), 160 deletions(-)
diff --git a/interface/web/mail/form/mail_user.tform.php b/interface/web/mail/form/mail_user.tform.php
index cf9985e..9b4ff8f 100644
--- a/interface/web/mail/form/mail_user.tform.php
+++ b/interface/web/mail/form/mail_user.tform.php
@@ -30,19 +30,27 @@
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).
+ Search:
+ - searchable = 1 or searchable = 2 include the field in the search
+ - searchable = 1: this field will be the title of the search result
+ - searchable = 2: this field will be included in the description of the search result
+
*/
+global $app;
+$app->uses('getconf');
+$global_config = $app->getconf->get_global_config();
-$form["title"] = "Mailbox";
-$form["description"] = "";
-$form["name"] = "mail_user";
-$form["action"] = "mail_user_edit.php";
-$form["db_table"] = "mail_user";
-$form["db_table_idx"] = "mailuser_id";
-$form["db_history"] = "yes";
-$form["tab_default"] = "mailuser";
-$form["list_default"] = "mail_user_list.php";
-$form["auth"] = 'yes'; // yes / no
+$form["title"] = "Mailbox";
+$form["description"] = "";
+$form["name"] = "mail_user";
+$form["action"] = "mail_user_edit.php";
+$form["db_table"] = "mail_user";
+$form["db_table_idx"] = "mailuser_id";
+$form["db_history"] = "yes";
+$form["tab_default"] = "mailuser";
+$form["list_default"] = "mail_user_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
@@ -50,95 +58,194 @@
$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"]['mailuser'] = array (
- 'title' => "Mailbox",
- 'width' => 100,
- 'template' => "templates/mail_user_mailbox_edit.htm",
- 'fields' => array (
- ##################################
- # Begin Datatable fields
- ##################################
+$form["tabs"]['mailuser'] = array(
+ 'title' => "Mailbox",
+ 'width' => 100,
+ 'template' => "templates/mail_user_mailbox_edit.htm",
+ 'fields' => array (
+ //#################################
+ // Begin Datatable fields
+ //#################################
'server_id' => array (
- 'datatype' => 'INTEGER',
- 'formtype' => 'TEXT',
- 'default' => '',
- 'value' => '',
- 'width' => '30',
- 'maxlength' => '255'
+ 'datatype' => 'INTEGER',
+ 'formtype' => 'TEXT',
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
),
'email' => array (
- 'datatype' => 'VARCHAR',
- 'formtype' => 'TEXT',
- 'validators' => array ( 0 => array ( 'type' => 'ISEMAIL',
- 'errmsg'=> 'email_error_isemail'),
- 1 => array ( 'type' => 'UNIQUE',
- 'errmsg'=> 'email_error_unique'),
- ),
- 'default' => '',
- 'value' => '',
- 'width' => '30',
- 'maxlength' => '255'
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'filters' => array( 0 => array( 'event' => 'SAVE',
+ 'type' => 'IDNTOASCII'),
+ 1 => array( 'event' => 'SHOW',
+ 'type' => 'IDNTOUTF8'),
+ 2 => array( 'event' => 'SAVE',
+ 'type' => 'TOLOWER')
+ ),
+ 'validators' => array ( 0 => array ( 'type' => 'ISEMAIL',
+ 'errmsg'=> 'email_error_isemail'),
+ 1 => array ( 'type' => 'UNIQUE',
+ 'errmsg'=> 'email_error_unique'),
+ ),
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255',
+ 'searchable' => 1
+ ),
+ 'login' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'filters' => array( 0 => array( 'event' => 'SAVE',
+ 'type' => 'IDNTOASCII'),
+ 1 => array( 'event' => 'SHOW',
+ 'type' => 'IDNTOUTF8'),
+ 2 => array( 'event' => 'SAVE',
+ 'type' => 'TOLOWER')
+ ),
+ 'validators' => array (
+ 0 => array ( 'type' => 'UNIQUE',
+ 'errmsg'=> 'login_error_unique'),
+ 1 => array ( 'type' => 'REGEX',
+ 'regex' => '/^[_a-z0-9][\w\.\-_\+@]{1,63}$/',
+ 'errmsg'=> 'login_error_regex'),
+ ),
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
),
'password' => array (
- 'datatype' => 'VARCHAR',
- 'formtype' => 'PASSWORD',
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'PASSWORD',
+ 'validators' => array(
+ 0 => array(
+ 'type' => 'CUSTOM',
+ 'class' => 'validate_password',
+ 'function' => 'password_check',
+ 'errmsg' => 'weak_password_txt'
+ )
+ ),
'encryption'=> 'CRYPT',
- 'default' => '',
- 'value' => '',
- 'width' => '30',
- 'maxlength' => '255'
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
+ ),
+ 'name' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255',
+ 'searchable' => 2
),
'quota' => array (
- 'datatype' => 'INTEGER',
- 'formtype' => 'TEXT',
- 'validators' => array ( 0 => array ( 'type' => 'ISINT',
- 'errmsg'=> 'quota_error_isint'),
- 1 => array ( 'type' => 'REGEX',
- 'regex' => '/^(-1)|([1-9][0-9]*)$/',
- 'errmsg'=> 'quota_error_value'),
- ),
- 'default' => '0',
- 'value' => '',
- 'width' => '30',
- 'maxlength' => '255'
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'validators' => array ( 1 => array ( 'type' => 'ISINT',
+ 'errmsg'=> 'quota_error_isint'),
+ 0 => array ( 'type' => 'REGEX',
+ 'regex' => '/^([0-9]{1,})$/',
+ 'errmsg'=> 'quota_error_value'),
+ ),
+ 'default' => '-1',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
+ ),
+ 'cc' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'filters' => array( 0 => array( 'event' => 'SAVE',
+ 'type' => 'IDNTOASCII'),
+ 1 => array( 'event' => 'SHOW',
+ 'type' => 'IDNTOUTF8'),
+ 2 => array( 'event' => 'SAVE',
+ 'type' => 'TOLOWER')
+ ),
+ 'validators' => array ( 0 => array ( 'type' => 'REGEX',
+ 'regex' => '/^(\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,10}){0,1}(,\s*\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,10}){0,}$/i',
+ 'errmsg'=> 'cc_error_isemail'),
+ ),
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
+ ),
+ 'sender_cc' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'filters' => array( 0 => array( 'event' => 'SAVE',
+ 'type' => 'IDNTOASCII'),
+ 1 => array( 'event' => 'SHOW',
+ 'type' => 'IDNTOUTF8'),
+ 2 => array( 'event' => 'SAVE',
+ 'type' => 'TOLOWER')
+ ),
+ 'validators' => array ( 0 => array ( 'type' => 'REGEX',
+ 'regex'=>'/^(\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,10}){0,1}(,\s*\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,10}){0,}$/i',
+ 'errmsg'=> 'sender_cc_error_isemail'),
+ ),
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
),
'maildir' => array (
- 'datatype' => 'VARCHAR',
- 'formtype' => 'TEXT',
- 'default' => '',
- 'value' => '',
- 'width' => '30',
- 'maxlength' => '255'
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
+ ),
+ 'maildir_format' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
),
'homedir' => array (
- 'datatype' => 'VARCHAR',
- 'formtype' => 'TEXT',
- 'default' => '',
- 'value' => '',
- 'width' => '30',
- 'maxlength' => '255'
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'default' => '',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
),
'uid' => array (
- 'datatype' => 'INTEGER',
- 'formtype' => 'TEXT',
- 'default' => '',
- 'value' => '',
- 'width' => '10',
- 'maxlength' => '10'
+ 'datatype' => 'INTEGER',
+ 'formtype' => 'TEXT',
+ 'default' => '',
+ 'value' => '',
+ 'width' => '10',
+ 'maxlength' => '10'
),
'gid' => array (
- 'datatype' => 'INTEGER',
- 'formtype' => 'TEXT',
- 'default' => '',
- 'value' => '',
- 'width' => '10',
- 'maxlength' => '10'
+ 'datatype' => 'INTEGER',
+ 'formtype' => 'TEXT',
+ 'default' => '',
+ 'value' => '',
+ 'width' => '10',
+ 'maxlength' => '10'
),
'postfix' => array (
- 'datatype' => 'VARCHAR',
- 'formtype' => 'CHECKBOX',
- 'default' => 'y',
- 'value' => array(1 => 'y',0 => 'n')
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'CHECKBOX',
+ 'default' => 'y',
+ 'value' => array(1 => 'y', 0 => 'n')
+ ),
+ 'greylisting' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'CHECKBOX',
+ 'default' => 'n',
+ 'value' => array(1 => 'y', 0 => 'n')
),
/*
'access' => array (
@@ -148,102 +255,191 @@
'value' => array(1 => 'y',0 => 'n')
),
*/
+ 'disablesmtp' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'CHECKBOX',
+ 'default' => 'n',
+ 'value' => array(1 => 'y', 0 => 'n')
+ ),
'disableimap' => array (
- 'datatype' => 'VARCHAR',
- 'formtype' => 'CHECKBOX',
- 'default' => '0',
- 'value' => array(1 => '1',0 => '0')
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'CHECKBOX',
+ 'default' => 'n',
+ 'value' => array(1 => 'y', 0 => 'n')
),
'disablepop3' => array (
- 'datatype' => 'VARCHAR',
- 'formtype' => 'CHECKBOX',
- 'default' => 'y',
- 'value' => array(1 => '1',0 => '0')
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'CHECKBOX',
+ 'default' => 'n',
+ 'value' => array(1 => 'y', 0 => 'n')
),
- ##################################
- # ENDE Datatable fields
- ##################################
+ //#################################
+ // END Datatable fields
+ //#################################
)
);
-$form["tabs"]['autoresponder'] = array (
- 'title' => "Autoresponder",
- 'width' => 100,
- 'template' => "templates/mail_user_autoresponder_edit.htm",
- 'fields' => array (
- ##################################
- # Begin Datatable fields
- ##################################
- 'autoresponder_text' => array (
- 'datatype' => 'TEXT',
- 'formtype' => 'TEXTAREA',
- 'default' => '',
- 'value' => '',
- 'cols' => '30',
- 'rows' => '15'
- ),
- 'autoresponder' => array (
- 'datatype' => 'VARCHAR',
- 'formtype' => 'CHECKBOX',
- 'default' => 'n',
- 'value' => array(1 => 'y',0 => 'n')
- ),
- ##################################
- # ENDE Datatable fields
- ##################################
- )
-);
+if($global_config['mail']['mail_password_onlyascii'] == 'y') {
+ $form['tabs']['mailuser']['fields']['password']['validators'] = array( 0 => array( 'type' => 'ISASCII',
+ 'errmsg' => 'email_error_isascii')
+ );
+}
-$form["tabs"]['filter_records'] = array (
- 'title' => "Mail Filter",
- 'width' => 100,
- 'template' => "templates/mail_user_mailfilter_edit.htm",
- 'fields' => array (
+if ($global_config['mail']['mailbox_show_autoresponder_tab'] === 'y') {
+ $form["tabs"]['autoresponder'] = array (
+ 'title' => "Autoresponder",
+ 'width' => 100,
+ 'template' => "templates/mail_user_autoresponder_edit.htm",
+ 'fields' => array (
+ //#################################
+ // Begin Datatable fields
+ //#################################
+ 'autoresponder_subject' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'default' => 'Out of office reply',
+ 'value' => '',
+ 'width' => '30',
+ 'maxlength' => '255'
+ ),
+ 'autoresponder_text' => array (
+ 'datatype' => 'TEXT',
+ 'formtype' => 'TEXTAREA',
+ 'default' => '',
+ 'value' => '',
+ 'cols' => '30',
+ 'rows' => '15'
+ ),
+ 'autoresponder' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'CHECKBOX',
+ 'default' => 'n',
+ 'value' => array(1 => 'y', 0 => 'n')
+ ),
+ 'autoresponder_start_date' => array (
+ 'datatype' => 'DATETIME',
+ 'formtype' => 'DATETIME',
+ 'validators'=> array (
+ 0 => array ( 'type' => 'ISDATETIME',
+ 'allowempty' => 'y',
+ 'errmsg'=> 'autoresponder_start_date_is_no_date'),
+ 1 => array ( 'type' => 'CUSTOM',
+ 'class' => 'validate_autoresponder',
+ 'function' => 'start_date',
+ 'errmsg'=> 'autoresponder_start_date_is_required'),
+ )
+ ),
+ 'autoresponder_end_date' => array (
+ 'datatype' => 'DATETIME',
+ 'formtype' => 'DATETIME',
+ 'validators'=> array (
+ 0 => array ( 'type' => 'ISDATETIME',
+ 'allowempty' => 'y',
+ 'errmsg'=> 'autoresponder_end_date_is_no_date'),
+ 1 => array ( 'type' => 'CUSTOM',
+ 'class' => 'validate_autoresponder',
+ 'function' => 'end_date',
+ 'errmsg'=> 'autoresponder_end_date_isgreater'),
+ ),
+ ),
+ //#################################
+ // END Datatable fields
+ //#################################
+ )
+ );
+}
+
+
+if ($global_config['mail']['mailbox_show_mail_filter_tab'] === 'y') {
+ $form["tabs"]['filter_records'] = array (
+ 'title' => "Mail Filter",
+ 'width' => 100,
+ 'template' => "templates/mail_user_mailfilter_edit.htm",
+ 'fields' => array (
+ //#################################
+ // Begin Datatable fields
+ //#################################
+ 'move_junk' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'CHECKBOX',
+ 'default' => 'n',
+ 'value' => array(0 => 'n', 1 => 'y')
+ ),
+ //#################################
+ // END Datatable fields
+ //#################################
+ ),
+ 'plugins' => array (
+ 'filter_records' => array (
+ 'class' => 'plugin_listview',
+ 'options' => array(
+ 'listdef' => 'list/mail_user_filter.list.php',
+ 'sqlextwhere' => "mailuser_id = ".@$app->functions->intval(@$_REQUEST['id']),
+ 'sql_order_by' => "ORDER BY rulename"
+ )
+ )
+ )
+ );
+}
+
+
+if ($_SESSION["s"]["user"]["typ"] == 'admin' && $global_config['mail']['mailbox_show_custom_rules_tab'] === 'y') {
+ $form["tabs"]['mailfilter'] = array (
+ 'title' => "Custom Rules",
+ 'width' => 100,
+ 'template' => "templates/mail_user_custom_rules_edit.htm",
+ 'fields' => array (
+ //#################################
+ // Begin Datatable fields
+ //#################################
+ 'custom_mailfilter' => array (
+ 'datatype' => 'TEXT',
+ 'formtype' => 'TEXTAREA',
+ 'default' => '',
+ 'value' => '',
+ 'cols' => '30',
+ 'rows' => '15'
+ ),
+ //#################################
+ // END Datatable fields
+ //#################################
+ )
+ );
+}
+
+//* Backup
+$form["tabs"]['backup'] = array (
+ 'title' => "Backup",
+ 'width' => 100,
+ 'template' => "templates/mail_user_backup.htm",
+ 'readonly' => false,
+ 'fields' => array (
##################################
# Begin Datatable fields
##################################
-
+ 'backup_interval' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'SELECT',
+ 'default' => '',
+ 'value' => array('none' => 'no_backup_txt', 'daily' => 'daily_backup_txt', 'weekly' => 'weekly_backup_txt', 'monthly' => 'monthly_backup_txt')
+ ),
+ 'backup_copies' => array (
+ 'datatype' => 'INTEGER',
+ 'formtype' => 'SELECT',
+ 'default' => '',
+ 'value' => array('1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10')
+ ),
##################################
# ENDE Datatable fields
##################################
),
'plugins' => array (
- 'filter_records' => array (
- 'class' => 'plugin_listview',
- 'options' => array(
- 'listdef' => 'list/mail_user_filter.list.php',
- 'sqlextwhere' => "mailuser_id = ".@intval(@$_REQUEST['id']),
- 'sql_order_by' => "ORDER BY rulename"
+ 'backup_records' => array (
+ 'class' => 'plugin_backuplist_mail',
+ 'options' => array(
)
- )
+ )
)
);
-if($_SESSION["s"]["user"]["typ"] == 'admin') {
-
-$form["tabs"]['mailfilter'] = array (
- 'title' => "Custom Rules",
- 'width' => 100,
- 'template' => "templates/mail_user_custom_rules_edit.htm",
- 'fields' => array (
- ##################################
- # Begin Datatable fields
- ##################################
- 'custom_mailfilter' => array (
- 'datatype' => 'TEXT',
- 'formtype' => 'TEXTAREA',
- 'default' => '',
- 'value' => '',
- 'cols' => '30',
- 'rows' => '15'
- ),
- ##################################
- # ENDE Datatable fields
- ##################################
- )
-);
-
-}
-
-
-?>
\ No newline at end of file
+?>
--
Gitblit v1.9.1