0

PerlのNet::LDAPモジュールは、Net::LDAP::Search オブジェクトを提供します。そのas_structメソッドは以下の構造を返します。

として複数のエントリ

$entry{dn=...} = 
ref {cn} = ref {name}
ref {l} = ref {city}
ref{mail} = ref {xxxxxx}

例:

uid=pieterb,ou=People,dc=example,dc=org {key of first hash = dn in ldap}
uid=pieterb {key=uid}
cn=Pieter B. {key=cn}
uidNumber=1000 {key=uidNumber}
gidNumber=4000 {key=gidNumber}

uid=markc,ou=People,dc=example,dc=org {key of first hash = dn in ldap }
uid=markc {key=uid}
cn=Mark Cole {key=cn}
uidNumber=1001 {key=uidNumber}
gidNumber=4000 {key=gidNumber}

ただし、インターフェースはUI::Dialog以下の形式 (ラジオリスト/チェックリスト) のリストを想定して使用し、データは LDAP サーバーの属性値から取得されます。

list => [ 
'Pieter B.', ['uid=pieterb,ou=People,dc=example,dc=org',0],
'Mark Cole', ['uid=markc,ou=People,dc=example,dc=org',0],
'cn_value(openldap)',['dn_value',0],
'givenname_value(activedirectory)',['dn_value',0]
]
4

1 に答える 1

0

何が必要かを推測するのは非常に困難ですが、LDAP 属性名とその値のリストだと思います。

Data::Dumper扱っているデータ構造を調べて提示するには、 を参照する必要があります。

検索から取得したデータに複数のDistinguished Names 、または属性の複数の値が含まれている場合の対処方法については言及していませんが、このコードは単に最初の DN と属性値のリストの最初の値を取得して、次のリストを生成します。リスト。

これがまさにあなたが必要としているものではないことに疑いの余地はありません。要件をより適切に指定していただければ、さらにお手伝いできるでしょう。

my $data = $msg->as_struct;
my $entry = (values %$data)[0];

my @attributes = map {
  $_, [$entry->{$_}[0], 0]
} keys %$entry;

$dialog->checklist(list => \@attributes);
于 2012-05-29T12:46:39.183 に答える