documents:proglang:perl:perl-007
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン | |||
| documents:proglang:perl:perl-007 [2026/05/08 11:54] – ↷ documents:perl:perl-007 から documents:proglang:perl:perl-007 へページを移動しました。 k896951 | documents:proglang:perl:perl-007 [2026/05/17 15:05] (現在) – [PerlでLDAPのエントリを更新する] k896951 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | ====== 012.PerlでLDAPのエントリを更新する ====== | ||
| + | |||
| + | 2012年12月17日\\ | ||
| + | LDAPエントリ更新の雛形をメモ。 | ||
| + | |||
| + | ===== ソース ===== | ||
| + | |||
| + | DNが uid=user1, | ||
| + | |||
| + | <code perl> | ||
| + | use Encode; | ||
| + | use Net::LDAP; | ||
| + | |||
| + | my $admin | ||
| + | my $pass = ' | ||
| + | my $uid = ' | ||
| + | my $newemail | ||
| + | my $bdn = " | ||
| + | ##my $bdn2 = " | ||
| + | |||
| + | my $ldap = Net:: | ||
| + | |||
| + | my $mess = $ldap-> | ||
| + | |||
| + | my $ldapmem = $ldap-> | ||
| + | | ||
| + | | ||
| + | | ||
| + | ); | ||
| + | |||
| + | ## my $ldapmem = $ldap-> | ||
| + | ## | ||
| + | ## | ||
| + | ## | ||
| + | ## ); | ||
| + | |||
| + | my $entry | ||
| + | my $result = $ldap-> | ||
| + | $entry, | ||
| + | replace => { mail=> $newemail } | ||
| + | ); | ||
| + | $ldap-> | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== 簡単な説明 ===== | ||
| + | |||
| + | 手順は | ||
| + | - バインドする | ||
| + | - 目的のエントリを探す | ||
| + | - そのエントリを更新 | ||
| + | - アンバインドする | ||
| + | |||
| + | となります。 | ||
| + | |||
| + | search()メソッドのscopeに" | ||
| + | filterは必須で、これが無いとエントリがなぜか見つかりません。 | ||
| + | |||
| + | search()メソッドの結果は配列で返されます。1エントリしか検索されない場合、第0番目の要素が該当します。 | ||
| + | エントリのオブジェクトにあるget_value()メソッドで属性値を取り出せます。 | ||
| + | |||
| + | <code perl> | ||
| + | $entry | ||
| + | |||
| + | print $entry-> | ||
| + | </ | ||
| + | |||
| + | modify()メソッドで更新したいDN(今しがたsearch()で見つけたもの)、更新したい属性とその値を指定します。 | ||
| + | groupオブジェクトのmember属性のように複数の値を格納する場合、属性値を取得後に値をマージ、マージ結果をmodify()メソッドでアップデートしてあげる事になるようです。 | ||
| + | こんな感じ。配列で複数の値を表すようです。 | ||
| + | <code perl> | ||
| + | my $result = $ldap-> | ||
| + | $entry, | ||
| + | replace => { memberUid=> | ||
| + | ); | ||
| + | </ | ||
| + | |||
| + | |||
documents/proglang/perl/perl-007.txt · 最終更新: by k896951
