|
ldap_modify_batch
LDAP エントリの変更をまとめて実行する
説明
bool ldap_modify_batch( LDAP\Connection $ldap , string $dn , array $modifications_info , arraynull $controls = null )
パラメータ
-
ldap
-
ldap_connect で返された、LDAP リソース。
-
dn
-
LDAP エンティティの識別名。
-
modifications_info
-
行う変更を指定する配列。
この配列の個々のエントリは、2つまたは3つのキーからなる連想配列です:
attrib は、変更する属性の名前に対応します。
modtype は、行う変更のタイプに対応し、
(変更のタイプによっては) values が変更に関連した属性値の配列に対応します。
modtype で有効な値は以下のとおりです:
-
LDAP_MODIFY_BATCH_ADD
-
values で指定された値が、
(追加の値として) attrib で指定された属性に追加されます。
-
LDAP_MODIFY_BATCH_REMOVE
-
values で指定された値が、
attrib で指定された属性から削除されます。
values に含まれていない属性の値は、そのまま残されます。
-
LDAP_MODIFY_BATCH_REMOVE_ALL
-
attrib で指定された属性名から、全ての値を削除します。
values エントリを指定してはいけません。
-
LDAP_MODIFY_BATCH_REPLACE
-
attrib の属性名の現在の全ての値が、
values で指定された値で置き換えられます。
以下の点に注意してください:
attrib の値は文字列でなければいけません。
values の値は、文字列の配列でなければいけません。
そして、 modtype の値は、上で示した
LDAP_MODIFY_BATCH_* 定数のうちのひとつでなければいけません。
-
controls
-
リクエストと一緒に送信する LDAP コントロール の配列
戻り値
成功した場合に true を、失敗した場合に false を返します。
例
例1 contact に電話番号を追加する
<?php $dn = "cn=John Smith,ou=Wizards,dc=example,dc=com"; $modifs = [ [ "attrib" => "telephoneNumber", "modtype" => LDAP_MODIFY_BATCH_ADD, "values" => ["+1 555 555 1717"], ], ]; ldap_modify_batch($connection, $dn, $modifs); ?>
例2 ユーザーの名前を変更する
<?php $dn = "cn=John Smith,ou=Wizards,dc=example,dc=com"; $modifs = [ [ "attrib" => "sn", "modtype" => LDAP_MODIFY_BATCH_REPLACE, "values" => ["Smith-Jones"], ], [ "attrib" => "givenName", "modtype" => LDAP_MODIFY_BATCH_REPLACE, "values" => ["Jack"], ], ]; ldap_modify_batch($connection, $dn, $modifs); ldap_rename($connection, $dn, "cn=Jack Smith-Jones", NULL, TRUE); ?>
例3 ユーザーにEメールアドレスを2つ追加する
<?php $dn = "cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com"; $modifs = [ [ "attrib" => "mail", "modtype" => LDAP_MODIFY_BATCH_ADD, "values" => [ "jack.smith@example.com", "jack.smith-jones@example.com", ], ], ]; ldap_modify_batch($connection, $dn, $modifs); ?>
例4 ユーザーのパスワードを変更する
<?php $dn = "cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com"; $modifs = [ [ "attrib" => "userPassword", "modtype" => LDAP_MODIFY_BATCH_REMOVE, "values" => ["Tr0ub4dor&3"], ], [ "attrib" => "userPassword", "modtype" => LDAP_MODIFY_BATCH_ADD, "values" => ["correct horse battery staple"], ], ]; ldap_modify_batch($connection, $dn, $modifs); ?>
例5 ユーザーのパスワードを変更する(Active Directory)
<?php function adifyPw($pw) { return iconv("UTF-8", "UTF-16LE", '"' . $pw . '"'); }
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=ad,dc=example,dc=com"; $modifs = [ [ "attrib" => "unicodePwd", "modtype" => LDAP_MODIFY_BATCH_REMOVE, "values" => [adifyPw("Tr0ub4dor&3")], ], [ "attrib" => "unicodePwd", "modtype" => LDAP_MODIFY_BATCH_ADD, "values" => [adifyPw("correct horse battery staple")], ], ]; ldap_modify_batch($connection, $dn, $modifs);
|