Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

- Allow setting autocomplete attribute for all inputs separately (#14…

…87313)
  • Loading branch information...
commit 1cca4fbd4565245ea6bc47263db8ae02b78641e7 1 parent 53604a0
@alecpl alecpl authored
View
1  CHANGELOG
@@ -7,6 +7,7 @@ CHANGELOG Roundcube Webmail
- Fix window is blur'ed in IE when selecting a message (#1487316)
- Fix cursor position on compose form in Webkit browsers (#1486674)
- Fix setting charset of attachment filenames (#1487122)
+- Allow setting autocomplete attribute for all inputs separately (#1487313)
RELEASE 0.5-BETA
----------------
View
5 config/main.inc.php.dist
@@ -180,8 +180,9 @@ $rcmail_config['message_cache_lifetime'] = '10d';
// set the port for the ssl connection as value of this option if it differs from the default 443
$rcmail_config['force_https'] = false;
-// Allow browser-autocompletion on login form
-$rcmail_config['login_autocomplete'] = false;
+// Allow browser-autocompletion on login form.
+// 0 - disabled, 1 - username and host only, 2 - username, host, password
+$rcmail_config['login_autocomplete'] = 0;
// If users authentication is not case sensitive this must be enabled.
// You can also use it to force conversion of logins to lower case.
View
16 program/include/rcube_template.php
@@ -1045,7 +1045,7 @@ public function current_username($attrib)
private function login_form($attrib)
{
$default_host = $this->config['default_host'];
- $attrib['autocomplete'] = $this->config['login_autocomplete'] ? null : 'off';
+ $autocomplete = (int) $this->config['login_autocomplete'];
$_SESSION['temp'] = true;
@@ -1054,11 +1054,18 @@ private function login_form($attrib)
if (empty($url) && !preg_match('/_(task|action)=logout/', $_SERVER['QUERY_STRING']))
$url = $_SERVER['QUERY_STRING'];
- $input_user = new html_inputfield(array('name' => '_user', 'id' => 'rcmloginuser') + $attrib);
- $input_pass = new html_passwordfield(array('name' => '_pass', 'id' => 'rcmloginpwd') + $attrib);
+ // set atocomplete attribute
+ $user_attrib = $autocomplete > 0 ? array() : array('autocomplete' => 'off');
+ $host_attrib = $autocomplete > 0 ? array() : array('autocomplete' => 'off');
+ $pass_attrib = $autocomplete > 1 ? array() : array('autocomplete' => 'off');
+
$input_action = new html_hiddenfield(array('name' => '_action', 'value' => 'login'));
$input_tzone = new html_hiddenfield(array('name' => '_timezone', 'id' => 'rcmlogintz', 'value' => '_default_'));
$input_url = new html_hiddenfield(array('name' => '_url', 'id' => 'rcmloginurl', 'value' => $url));
+ $input_user = new html_inputfield(array('name' => '_user', 'id' => 'rcmloginuser')
+ + $attrib + $user_attrib);
+ $input_pass = new html_passwordfield(array('name' => '_pass', 'id' => 'rcmloginpwd')
+ + $attrib + $pass_attrib);
$input_host = null;
if (is_array($default_host) && count($default_host) > 1) {
@@ -1080,7 +1087,8 @@ private function login_form($attrib)
'name' => '_host', 'id' => 'rcmloginhost', 'value' => $host) + $attrib);
}
else if (empty($default_host)) {
- $input_host = new html_inputfield(array('name' => '_host', 'id' => 'rcmloginhost') + $attrib);
+ $input_host = new html_inputfield(array('name' => '_host', 'id' => 'rcmloginhost')
+ + $attrib + $host_attrib);
}
$form_name = !empty($attrib['form']) ? $attrib['form'] : 'form';
Please sign in to comment.
Something went wrong with that request. Please try again.