[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