Re: large groups question
Natxo Asenjo <[email protected]> Wed, 6 Jan 2016 15:21:45 +0100
| Newsgroups | gmane.comp.lang.perl.modules.ldap |
|---|---|
| Message-ID | <CAHBEJzXGpji7nSiP8MmRe0zNP1KPMO8jFNAwEowDXHkNG50N9w@mail.gmail.com> |
--001a11419974e8314f0528ab12fc Content-Type: text/plain; charset=UTF-8 Hi Justin, On Wed, Jan 6, 2016 at 1:28 PM, Justin Alcorn <[email protected]> wrote: > Your issue is that your perl logic has only one loop, over the first > group. You need to search and then start processing the groups with > pop_entry. > thanks for the tip! I have this now which seems to work properly: my @members; my $samaccount; $mesg = $ldapprod->search( base => $prod_base, filter => "(objectclass=group)", scope => 'sub', attrs => [ ( $index > 0 ) ? "member;range=$index-*" : 'member', 'samaccountname', ] ); if ( $mesg->code == LDAP_SUCCESS ) { #my $entry = $mesg->entry(0); while ( my $entry = $mesg->pop_entry() ) { my $attr; # large group if ( ($attr) = grep( /^member;range=/, $entry->attributes ) ) { push( @members, $entry->get_value($attr) ); $samaccount = $entry->get_value('samaccountname'); if ( $attr =~ /^member;range=\d+-(.*)$/ ) { $index = $1; $index++ if ( $index ne '*' ); } } # small group else { @members = $entry->get_value('member'); $samaccount = $entry->get_value('samaccountname'); } print "Group: $samaccount\n"; for (@members) { print "$_\n"; } print "=" x 72 . "\n"; } } Thanks again, i have to look into the paging limits as well, as you mentioned. Small steps. -- regards, natxo --001a11419974e8314f0528ab12fc Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+SGkgSnVzdGluLDxicj48ZGl2PjxkaXYgY2xhc3M9ImdtYWlsX2V4dHJh Ij48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFdlZCwgSmFuIDYsIDIwMTYgYXQgMToy OCBQTSwgSnVzdGluIEFsY29ybiA8c3BhbiBkaXI9Imx0ciI+Jmx0OzxhIGhyZWY9Im1haWx0bzpq YmFsY29ybkBnbWFpbC5jb20iIHRhcmdldD0iX2JsYW5rIj5qYmFsY29ybkBnbWFpbC5jb208L2E+ Jmd0Ozwvc3Bhbj4gd3JvdGU6PGJyPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5 bGU9Im1hcmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiKDIw NCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij48cCBkaXI9Imx0ciI+WW91ciBpc3N1ZSBpcyB0 aGF0IHlvdXIgcGVybCBsb2dpYyBoYXMgb25seSBvbmUgbG9vcCwgb3ZlciB0aGUgZmlyc3QgZ3Jv dXAuIFlvdSBuZWVkIHRvIHNlYXJjaCBhbmQgdGhlbiBzdGFydCBwcm9jZXNzaW5nIHRoZSBncm91 cHMgd2l0aCBwb3BfZW50cnkuPC9wPjwvYmxvY2txdW90ZT48ZGl2Pjxicj48L2Rpdj48ZGl2PnRo YW5rcyBmb3IgdGhlIHRpcCE8YnI+PGJyPjwvZGl2PjxkaXY+SSBoYXZlIHRoaXMgbm93IHdoaWNo IHNlZW1zIHRvIHdvcmsgcHJvcGVybHk6PGJyPjxicj5teSBAbWVtYmVyczs8YnI+bXkgJHNhbWFj Y291bnQ7PGJyPiRtZXNnID0gJGxkYXBwcm9kLSZndDtzZWFyY2goPGJyPsKgwqDCoCBiYXNlwqDC oCA9Jmd0OyAkcHJvZF9iYXNlLDxicj7CoMKgwqAgZmlsdGVyID0mZ3Q7ICZxdW90OyhvYmplY3Rj bGFzcz1ncm91cCkmcXVvdDssPGJyPsKgwqDCoCBzY29wZcKgID0mZ3Q7ICYjMzk7c3ViJiMzOTss PGJyPsKgwqDCoCBhdHRyc8KgID0mZ3Q7IFs8YnI+wqDCoMKgwqDCoMKgwqAgKCAkaW5kZXggJmd0 OyAwICkgPyAmcXVvdDttZW1iZXI7cmFuZ2U9JGluZGV4LSomcXVvdDsgOiAmIzM5O21lbWJlciYj Mzk7LCAmIzM5O3NhbWFjY291bnRuYW1lJiMzOTssPGJyPsKgwqDCoCBdPGJyPik7PGJyPmlmICgg JG1lc2ctJmd0O2NvZGUgPT0gTERBUF9TVUNDRVNTICkgezxicj48YnI+wqDCoMKgICNteSAkZW50 cnkgPSAkbWVzZy0mZ3Q7ZW50cnkoMCk7PGJyPsKgwqDCoCB3aGlsZSAoIG15ICRlbnRyeSA9ICRt ZXNnLSZndDtwb3BfZW50cnkoKSApIHs8YnI+wqDCoMKgwqDCoMKgwqAgbXkgJGF0dHI7PGJyPjxi cj7CoMKgwqDCoMKgwqDCoCAjIGxhcmdlIGdyb3VwPGJyPsKgwqDCoMKgwqDCoMKgIGlmICggKCRh dHRyKSA9IGdyZXAoIC9ebWVtYmVyO3JhbmdlPS8sICRlbnRyeS0mZ3Q7YXR0cmlidXRlcyApICkg ezxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHB1c2goIEBtZW1iZXJzLCAkZW50cnktJmd0O2dl dF92YWx1ZSgkYXR0cikgKTs8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAkc2FtYWNjb3VudCA9 ICRlbnRyeS0mZ3Q7Z2V0X3ZhbHVlKCYjMzk7c2FtYWNjb3VudG5hbWUmIzM5Oyk7PGJyPjxicj7C oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICggJGF0dHIgPX4gL15tZW1iZXI7cmFuZ2U9XGQrLSgu KikkLyApIHs8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICRpbmRleCA9ICQxOzxi cj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJGluZGV4KysgaWYgKCAkaW5kZXggbmUg JiMzOTsqJiMzOTsgKTs8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9PGJyPsKgwqDCoMKgwqDC oMKgIH08YnI+PGJyPsKgwqDCoMKgwqDCoMKgICMgc21hbGwgZ3JvdXA8YnI+wqDCoMKgwqDCoMKg wqAgZWxzZSB7PGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQG1lbWJlcnPCoMKgwqAgPSAkZW50 cnktJmd0O2dldF92YWx1ZSgmIzM5O21lbWJlciYjMzk7KTs8YnI+wqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAkc2FtYWNjb3VudCA9ICRlbnRyeS0mZ3Q7Z2V0X3ZhbHVlKCYjMzk7c2FtYWNjb3VudG5h bWUmIzM5Oyk7PGJyPsKgwqDCoMKgwqDCoMKgIH08YnI+wqDCoMKgwqDCoMKgwqAgcHJpbnQgJnF1 b3Q7R3JvdXA6ICRzYW1hY2NvdW50XG4mcXVvdDs7PGJyPsKgwqDCoMKgwqDCoMKgIGZvciAoQG1l bWJlcnMpIHs8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwcmludCAmcXVvdDskX1xuJnF1b3Q7 Ozxicj7CoMKgwqDCoMKgwqDCoCB9PGJyPsKgwqDCoMKgwqDCoMKgIHByaW50ICZxdW90Oz0mcXVv dDsgeCA3MiAuICZxdW90O1xuJnF1b3Q7Ozxicj7CoMKgwqAgfTxicj48YnI+fTxicj48YnI+PC9k aXY+PGRpdj5UaGFua3MgYWdhaW4sIGkgaGF2ZSB0byBsb29rIGludG8gdGhlIHBhZ2luZyBsaW1p dHMgYXMgd2VsbCwgYXMgeW91IG1lbnRpb25lZC4gU21hbGwgc3RlcHMuPGJyPjxicj4tLSA8YnI+ PC9kaXY+PGRpdj5yZWdhcmRzLDxicj48L2Rpdj48ZGl2Pm5hdHhvIDxicj48L2Rpdj48L2Rpdj48 L2Rpdj48YnI+PC9kaXY+PC9kaXY+DQo= --001a11419974e8314f0528ab12fc--