From todor.dragnev@gmail.com Sat Jul 14 15:57:34 2007 From: Todor Dragnev To: dev@lists.roundcube.net Subject: Patch for login form with users in syntax username@domain Date: Thu, 11 May 2006 18:17:07 +0300 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1548310366204772229==" --===============1548310366204772229== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit 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(a)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]([-a-z0-9]*[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(a)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 = << +Domain +$domain + + + $labels[user] $fields[user] --- end of diff -- There are no answers, only cross references --===============1548310366204772229== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 SGVsbG8gbGlzdCw8YnI+Cjxicj4KSGVyZSBpcyBhIGZhc3Qgc29sdXRpb24gdG8gYXZvaWQgd3Jp dGluZyBvZiAmcXVvdDtAZG9tYWluJnF1b3Q7IGFmdGVyIHVzZXJuYW1lIHdoZW4geW91ciBzZXJ2 ZXIgaG9zdGVkIHZpcnR1YWwgZG9tYWlucy48YnI+Cjxicj4KV2l0aCB0aGlzIHBhdGNoIGlzIGVu b3VnaHQgdG8gd3JpdGUgb25seSAmcXVvdDtqb2huJnF1b3Q7IGluIGxvZ2luIGZvcm0gaW5zdGVh ZCBvZiAmcXVvdDs8YSBocmVmPSJtYWlsdG86am9obkB2aXJ0dWFsZG9tYWluLnRlc3QiPmpvaG5A dmlydHVhbGRvbWFpbnRlc3Q8L2E+JnF1b3Q7PGJyPgpJZiAkcmNtYWlsX2NvbmZpZ1snYWRkX2Rv bWFpbjJ1c2VybmFtZSddJm5ic3A7IGlzIHRydWUgUm91bmRDdWJlIHdpbGwKc3RyaXAgZG9tYWlu IG5hbWUgZnJvbSB3ZWIgYWRkcmVzc2VzIGxpa2U6CjxhIGhyZWY9Imh0dHA6Ly93ZWJtYWlsLnZp cnR1YWxkb21haW4udGVzdC8iPmh0dHA6Ly93ZWJtYWlsLnZpcnR1YWxkb21haW50ZXN0LzwvYT4g b3IKPGEgaHJlZj0iaHR0cDovL3d3dy52aXJ0dWFsZG9tYWluLnRlc3QvUm91bmRDdWJlLyI+aHR0 cDovL3d3dy52aXJ0dWFsZG9tYWluLnRlc3QvUm91bmRDdWJlLzwvYT4gYW5kIGFkZCBpdCZuYnNw OyB0byB1c2VybmFtZS48YnI+Cjxicj4KQ2hhbmdlcyBpbiBjb25maWcvbWFpbi5pbmMucGhwOjxi cj4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PTxicj4KLy8gSWYgdGhpcyBpcyB0cnVlIHdpbGwgdXNlIGhvc3RuYW1lIHRv IGdldCBkb21haW4gbmFtZTxicj4KJHJjbWFpbF9jb25maWdbJ2FkZF9kb21haW4ydXNlcm5hbWUn XSA9IHRydWU7PGJyPgo8YnI+CkNoYW5nZXMgaW4gcHJvZ3JhbS9pbmNsdWRlL21haW4uaW5jPGJy Pgo8YnI+Ci0tLSBzdGFydCBkaWZmIC0tLTxicj4KSW5kZXg6IHByb2dyYW0vaW5jbHVkZS9tYWlu LmluYzxicj4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PTxicj4KUkNTIGZpbGU6IC9jdnNyb290L3JvdW5kY3ViZW1haWwv cm91bmRjdWJlbWFpbC9wcm9ncmFtL2luY2x1ZGUvbWFpbi5pbmMsdjxicj4KcmV0cmlldmluZyBy ZXZpc2lvbiAxLjQ4PGJyPgpkaWZmIC11IC1wIC1yMS40OCBtYWluLmluYzxicj4KLS0tIHByb2dy YW0vaW5jbHVkZS9tYWluLmluYyZuYnNwOyZuYnNwOyZuYnNwOyAyMyBNYXIgMjAwNiAyMjozMjoz MiAtMDAwMCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAxLjQ4PGJyPgorKysgcHJvZ3Jh bS9pbmNsdWRlL21haW4uaW5jJm5ic3A7Jm5ic3A7Jm5ic3A7IDExIE1heSAyMDA2IDE0OjUxOjU3 IC0wMDAwPGJyPgpAQCAtMzY2LDYgKzM2NiwxOSBAQCBmdW5jdGlvbiByY21haWxfc2V0X2xvY2Fs ZSgkbGFuZyk8YnI+CiZuYnNwOyZuYnNwOyAkT1VUUFVULSZndDtzZXRfY2hhcnNldChyY3ViZV9s YW5ndWFnZV9wcm9wKCRsYW5nLCAnY2hhcnNldCcpKTs8YnI+CiZuYnNwOyZuYnNwOyB9PGJyPgo8 YnI+CitmdW5jdGlvbiZuYnNwOyBwYXJzZV9kb21haW4oJHVybCkgezxicj4KKyZuYnNwOyAkZG9t YWluID0gJyhbYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0rKT8pJzs8YnI+CismbmJzcDsgLy8g Rm9sbG93ZWQgYnkgb25lIG9yIG1heCA2MyBkb21haW4gY2hhcmFjdGVycyAoZG90IHNlcGFyYXRl ZCkuPGJyPgorJm5ic3A7IC8vIE11c3QgYmUgZm9sbG93ZWQgYnkgb25lIHNldCBjb25zaXN0aW5n IGEgcGVyaW9kIG9mIHR3bzxicj4KKyZuYnNwOyAkcmVnZXggPSAnXignIC4gJGRvbWFpbiAuICdc LikrKCgnIC4gJGRvbWFpbiAuICd7MSw2M31cLiknLjxicj4KKyZuYnNwOyZuYnNwOyZuYnNwOyAk ZG9tYWluIC4gJ3syLDYzfScuPGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7ICcpJCc7PGJyPgorJm5i c3A7IGlmIChlcmVnKCAkcmVnZXgsIHN0cnRvbG93ZXIoJHVybCksICRyZWdzKSkgezxicj4KKyZu YnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gJHJlZ3NbNF07PGJyPgorJm5ic3A7IH08YnI+CismbmJz cDsgcmV0dXJuIGZhbHNlOzxicj4KK308YnI+Cis8YnI+Cjxicj4KJm5ic3A7Ly8gcGVyZm9tIGxv Z2luIHRvIHRoZSBJTUFQIHNlcnZlciBhbmQgdG8gdGhlIHdlYm1haWwgc2VydmljZTxicj4KJm5i c3A7ZnVuY3Rpb24gcmNtYWlsX2xvZ2luKCR1c2VyLCAkcGFzcywgJGhvc3Q9TlVMTCk8YnI+CkBA IC0zNzYsNiArMzg5LDE0IEBAIGZ1bmN0aW9uIHJjbWFpbF9sb2dpbigkdXNlciwgJHBhc3MsICRo b3M8YnI+CiZuYnNwOyZuYnNwOyBpZiAoISRob3N0KTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7ICRob3N0ID0gJENPTkZJR1snZGVmYXVsdF9ob3N0J107PGJyPgo8YnI+CismbmJzcDsgLy8g cGFyc2UgdXNlcm5hbWUgZm9yIHN5bnRheCBsaWtlIHVzZXJuYW1lQGRvbWFpbjxicj4KKyZuYnNw OyAkaGF2ZV9hdCA9IGV4cGxvZGUoJnF1b3Q7QCZxdW90OywgJHVzZXIpOzxicj4KKyZuYnNwOyBp ZiAoJENPTkZJR1snYWRkX2RvbWFpbjJ1c2VybmFtZSddICZhbXA7JmFtcDsgc2l6ZW9mKCRoYXZl X2F0KSA9PSAxKSB7PGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7IGlmICgkZG9tYWluID0gcGFyc2Vf ZG9tYWluKCRfU0VSVkVSW0hUVFBfSE9TVF0pKSB7PGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7ICR1c2VyID0gJHVzZXIgLiAnQCcgLiAkZG9tYWluOyAvLyBhZGQgZG9tYWluIGZy b20gaG9zdG5hbWU8YnI+CismbmJzcDsmbmJzcDsmbmJzcDsgfTxicj4KKyZuYnNwOyB9PGJyPgor PGJyPgombmJzcDsmbmJzcDsgLy8gcGFyc2UgJGhvc3QgVVJMPGJyPgombmJzcDsmbmJzcDsgJGFf aG9zdCA9IHBhcnNlX3VybCgkaG9zdCk7PGJyPgombmJzcDsmbmJzcDsgaWYgKCRhX2hvc3RbJ2hv c3QnXSk8YnI+CkBAIC0xNTg2LDEzICsxNjA3LDE4IEBAIGZ1bmN0aW9uIHJjbWFpbF9sb2dpbl9m b3JtKCRhdHRyaWIpPGJyPgombmJzcDtFT0Y7PGJyPgo8YnI+CiZuYnNwOyZuYnNwOyAkT1VUUFVU LSZndDthZGRfc2NyaXB0KCZxdW90OyRKU19PQkpFQ1RfTkFNRS5ndWlfb2JqZWN0KCdsb2dpbmZv cm0nLCAnJGZvcm1fbmFtZScpOyZxdW90Oyk7PGJyPgotPGJyPgorJm5ic3A7ICRkb21haW4gPSBz dHJ0b3VwcGVyIChwYXJzZV9kb21haW4oJF9TRVJWRVJbSFRUUF9IT1NUXSkpIDs8YnI+CiZuYnNw OyZuYnNwOyAkb3V0ID0gJmx0OyZsdDsmbHQ7RU9GPGJyPgombmJzcDskZm9ybV9zdGFydDxicj4K Jm5ic3A7JFNFU1NfSElEREVOX0ZJRUxEPGJyPgombmJzcDskZmllbGRzW2FjdGlvbl08YnI+CiZu YnNwOyZsdDt0YWJsZSZndDsmbHQ7dHImZ3Q7PGJyPgo8YnI+CismbHQ7dGQgY2xhc3M9JnF1b3Q7 dGl0bGUmcXVvdDsmZ3Q7RG9tYWluJmx0Oy90ZCZndDs8YnI+CismbHQ7dGQgY2xhc3M9JnF1b3Q7 dGl0bGUmcXVvdDsmZ3Q7JGRvbWFpbiZsdDsvdGQmZ3Q7PGJyPgorPGJyPgorJmx0Oy90ciZndDsm bHQ7dHImZ3Q7PGJyPgorPGJyPgombmJzcDsmbHQ7dGQgY2xhc3M9JnF1b3Q7dGl0bGUmcXVvdDsm Z3Q7JGxhYmVsc1t1c2VyXSZsdDsvdGQmZ3Q7PGJyPgombmJzcDsmbHQ7dGQmZ3Q7JGZpZWxkc1t1 c2VyXSZsdDsvdGQmZ3Q7PGJyPgo8YnI+Ci0tLSBlbmQgb2YgZGlmZjxicj4KPGJyPgo8YnI+Ci0t IDxicj5UaGVyZSBhcmUgbm8gYW5zd2Vycywgb25seSBjcm9zcyByZWZlcmVuY2VzCg== --===============1548310366204772229==-- From richard@burninghorizons.net Sat Jul 14 15:57:34 2007 From: Richard Green To: dev@lists.roundcube.net Subject: Re: Patch for login form with users in syntax username@domain Date: Thu, 11 May 2006 17:12:59 +0100 Message-ID: <7c4117404985b11b693c83f59b42c3d9@debian> In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6161912439306413934==" --===============6161912439306413934== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable This has been done already, but I guess depending on SourceForge may not be a= ccessible yet: http://sourceforge.net/tracker/index.php?func=3Ddetail&aid=3D1437854&group_id= =3D139281&atid=3D742850 -- Richard Green On Thu, 11 May 2006 18:17:07 +0300, "Todor Dragnev" wrote: > Hello list, >=20 > Here is a fast solution to avoid writing of "@domain" after username when > your server hosted virtual domains. >=20 > With this patch is enought to write only "john" in login form instead of " > john(a)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. >=20 > Changes in config/main.inc.php: > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > // If this is true will use hostname to get domain name > $rcmail_config['add_domain2username'] =3D true; >=20 > Changes in program/include/main.inc >=20 > --- start diff --- > Index: program/include/main.inc > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > 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')); > } >=20 > +function parse_domain($url) { > + $domain =3D '([a-z0-9]([-a-z0-9]*[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 =3D '^(' . $domain . '\.)+((' . $domain . '{1,63}\.)'. > + $domain . '{2,63}'. > + ')$'; > + if (ereg( $regex, strtolower($url), $regs)) { > + return $regs[4]; > + } > + return false; > +} > + >=20 > // perfom login to the IMAP server and to the webmail service > function rcmail_login($user, $pass, $host=3DNULL) > @@ -376,6 +389,14 @@ function rcmail_login($user, $pass, $hos > if (!$host) > $host =3D $CONFIG['default_host']; >=20 > + // parse username for syntax like username(a)domain > + $have_at =3D explode("@", $user); > + if ($CONFIG['add_domain2username'] && sizeof($have_at) =3D=3D 1) { > + if ($domain =3D parse_domain($_SERVER[HTTP_HOST])) { > + $user =3D $user . '@' . $domain; // add domain from hostname > + } > + } > + > // parse $host URL > $a_host =3D parse_url($host); > if ($a_host['host']) > @@ -1586,13 +1607,18 @@ function rcmail_login_form($attrib) > EOF; >=20 > $OUTPUT->add_script("$JS_OBJECT_NAME.gui_object('loginform', > '$form_name');"); > - > + $domain =3D strtoupper (parse_domain($_SERVER[HTTP_HOST])) ; > $out =3D << $form_start > $SESS_HIDDEN_FIELD > $fields[action] > >=20 > + > + > + > + > + > > >=20 > --- end of diff >=20 >=20 > --===============6161912439306413934==-- From brett@roundcubeforum.net Sat Jul 14 15:57:34 2007 From: Brett Patters - Roundcube Forum Admin To: dev@lists.roundcube.net Subject: Re: Patch for login form with users in syntax username@domain Date: Thu, 11 May 2006 14:35:59 -0400 Message-ID: <4463840F.90708@roundcubeforum.net> In-Reply-To: <7c4117404985b11b693c83f59b42c3d9@debian> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0208268285497288557==" --===============0208268285497288557== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=3Ddetail&aid=3D1437854&group_= id=3D139281&atid=3D742850 > > -- > Richard Green > > > On Thu, 11 May 2006 18:17:07 +0300, "Todor Dragnev" wrote: > =20 >> 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(a)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: >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> // If this is true will use hostname to get domain name >> $rcmail_config['add_domain2username'] =3D true; >> >> Changes in program/include/main.inc >> >> --- start diff --- >> Index: program/include/main.inc >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> 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 =3D '([a-z0-9]([-a-z0-9]*[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 =3D '^(' . $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=3DNULL) >> @@ -376,6 +389,14 @@ function rcmail_login($user, $pass, $hos >> if (!$host) >> $host =3D $CONFIG['default_host']; >> >> + // parse username for syntax like username(a)domain >> + $have_at =3D explode("@", $user); >> + if ($CONFIG['add_domain2username'] && sizeof($have_at) =3D=3D 1) { >> + if ($domain =3D parse_domain($_SERVER[HTTP_HOST])) { >> + $user =3D $user . '@' . $domain; // add domain from hostname >> + } >> + } >> + >> // parse $host URL >> $a_host =3D 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 =3D strtoupper (parse_domain($_SERVER[HTTP_HOST])) ; >> $out =3D <<> $form_start >> $SESS_HIDDEN_FIELD >> $fields[action] >>
Domain$domain
$labels[user]$fields[user]
>> >> + >> + >> + >> + >> + >> >> >> >> --- end of diff >> >> >> >> =20 > > > > =20 There's also a post about this on the forum :) --=20 ~ Brett Patterson ~ Roundcube Forum Admin www.roundcubeforum.net --===============0208268285497288557==--
Domain$domain
$labels[user]$fields[user]