From d4c760c19560c720d0df2297f573441de4660140 Mon Sep 17 00:00:00 2001 From: mcramer Date: Wed, 27 Apr 2011 17:41:32 +0000 Subject: [PATCH] Implemented optional custom login name for mailboxes. --- config/courier/authmysqlrc | 2 +- install/sql/ispconfig3.sql | 1 + install/tpl/authmysqlrc.master | 2 +- install/tpl/debian6_dovecot-sql.conf.master | 6 ++--- install/tpl/debian_dovecot-sql.conf.master | 4 +-- install/tpl/fedora_dovecot-sql.conf.master | 4 +-- install/tpl/mysql-virtual_mailboxes.cf.master | 4 +-- install/tpl/opensuse_dovecot-sql.conf.master | 4 +-- install/tpl/pamd_smtp.master | 4 +-- install/tpl/sasl_smtpd.conf.master | 2 +- install/tpl/system.ini.master | 1 + .../web/admin/form/system_config.tform.php | 6 +++++ .../web/admin/lib/lang/de_system_config.lng | 1 + .../web/admin/lib/lang/en_system_config.lng | 7 +++--- .../templates/server_config_mail_edit.htm | 4 +-- .../templates/system_config_mail_edit.htm | 6 +++++ interface/web/mail/form/mail_user.tform.php | 15 +++++++++++ interface/web/mail/lib/lang/de_mail_user.lng | 4 +++ .../web/mail/lib/lang/de_mail_user_list.lng | 1 + interface/web/mail/lib/lang/en_mail_user.lng | 4 +++ .../web/mail/lib/lang/en_mail_user_list.lng | 1 + interface/web/mail/list/mail_user.list.php | 25 +++++++++++++------ interface/web/mail/mail_user_edit.php | 22 +++++++++++++--- interface/web/mail/mail_user_list.php | 6 +++++ .../web/mail/templates/mail_user_list.htm | 7 ++++-- .../mail/templates/mail_user_mailbox_edit.htm | 4 +++ 26 files changed, 113 insertions(+), 34 deletions(-) diff --git a/config/courier/authmysqlrc b/config/courier/authmysqlrc index 80253c97c2..144c57afb1 100644 --- a/config/courier/authmysqlrc +++ b/config/courier/authmysqlrc @@ -103,7 +103,7 @@ MYSQL_GID_FIELD 8 # SELECT MYSQL_UID_FIELD, MYSQL_GID_FIELD, ... WHERE id='loginid' # -MYSQL_LOGIN_FIELD email +MYSQL_LOGIN_FIELD login ##NAME: MYSQL_HOME_FIELD:0 # diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index ff0cfb14e8..55daa1194f 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -589,6 +589,7 @@ CREATE TABLE `mail_user` ( `sys_perm_other` varchar(5) NOT NULL default '', `server_id` int(11) unsigned NOT NULL default '0', `email` varchar(255) NOT NULL default '', + `login` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, `name` varchar(255) NOT NULL default '', `uid` int(11) unsigned NOT NULL default '5000', diff --git a/install/tpl/authmysqlrc.master b/install/tpl/authmysqlrc.master index b8f39e3baf..d44b4f2ab1 100644 --- a/install/tpl/authmysqlrc.master +++ b/install/tpl/authmysqlrc.master @@ -8,7 +8,7 @@ MYSQL_CRYPT_PWFIELD password #MYSQL_CLEAR_PWFIELD password MYSQL_UID_FIELD uid MYSQL_GID_FIELD gid -MYSQL_LOGIN_FIELD email +MYSQL_LOGIN_FIELD login MYSQL_HOME_FIELD homedir MYSQL_MAILDIR_FIELD maildir #MYSQL_NAME_FIELD diff --git a/install/tpl/debian6_dovecot-sql.conf.master b/install/tpl/debian6_dovecot-sql.conf.master index 73dd0fc009..b96ad38299 100644 --- a/install/tpl/debian6_dovecot-sql.conf.master +++ b/install/tpl/debian6_dovecot-sql.conf.master @@ -120,7 +120,7 @@ driver = mysql connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password} default_pass_scheme = CRYPT -password_query = SELECT password FROM mail_user WHERE email = '%u' AND disable%Ls = 'n' -#user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('maildir:storage=', floor(quota/1024)) AS quota, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE email = '%u' AND disable%Ls = 'n' -user_query = SELECT email AS user, maildir AS home, CONCAT('*:storage=', quota , 'B') AS quota_rule FROM mail_user WHERE email = '%u' AND disable%Ls = 'n' +password_query = SELECT password FROM mail_user WHERE login = '%u' AND disable%Ls = 'n' +#user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('maildir:storage=', floor(quota/1024)) AS quota, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE login = '%u' AND disable%Ls = 'n' +user_query = SELECT email AS user, maildir AS home, CONCAT('*:storage=', quota , 'B') AS quota_rule FROM mail_user WHERE login = '%u' AND disable%Ls = 'n' diff --git a/install/tpl/debian_dovecot-sql.conf.master b/install/tpl/debian_dovecot-sql.conf.master index 8777d73c11..cd61170d2d 100644 --- a/install/tpl/debian_dovecot-sql.conf.master +++ b/install/tpl/debian_dovecot-sql.conf.master @@ -120,7 +120,7 @@ driver = mysql connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password} default_pass_scheme = CRYPT -password_query = SELECT password FROM mail_user WHERE email = '%u' AND disable%Ls = 'n' -user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('maildir:storage=', floor(quota/1024)) AS quota, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE email = '%u' AND disable%Ls = 'n' +password_query = SELECT password FROM mail_user WHERE login = '%u' AND disable%Ls = 'n' +user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('maildir:storage=', floor(quota/1024)) AS quota, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE login = '%u' AND disable%Ls = 'n' diff --git a/install/tpl/fedora_dovecot-sql.conf.master b/install/tpl/fedora_dovecot-sql.conf.master index 17f7422c1a..897f35acd5 100644 --- a/install/tpl/fedora_dovecot-sql.conf.master +++ b/install/tpl/fedora_dovecot-sql.conf.master @@ -133,5 +133,5 @@ driver = mysql connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password} default_pass_scheme = CRYPT -password_query = SELECT password FROM mail_user WHERE email = '%u' AND disable%Ls = 'n' -user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('maildir:storage=', floor(quota/1024)) AS quota, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE email = '%u' AND disable%Ls = 'n' +password_query = SELECT password FROM mail_user WHERE login = '%u' AND disable%Ls = 'n' +user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('maildir:storage=', floor(quota/1024)) AS quota, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE login = '%u' AND disable%Ls = 'n' diff --git a/install/tpl/mysql-virtual_mailboxes.cf.master b/install/tpl/mysql-virtual_mailboxes.cf.master index d013c34cdc..2fe47bbdf5 100644 --- a/install/tpl/mysql-virtual_mailboxes.cf.master +++ b/install/tpl/mysql-virtual_mailboxes.cf.master @@ -3,6 +3,6 @@ password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} table = mail_user select_field = CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') -where_field = email +where_field = login additional_conditions = and postfix = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} diff --git a/install/tpl/opensuse_dovecot-sql.conf.master b/install/tpl/opensuse_dovecot-sql.conf.master index 17f7422c1a..897f35acd5 100644 --- a/install/tpl/opensuse_dovecot-sql.conf.master +++ b/install/tpl/opensuse_dovecot-sql.conf.master @@ -133,5 +133,5 @@ driver = mysql connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password} default_pass_scheme = CRYPT -password_query = SELECT password FROM mail_user WHERE email = '%u' AND disable%Ls = 'n' -user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('maildir:storage=', floor(quota/1024)) AS quota, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE email = '%u' AND disable%Ls = 'n' +password_query = SELECT password FROM mail_user WHERE login = '%u' AND disable%Ls = 'n' +user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('maildir:storage=', floor(quota/1024)) AS quota, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE login = '%u' AND disable%Ls = 'n' diff --git a/install/tpl/pamd_smtp.master b/install/tpl/pamd_smtp.master index f03bed97b0..11b5d16757 100644 --- a/install/tpl/pamd_smtp.master +++ b/install/tpl/pamd_smtp.master @@ -1,2 +1,2 @@ -auth required pam_mysql.so user={mysql_server_ispconfig_user} passwd={mysql_server_ispconfig_password} host={mysql_server_ip} db={mysql_server_database} table=mail_user usercolumn=email passwdcolumn=password crypt=1 -account sufficient pam_mysql.so user={mysql_server_ispconfig_user} passwd={mysql_server_ispconfig_password} host={mysql_server_ip} db={mysql_server_database} table=mail_user usercolumn=email passwdcolumn=password crypt=1 \ No newline at end of file +auth required pam_mysql.so user={mysql_server_ispconfig_user} passwd={mysql_server_ispconfig_password} host={mysql_server_ip} db={mysql_server_database} table=mail_user usercolumn=login passwdcolumn=password crypt=1 +account sufficient pam_mysql.so user={mysql_server_ispconfig_user} passwd={mysql_server_ispconfig_password} host={mysql_server_ip} db={mysql_server_database} table=mail_user usercolumn=login passwdcolumn=password crypt=1 \ No newline at end of file diff --git a/install/tpl/sasl_smtpd.conf.master b/install/tpl/sasl_smtpd.conf.master index 35a9c3d684..d5934239e5 100644 --- a/install/tpl/sasl_smtpd.conf.master +++ b/install/tpl/sasl_smtpd.conf.master @@ -6,4 +6,4 @@ sql_hostnames: {mysql_server_ip} sql_user: {mysql_server_ispconfig_user} sql_passwd: {mysql_server_ispconfig_password} sql_database: {mysql_server_database} -sql_select: select password from mail_user where email = '%u' \ No newline at end of file +sql_select: select password from mail_user where login = '%u' diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master index 07d5a4ef22..8b305ac09b 100644 --- a/install/tpl/system.ini.master +++ b/install/tpl/system.ini.master @@ -7,6 +7,7 @@ [dns] [mail] +enable_custom_login=n mailboxlist_webmail_link=y webmail_url= diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index 3de23d5bfb..b6aa20e69f 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -162,6 +162,12 @@ $form["tabs"]['mail'] = array ( ################################## # Begin Datatable fields ################################## + 'enable_custom_login' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), 'mailboxlist_webmail_link' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index c26e98cb7e..fb337e6dfe 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -19,4 +19,5 @@ $wb['use_domain_module_txt'] = 'Use the domain-module to add new domains'; $wb['use_domain_module_hint'] = 'If you use this module, your customers can only select one of the domains the admin creates for them. They cannot free edit the domain-field.You have to re-login after changing this value, to make the changes visible.'; $wb['new_domain_txt'] = 'HTML to create a new domain'; $wb['webftp_url_txt'] = 'WebFTP URL'; +$wb['enable_custom_login_txt'] = 'Abweichenden Login-Namen erlauben'; ?> diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index 9e8d224ceb..52d50fc008 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -12,6 +12,7 @@ $wb["ftpuser_prefix_error_regex"] = 'Char not allowed in ftp user prefix.'; $wb["shelluser_prefix_error_regex"] = 'Char not allowed in shell user prefix.'; $wb["webdavuser_prefix_error_regex"] = 'Char not allowed in webdav user prefix.'; $wb["dblist_phpmyadmin_link_txt"] = 'Link to phpmyadmin in DB list'; +$wb['enable_custom_login_txt'] = 'Allow custom login name'; $wb["mailboxlist_webmail_link_txt"] = 'Link to webmail in Mailbox list'; $wb["webmail_url_txt"] = 'Webmail URL'; $wb["mailmailinglist_link_txt"] = 'Link to mailing list in Mailing list list'; @@ -21,7 +22,7 @@ $wb["use_domain_module_txt"] = 'Use the domain-module to add new domains'; $wb["use_domain_module_hint"] = 'If you use this module, your customers can only select one of the domains the admin creates for them. They cannot free edit the domain-field.You have to re-login after changing this value, to make the changes visible.'; $wb["new_domain_txt"] = 'HTML to create a new domain'; $wb["webftp_url_txt"] = 'WebFTP URL'; -$wb['admin_mail_txt'] = 'Administrator\'s e-mail'; -$wb["monitor_key_txt"] = 'Monitor keyword'; -$wb['admin_name_txt'] = 'Administrator\'s name'; +$wb['admin_mail_txt'] = 'Administrator\'s e-mail'; +$wb["monitor_key_txt"] = 'Monitor keyword'; +$wb['admin_name_txt'] = 'Administrator\'s name'; ?> diff --git a/interface/web/admin/templates/server_config_mail_edit.htm b/interface/web/admin/templates/server_config_mail_edit.htm index 2496fdcc0a..94dff00459 100644 --- a/interface/web/admin/templates/server_config_mail_edit.htm +++ b/interface/web/admin/templates/server_config_mail_edit.htm @@ -68,9 +68,9 @@  MB
- +  MB -
+ diff --git a/interface/web/admin/templates/system_config_mail_edit.htm b/interface/web/admin/templates/system_config_mail_edit.htm index c728404d7a..de50e95f94 100644 --- a/interface/web/admin/templates/system_config_mail_edit.htm +++ b/interface/web/admin/templates/system_config_mail_edit.htm @@ -5,6 +5,12 @@
+
+

