From 94a5a24fc2a8040b22d4012773ebb6879957cfdf Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Mon, 05 Sep 2011 04:05:40 -0400
Subject: [PATCH] Fallback to mail_domain in LDAP variable replacements; add 'host' to 'user_create' hook arguments (#1488024)

---
 CHANGELOG                      |    1 +
 program/include/rcube_ldap.php |    7 +++++--
 program/include/rcube_user.php |    2 +-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 416bbf3..e833cc3 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Fallback to mail_domain in LDAP variable replacements; add 'host' to 'user_create' hook arguments (#1488024)
 - Fixed wrong vCard type parameter mobile (#1488067)
 - Fixed vCard WORKFAX issue (#1488046)
 - Add vCard's Profile URL support (#1488062)
diff --git a/program/include/rcube_ldap.php b/program/include/rcube_ldap.php
index bf978a7..699691d 100644
--- a/program/include/rcube_ldap.php
+++ b/program/include/rcube_ldap.php
@@ -181,8 +181,11 @@
                 }
 
                 // Get the pieces needed for variable replacement.
-                $fu = $RCMAIL->user->get_username();
-                list($u, $d) = explode('@', $fu);
+                if ($fu = $RCMAIL->user->get_username())
+                  list($u, $d) = explode('@', $fu);
+                else
+                  $d = $this->mail_domain;
+                
                 $dc = 'dc='.strtr($d, array('.' => ',dc=')); // hierarchal domain string
 
                 $replaces = array('%dc' => $dc, '%d' => $d, '%fu' => $fu, '%u' => $u);
diff --git a/program/include/rcube_user.php b/program/include/rcube_user.php
index d2bbaa1..dc5767d 100644
--- a/program/include/rcube_user.php
+++ b/program/include/rcube_user.php
@@ -437,7 +437,7 @@
         }
 
         $data = $rcmail->plugins->exec_hook('user_create',
-	        array('user'=>$user, 'user_name'=>$user_name, 'user_email'=>$user_email));
+	        array('user'=>$user, 'user_name'=>$user_name, 'user_email'=>$user_email, 'host'=>$host));
 
         // plugin aborted this operation
         if ($data['abort'])

--
Gitblit v1.9.1