Adding a user to a group in Apple's OpenDirectory goes as follows:
<?php
$dn = "cn=groupname,cn=groups,dc=example,dc=com";
$entry['memberuid'] = "username";
ldap_mod_add($connect, $dn, $entry);
?>
(PHP 4, PHP 5, PHP 7, PHP 8)
ldap_mod_add — Add attribute values to current attributes
$ldap
, string $dn
, array $entry
, array|null $controls
= null
) : bool
Adds one or more attribute values to the specified dn
.
To add a whole new object see ldap_add() function.
ldap
An LDAP resource, returned by ldap_connect().
dn
The distinguished name of an LDAP entity.
entry
An associative array listing the attirbute values to add. If an attribute was not existing yet it will be added. If an attribute is existing you can only add values to it if it supports multiple values.
controls
Array of LDAP Controls to send with the request.
成功时返回 true
, 或者在失败时返回 false
。
版本 | 说明 |
---|---|
8.0.0 |
controls is nullable now; previously, it defaulted to [] .
|
7.3 |
Support for controls added
|
Note: 此函数可安全用于二进制对象。
Adding a user to a group in Apple's OpenDirectory goes as follows:
<?php
$dn = "cn=groupname,cn=groups,dc=example,dc=com";
$entry['memberuid'] = "username";
ldap_mod_add($connect, $dn, $entry);
?>
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);
?>
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']='[email protected]';
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.
To add a new attribute with a single value:
$entry[mail] = "[email protected]";
$results = ldap_mod_add($ldapConnID, $dn, $entry);
To add a new attribute with multiple values:
$entry[mail][] = "[email protected]";
$entry[mail][] = "[email protected]";
$results = ldap_mod_add($ldapConnID, $dn, $entry);