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 wird FALSE zurückgegeben.
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.
theiderich AT laweekly dot com ¶
7 years ago
Claudio Lente <nelchael at ig dot com dot br> ¶
10 years ago
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 ¶
11 years ago
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);