{tmpl_var name='enable_custom_login_txt'}

+
+ {tmpl_var name='enable_custom_login'} +
+

{tmpl_var name='mailboxlist_webmail_link_txt'}

diff --git a/interface/web/mail/form/mail_user.tform.php b/interface/web/mail/form/mail_user.tform.php index 6cb792ac6d..2cab87dc4c 100644 --- a/interface/web/mail/form/mail_user.tform.php +++ b/interface/web/mail/form/mail_user.tform.php @@ -79,6 +79,21 @@ $form["tabs"]['mailuser'] = array ( 'width' => '30', 'maxlength' => '255' ), + 'login' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( + 0 => array ( 'type' => 'UNIQUE', + 'errmsg'=> 'login_error_unique'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-z][\w\.\-_\+@]{1,63}$/', + 'errmsg'=> 'login_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), 'password' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'PASSWORD', diff --git a/interface/web/mail/lib/lang/de_mail_user.lng b/interface/web/mail/lib/lang/de_mail_user.lng index 7308396ff1..defbba13c5 100644 --- a/interface/web/mail/lib/lang/de_mail_user.lng +++ b/interface/web/mail/lib/lang/de_mail_user.lng @@ -39,4 +39,8 @@ $wb['name_optional_txt'] = '(optional)'; $wb['autoresponder_active'] = 'Enable the autoresponder'; $wb['cc_txt'] = 'Send copy to'; $wb['cc_error_isemail'] = 'The Send copy to field does not conatin a valid email address'; +$wb['login_error_unique'] = 'Login wird bereits verwendet.'; +$wb['login_error_regex'] = 'Zulässige Zeichen sind A-Z, a-z, 0-9, ., _ und -.'; +$wb['login_txt'] = 'Login (optional)'; +$wb['error_login_email_txt'] = 'Dieser Loginname ist nicht zulässig. Bitte verwenden Sie einen anderen Loginnamen oder die E-Mail-Adresse als Login.'; ?> diff --git a/interface/web/mail/lib/lang/de_mail_user_list.lng b/interface/web/mail/lib/lang/de_mail_user_list.lng index 8d453d08b0..563f52bad5 100644 --- a/interface/web/mail/lib/lang/de_mail_user_list.lng +++ b/interface/web/mail/lib/lang/de_mail_user_list.lng @@ -4,4 +4,5 @@ $wb['email_txt'] = 'E-Mail-Adresse'; $wb['autoresponder_txt'] = 'Autoresponder'; $wb['add_new_record_txt'] = 'Neue Mailbox hinzufügen'; $wb['name_txt'] = 'Realname'; +$wb['login_txt'] = 'Login'; ?> diff --git a/interface/web/mail/lib/lang/en_mail_user.lng b/interface/web/mail/lib/lang/en_mail_user.lng index db58a62d93..938ae92270 100644 --- a/interface/web/mail/lib/lang/en_mail_user.lng +++ b/interface/web/mail/lib/lang/en_mail_user.lng @@ -41,4 +41,8 @@ $wb['cc_txt'] = 'Send copy to'; $wb['cc_error_isemail'] = 'The -Send copy to- field does not conatin a valid email address'; $wb['domain_txt'] = 'Domain'; $wb['now_txt']='Now'; +$wb['login_error_unique'] = 'Login is already taken.'; +$wb['login_error_regex'] = 'Valid characters are A-Z, a-z, 0-9, ., _ and -.'; +$wb['login_txt'] = 'Login (optional)'; +$wb['error_login_email_txt'] = 'This login is not allowed. Please enter a different login or use the mail address as login.'; ?> diff --git a/interface/web/mail/lib/lang/en_mail_user_list.lng b/interface/web/mail/lib/lang/en_mail_user_list.lng index 70497def66..d2611452ec 100644 --- a/interface/web/mail/lib/lang/en_mail_user_list.lng +++ b/interface/web/mail/lib/lang/en_mail_user_list.lng @@ -4,4 +4,5 @@ $wb["email_txt"] = 'Email'; $wb["autoresponder_txt"] = 'Autoresponder'; $wb["add_new_record_txt"] = 'Add new Mailbox'; $wb["name_txt"] = 'Realname'; +$wb["login_txt"] = 'Login'; ?> \ No newline at end of file diff --git a/interface/web/mail/list/mail_user.list.php b/interface/web/mail/list/mail_user.list.php index f3e8c42384..5eb648d4e4 100644 --- a/interface/web/mail/list/mail_user.list.php +++ b/interface/web/mail/list/mail_user.list.php @@ -47,14 +47,23 @@ $liste["auth"] = "yes"; * Suchfelder *****************************************************/ -$liste["item"][] = array( 'field' => "email", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); +$liste["item"][] = array( 'field' => "email", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + +$liste["item"][] = array( 'field' => "login", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); $liste["item"][] = array( 'field' => "name", 'datatype' => "VARCHAR", diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php index e9a37676f2..1da1b03489 100644 --- a/interface/web/mail/mail_user_edit.php +++ b/interface/web/mail/mail_user_edit.php @@ -75,7 +75,7 @@ class page_action extends tform_actions { $app->tpl->setVar("email_local_part",$email_parts[0]); // Getting Domains of the user - $sql = "SELECT domain FROM mail_domain WHERE ".$app->tform->getAuthSQL('r').' ORDER BY domain'; + $sql = "SELECT domain, server_id FROM mail_domain WHERE ".$app->tform->getAuthSQL('r').' ORDER BY domain'; $domains = $app->db->queryAllRecords($sql); $domain_select = ''; if(is_array($domains)) { @@ -114,6 +114,14 @@ class page_action extends tform_actions { $app->tpl->setVar("ar_active", ''); } + $app->uses('getconf'); + $mail_config = $app->getconf->get_global_config('mail'); + if($mail_config["enable_custom_login"] == "y") { + $app->tpl->setVar("enable_custom_login", 1); + } else { + $app->tpl->setVar("enable_custom_login", 0); + } + parent::onShowEnd(); } @@ -165,6 +173,9 @@ class page_action extends tform_actions { } // end if user is not admin + $app->uses('getconf'); + $mail_config = $app->getconf->get_server_config($domain["server_id"],'mail'); + //* compose the email field if(isset($_POST["email_local_part"]) && isset($_POST["email_domain"])) { $this->dataRecord["email"] = strtolower($_POST["email_local_part"]."@".$_POST["email_domain"]); @@ -179,8 +190,6 @@ class page_action extends tform_actions { if($this->dataRecord["quota"] != -1) $this->dataRecord["quota"] = $this->dataRecord["quota"] * 1024 * 1024; // setting Maildir, Homedir, UID and GID - $app->uses('getconf'); - $mail_config = $app->getconf->get_server_config($domain["server_id"],'mail'); $maildir = str_replace("[domain]",$domain["domain"],$mail_config["maildir_path"]); $maildir = str_replace("[localpart]",strtolower($_POST["email_local_part"]),$maildir); $this->dataRecord["maildir"] = $maildir; @@ -195,6 +204,13 @@ class page_action extends tform_actions { } + $sys_config = $app->getconf->get_global_config('mail'); + if($sys_config["enable_custom_login"] == "y") { + if(!isset($_POST["login"])) $this->dataRecord["login"] = $this->dataRecord["email"]; + elseif(strpos($_POST["login"], '@') !== false && $_POST["login"] != $this->dataRecord["email"]) $app->tform->errorMessage .= $app->tform->lng("error_login_email_txt")."
"; + } else { + $this->dataRecord["login"] = $this->dataRecord["email"]; + } //* if autoresponder checkbox not selected, do not save dates if (!isset($_POST['autoresponder']) && array_key_exists('autoresponder_start_date', $_POST)) { $this->dataRecord['autoresponder_start_date'] = array_map(create_function('$item','return 0;'), $this->dataRecord['autoresponder_start_date']); diff --git a/interface/web/mail/mail_user_list.php b/interface/web/mail/mail_user_list.php index 1cc8554da2..df69948f11 100644 --- a/interface/web/mail/mail_user_list.php +++ b/interface/web/mail/mail_user_list.php @@ -31,6 +31,12 @@ class list_action extends listform_actions { } else { $app->tpl->setVar('mailboxlist_webmail_link',0); } + + if($global_config["enable_custom_login"] == "y") { + $app->tpl->setVar("enable_custom_login", 1); + } else { + $app->tpl->setVar("enable_custom_login", 0); + } parent::onShow(); } diff --git a/interface/web/mail/templates/mail_user_list.htm b/interface/web/mail/templates/mail_user_list.htm index fe3838b228..a0fe815977 100644 --- a/interface/web/mail/templates/mail_user_list.htm +++ b/interface/web/mail/templates/mail_user_list.htm @@ -19,13 +19,15 @@ - + +   +
@@ -34,6 +36,7 @@ {tmpl_var name="email"} + {tmpl_var name="login"} {tmpl_var name="name"} {tmpl_var name="autoresponder"} @@ -48,7 +51,7 @@ - + 54"> diff --git a/interface/web/mail/templates/mail_user_mailbox_edit.htm b/interface/web/mail/templates/mail_user_mailbox_edit.htm index 8edc59dc3a..ff3d0867b9 100644 --- a/interface/web/mail/templates/mail_user_mailbox_edit.htm +++ b/interface/web/mail/templates/mail_user_mailbox_edit.htm @@ -17,6 +17,10 @@
+
+ + +
-- GitLab