-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathldap-modify-batch.xml
289 lines (283 loc) · 8.47 KB
/
ldap-modify-batch.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b7cbd468cb4c46d55d43a44cade0eb4590d25dea Maintainer: mumumu Status: ready -->
<refentry xml:id="function.ldap-modify-batch" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>ldap_modify_batch</refname>
<refpurpose>LDAP エントリの変更をまとめて実行する</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>ldap_modify_batch</methodname>
<methodparam><type>LDAP\Connection</type><parameter>ldap</parameter></methodparam>
<methodparam><type>string</type><parameter>dn</parameter></methodparam>
<methodparam><type>array</type><parameter>modifications_info</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>array</type><type>null</type></type><parameter>controls</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
LDAP ディレクトリに存在する既存のエントリを変更します。
実行する変更の詳細な仕様を指定できます。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>ldap</parameter></term>
<listitem>
<para>
<function>ldap_connect</function> で返された、LDAP リソース。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>dn</parameter></term>
<listitem>
<para>
LDAP エンティティの識別名。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>modifications_info</parameter></term>
<listitem>
<para>
行う変更を指定する配列。
この配列の個々のエントリは、2つまたは3つのキーからなる連想配列です:
<literal>attrib</literal> は、変更する属性の名前に対応します。
<literal>modtype</literal> は、行う変更のタイプに対応し、
(変更のタイプによっては) <literal>values</literal> が変更に関連した属性値の配列に対応します。
</para>
<para>
<literal>modtype</literal> で有効な値は以下のとおりです:
<variablelist>
<varlistentry>
<term><constant>LDAP_MODIFY_BATCH_ADD</constant></term>
<listitem>
<para>
<literal>values</literal> で指定された値が、
(追加の値として) <literal>attrib</literal> で指定された属性に追加されます。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>LDAP_MODIFY_BATCH_REMOVE</constant></term>
<listitem>
<para>
<literal>values</literal> で指定された値が、
<literal>attrib</literal> で指定された属性から削除されます。
<literal>values</literal> に含まれていない属性の値は、そのまま残されます。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>LDAP_MODIFY_BATCH_REMOVE_ALL</constant></term>
<listitem>
<para>
<literal>attrib</literal> で指定された属性名から、全ての値を削除します。
<literal>values</literal> エントリを指定してはいけません。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>LDAP_MODIFY_BATCH_REPLACE</constant></term>
<listitem>
<para>
<literal>attrib</literal> の属性名の現在の全ての値が、
<literal>values</literal> で指定された値で置き換えられます。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
以下の点に注意してください:
<literal>attrib</literal> の値は文字列でなければいけません。
<literal>values</literal> の値は、文字列の配列でなければいけません。
そして、 <literal>modtype</literal> の値は、上で示した
LDAP_MODIFY_BATCH_* 定数のうちのひとつでなければいけません。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>controls</parameter></term>
<listitem>
<para>
リクエストと一緒に送信する <link linkend="ldap.controls">LDAP コントロール</link> の配列
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
&ldap.changelog.ldap-object;
&ldap.changelog.controls-nullable;
<row>
<entry>7.3.0</entry>
<entry>
<parameter>controls</parameter> のサポートが追加されました。
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>contact に電話番号を追加する</title>
<programlisting role="php">
<![CDATA[
<?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);
?>
]]>
</programlisting>
</example>
<example>
<title>ユーザーの名前を変更する</title>
<programlisting role="php">
<![CDATA[
<?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);
?>
]]>
</programlisting>
</example>
<example>
<title>ユーザーにEメールアドレスを2つ追加する</title>
<programlisting role="php">
<![CDATA[
<?php
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com";
$modifs = [
[
"attrib" => "mail",
"modtype" => LDAP_MODIFY_BATCH_ADD,
"values" => [
],
],
];
ldap_modify_batch($connection, $dn, $modifs);
?>
]]>
</programlisting>
</example>
<example>
<title>ユーザーのパスワードを変更する</title>
<programlisting role="php">
<![CDATA[
<?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);
?>
]]>
</programlisting>
</example>
<example>
<title>ユーザーのパスワードを変更する(Active Directory)</title>
<programlisting role="php">
<![CDATA[
<?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);
]]>
</programlisting>
</example>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->