Richard Green wrote:
This has been done already, but I guess depending on SourceForge may not be accessible yet:
http://sourceforge.net/tracker/index.php?func=detail&aid=1437854&gro...
-- Richard Green
On Thu, 11 May 2006 18:17:07 +0300, "Todor Dragnev" todor.dragnev@gmail.com wrote:
Hello list,
Here is a fast solution to avoid writing of "@domain" after username when your server hosted virtual domains.
With this patch is enought to write only "john" in login form instead of " john@virtualdomain.test" If $rcmail_config['add_domain2username'] is true RoundCube will strip domain name from web addresses like: http://webmail.virtualdomain.test/ or http://www.virtualdomain.test/RoundCube/ and add it to username.
Changes in config/main.inc.php:
// If this is true will use hostname to get domain name $rcmail_config['add_domain2username'] = true;
Changes in program/include/main.inc
--- start diff --- Index: program/include/main.inc =================================================================== RCS file: /cvsroot/roundcubemail/roundcubemail/program/include/main.inc,v retrieving revision 1.48 diff -u -p -r1.48 main.inc --- program/include/main.inc 23 Mar 2006 22:32:32 -0000 1.48 +++ program/include/main.inc 11 May 2006 14:51:57 -0000 @@ -366,6 +366,19 @@ function rcmail_set_locale($lang) $OUTPUT->set_charset(rcube_language_prop($lang, 'charset')); }
+function parse_domain($url) {
- $domain = '(a-z0-9?)';
- // Followed by one or max 63 domain characters (dot separated).
- // Must be followed by one set consisting a period of two
- $regex = '^(' . $domain . '.)+((' . $domain . '{1,63}.)'.
- $domain . '{2,63}'.
- ')$';
- if (ereg( $regex, strtolower($url), $regs)) {
- return $regs[4];
- }
- return false;
+}
// perfom login to the IMAP server and to the webmail service function rcmail_login($user, $pass, $host=NULL) @@ -376,6 +389,14 @@ function rcmail_login($user, $pass, $hos if (!$host) $host = $CONFIG['default_host'];
- // parse username for syntax like username@domain
- $have_at = explode("@", $user);
- if ($CONFIG['add_domain2username'] && sizeof($have_at) == 1) {
- if ($domain = parse_domain($_SERVER[HTTP_HOST])) {
$user = $user . '@' . $domain; // add domain from hostname
- }
- }
- // parse $host URL $a_host = parse_url($host); if ($a_host['host'])
@@ -1586,13 +1607,18 @@ function rcmail_login_form($attrib) EOF;
$OUTPUT->add_script("$JS_OBJECT_NAME.gui_object('loginform', '$form_name');");
- $domain = strtoupper (parse_domain($_SERVER[HTTP_HOST])) ; $out = <<<EOF
$form_start $SESS_HIDDEN_FIELD $fields[action]
<table><tr>
+<td class="title">Domain</td> +<td class="title">$domain</td>
+</tr><tr>
<td class="title">$labels[user]</td> <td>$fields[user]</td>
--- end of diff
There's also a post about this on the forum :)