guest [59.167.157.243]  Sun, 17 Feb 2013 09:48:28 +0000

Modified page: http://wiki.horde.org/LDAPHooksHorde5
New Revision:  3
Change log:  Introduction

@@ -1,4 +1,16 @@
+==Hooks in Horde5==
+
+These are the hooks I set up in my Horde 5 setup to provide default Full Name and email addresses, retrieved from LDAP. It's based on the one on hooks.php.dist, but I had some issues with that so it's a bit tweaked. Runs on my CentOS 6 system. Rather than specifying LDAP server details in the hook, it uses the system's ability to ldapsearch - which makes troubleshooting easier too, just strip out the command and make it work on the command line.
+
+It uses awk to get the email address from the returned grep'ed value, and cut to remove "cn: " from the Full Name. You may need to tweak those bits so it does what you need on your system.
+
+You will need:
+<l> LDAP cn entry(ies) with Full Name (the script uses the first one as the default Full Name) +<l> LDAP mail entry(ies) with email addresses (the script uses the first one as the default email address) +<l> ldapsearch is set to use TLS (using the -ZZ option). You will need to have a functional TLS LDAP setup for this to work. If you are happy to not use TLS, drop that option.
+<l> set your LDAP domain in searchBase
+

 <code type="php">
 <?php
 class Horde_Hooks
@@ -9,9 +21,9 @@
         case 'from_addr':
             if (is_null($username)) {
                 return $value;
             }
-            $searchBase = 'ou=users,dc=simonandkate,dc=lan';
+            $searchBase = 'ou=users,dc=yourdomain,dc=lan';
$cmd = '/usr/bin/ldapsearch -ZZ -x -b ' . $searchBase . ' uid=' . escapeshellcmd($username) . ' | /bin/grep mail | /usr/bin/awk \'{print $2}\'';
             $mails = `$cmd`;
             $mail_array = explode("\n", $mails);
             $mail = $mail_array['0'];
@@ -22,9 +34,9 @@
         case 'fullname':
             if (is_null($username)) {
                 return $value;
             }
-               $searchBase = 'ou=users,dc=simonandkate,dc=lan';
+               $searchBase = 'ou=users,dc=yourdomain,dc=lan';
$cmd = '/usr/bin/ldapsearch -ZZ -x -b ' . $searchBase . ' uid=' . escapeshellcmd($username) . ' | /bin/grep cn: | /usr/bin/cut -c5-';
                $cns = `$cmd`;
                $cn_array = explode("\n", $cns);
                $cn = $cn_array['0'];

--
commits mailing list
Frequently Asked Questions: http://wiki.horde.org/FAQ
To unsubscribe, mail: [email protected]

Reply via email to