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
16-Jul-2005 12:17
16-Jul-2005 12:17
Claudio Lente <nelchael at ig dot com dot br>
26-Feb-2003 11:03
26-Feb-2003 11: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 07:52
31-Aug-2001 07: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);
