[commits] [Wiki] changed: LDAPHooksHorde5

Wiki Guest wikiguest at horde.org
Sun Feb 17 09:48:28 UTC 2013


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'];



More information about the commits mailing list