When adding/editing attributes for a user, the 'memberof' attribute is a special case. The memberOf attribute is not an accessible attribute of the user schema. To add someone to a group, you have to add the user in the group, and not the group in the user. You can do this by accessing the group attribute 'member':
<?php
$group_name = "CN=MyGroup,OU=Groups,DC=example,DC=com";
$group_info['member'] = $dn; // User's DN is added to group's 'member' array
ldap_mod_add($connect,$group_name,$group_info);
?>
ldap_mod_add
(PHP 4, PHP 5)
ldap_mod_add — Hinzufügen von Merkmalswerten zu aktuellen Merkmalen
Beschreibung
bool ldap_mod_add
( resource $Verbindungs-Kennung
, string $dn
, array $eintrag
)
Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.
Diese Funktion fügt Merkmal(e) zum angegebenen dn hinzu. Die Änderung wird auf der Merkmalsebene durchgeführt im Gegensatz zur Objektebene. Das Hinzufügen auf der Objektebene wird durch die Funktion ldap_add() geleistet.
ldap_mod_add
theiderich AT laweekly dot com
15-Jul-2005 10:17
15-Jul-2005 10:17
Claudio Lente <nelchael at ig dot com dot br>
26-Feb-2003 10:03
26-Feb-2003 10:03
Using PHP 4.2.3 with IIS 5 and Win2k Server. My confs are:
$ldap_srvr = 'servername' ;
$ldap_port = 389;
$ldap_con = ldap_connect($ldap_srvr, $ldap_port);
$ldap_rdn = "username";
$ldap_pwd = "__password__";
$ldap_vbind = ldap_bind($ldap_con, $ldap_rdn, $ldap_pwd);
$base_dn= 'CN=username,CN=Users,DC=domain,DC=org,DC=us
' ;
$ldap_filter= 'objectClass=*';
$info['mail']='username@domain.org.us';
ldap_mod_add($ldap_con, $base_dn, $info);
ldap_add($ldap_con, $base_dn, $info);
this generate an error:
- Warning: LDAP: modify operation could not be completed. in
ldap_modify($ldap_con, $base_dn, $info);
this function corretly.
It´s all.
JoshuaStarr at aelana dot com
31-Aug-2001 05:52
31-Aug-2001 05:52
To add a new attribute with a single value:
$entry[mail] = "newmail@aelana.com";
$results = ldap_mod_add($ldapConnID, $dn, $entry);
To add a new attribute with multiple values:
$entry[mail][] = "newmail@aelana.com";
$entry[mail][] = "altnewmail@aelana.com";
$results = ldap_mod_add($ldapConnID, $dn, $entry);
