[horde] Fwd: create ldap accounts with horde4 admin UI
Jan Schneider
jan at horde.org
Wed Feb 29 16:56:11 UTC 2012
----- Weitergeleitete Nachricht von wodel youchi <wodel_doom at yahoo.fr> -----
Datum: Wed, 29 Feb 2012 16:01:22 +0000 (GMT)
Von: wodel youchi <wodel_doom at yahoo.fr>
Antwort an: wodel youchi <wodel_doom at yahoo.fr>
Betreff: Re : [horde] create ldap accounts with horde4 admin UI
An: Jan Schneider <jan at horde.org>
Hi,
I've managed to create ldap accounts via horde's 4 admin UI, by doing this:
in horde/config/hook.php
public function preauthenticate($userId, $credentials)
{
if($credentials['authMethod'] == 'admin'){
// create account
$entry = array(
'ldap' => 'ldap',
'dn' => 'uid=' . $userId .
',ou=people,dc=exemple,dc=com',
'cn' => isset($credentials['user_fullname']) ?
$credentials['user_fullname'] : $userId,
'sn' => $userId,
'objectclass' => array(
'top',
'person',
'qmailuser',
'inetOrgPerson',
'posixAccount',
'shadowAccount',
'organizationalPerson'
),
'mailhost' => 'mail.wodel.wd',
'mailMessageStore' => '/var/vmail/' . $userId,
'homeDirectory' => '/var/vmail/' . $userId,
'uid' => $userId,
'accountStatus' => 'yes',
'mailQuotaSize' => '30720',
'mail' => $userId . '@exemple.com',
'gidNumber' => 1000,
);
$ldapServer = '127.0.0.1';
$ldapPort = '389';
$binddn = 'cn=admin,dc=exemple,dc=com';
$bindpw = 'password';
$searchBase = 'dc=exemple,dc=com';
if (isset($credentials)) {
$ds = @ldap_connect($ldapServer, $ldapPort);
if (@ldap_bind($ds, $binddn, $bindpw)) {
$searchResult =
@ldap_search($ds, $searchBase, 'cn=NextFreeUnixId');
if ($information =
@ldap_get_entries($ds, $searchResult)) {
ldap_modify($ds, 'cn=NextFreeUnixId,dc=exemple,dc=com',
array('uidnumber' => $information[0]['uidnumber'][0] + 1));
$entry['uidNumber'] = $information[0]['uidnumber'][0];
}
@ldap_close($ds);
}
}
if (isset($credentials['password'])) {
$entry['userPassword'] = '{SHA}' .
base64_encode(pack('H*', sha1($credentials['password'])));
} elseif (isset($credentials['user_pass_2'])) {
$entry['userPassword'] = '{SHA}' .
base64_encode(pack('H*', sha1($credentials['user_pass_2'])));
}
return array(
'userId' => $userId,
'credentials' => $entry
);
} elseif($credentials['authMethod'] == 'transparent') {
// just for test
print('TRANSPARENT');
// connection or deconnexion
} elseif($credentials['authMethod'] == 'authenticate') {
// just for test
print('AUTHENTICATE');
// authentication
} else {
// just for test
print('OTHER');
}
}
in /usr/share/pear/Horde/Auth/Ldap.php I added this to the addUser function
public function addUser($userId, $credentials)
{
if (!empty($this->_params['ad'])) {
throw new Horde_Auth_Exception(__CLASS__ . ': Adding users
is not supported for Active Directory.');
}
if (isset($credentials['ldap'])) {
$entry = array();
$entry = $credentials;
$dn = $entry['dn'];
/* added by me*/
/* Remove the ldap entry from the array. */
/* Remove the dn entry from the array. */
unset($entry['dn']);
unset($entry['ldap']);
} else {
// THE REST OF THE FUNCTION
}
I don't know if this will not break something somewhere!!!
thanks
________________________________
De : Jan Schneider <jan at horde.org>
À : horde at lists.horde.org
Envoyé le : Mardi 28 février 2012 13h05
Objet : Re: [horde] create ldap accounts with horde4 admin UI
Zitat von wodel youchi <wodel_doom at yahoo.fr>:
> Hi,
>
> I've installed Horde4 with Imp, Turba and Password.
>
> My authentication is made against openLDAP, and I want to be able to
> create accounts via the horde admin UI, I've made such configuration
> in Horde3 with the custom function hooks, but now I am unable to do
> so in Horde4, I've tried modifying the function preauthenticate in
> hook.php file, but with no luck.
And what is your question? Without more detailed information what
exactly you tried, what worked and what didn't, there isn't much how
we could help you.
Jan.
--The Horde Project
http://www.horde.org/
--Horde mailing list
Frequently Asked Questions: http://horde.org/faq/
To unsubscribe, mail: horde-unsubscribe at lists.horde.org
----- Ende der weitergeleiteten Nachricht -----
--
The Horde Project
http://www.horde.org/
More information about the horde
mailing list