summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Weißl <jargon@molb.org>2012-12-02 18:50:11 +0100
committerJohannes Weißl <jargon@molb.org>2012-12-03 21:44:46 +0100
commitaec2869e49ae178a44917f6829960a4da76b0121 (patch)
tree9e6eb0847becaf5002b3f68b5d7072fa42c6f5d9
parent0fa54df638a0b0f514d1bfba3cefb93e38991a35 (diff)
Add host config option to http_authentication plugin.
This is useful if the users are free to choose arbitrary mail hosts (or from a list), but have one host they usually want to log into. Otherwise the username/password must always be typed in twice.
-rw-r--r--plugins/http_authentication/config.inc.php.dist9
-rw-r--r--plugins/http_authentication/http_authentication.php9
2 files changed, 18 insertions, 0 deletions
diff --git a/plugins/http_authentication/config.inc.php.dist b/plugins/http_authentication/config.inc.php.dist
new file mode 100644
index 000000000..0d798a586
--- /dev/null
+++ b/plugins/http_authentication/config.inc.php.dist
@@ -0,0 +1,9 @@
+<?php
+
+// HTTP Basic Authentication Plugin options
+// ----------------------------------------
+// Default mail host to log-in using user/password from HTTP Authentication.
+// This is useful if the users are free to choose arbitrary mail hosts (or
+// from a list), but have one host they usually want to log into.
+// Unlike $rcmail_config['default_host'] this must be a string!
+$rcmail_config['http_authentication_host'] = '';
diff --git a/plugins/http_authentication/http_authentication.php b/plugins/http_authentication/http_authentication.php
index a14b5cbcc..382613889 100644
--- a/plugins/http_authentication/http_authentication.php
+++ b/plugins/http_authentication/http_authentication.php
@@ -11,6 +11,8 @@
*
* See logout.html (in this directory) for an example how HTTP auth can be cleared.
*
+ * For other configuration options, see config.inc.php.dist!
+ *
* @version @package_version@
* @license GNU GPLv3+
* @author Thomas Bruederli
@@ -46,6 +48,13 @@ class http_authentication extends rcube_plugin
function authenticate($args)
{
+ // Load plugin's config file
+ $this->load_config();
+
+ $host = rcmail::get_instance()->config->get('http_authentication_host');
+ if (is_string($host) && trim($host) !== '')
+ $args['host'] = rcube_idn_to_ascii(rcube_parse_host($host));
+
// Allow entering other user data in login form,
// e.g. after log out (#1487953)
if (!empty($args['user'])) {