our $user = 'unconfigured-user';
our $passwd = 'unconfigured-password';
-our $max_results = 15; # 100; # FIXME
+our $max_results = 1500; # 100; # FIXME
our $objectclass = 'HrEduPerson';
warn "# ", $sth->rows, " results for ",dump( $reqData->{'filter'} );
+ my $last_dn = '?';
+ my $entry;
+
while (my $row = $sth->fetchrow_hashref) {
my ( $dn, $attributes ) = _dn_attributes( $row, $base );
- my $entry = Net::LDAP::Entry->new;
- $entry->dn( $dn );
- $entry->add( %$attributes );
+ warn "# dn $last_dn ... $dn\n";
+
+ if ( $dn ne $last_dn ) {
+
+ if ( $entry ) {
+ #$entry->changetype( 'modify' );
+ warn "### entry ",$entry->dump( \*STDERR );
+ push @entries, $entry;
+ undef $entry;
+ }
- #$entry->changetype( 'modify' );
+ $entry = Net::LDAP::Entry->new;
+ $entry->dn( $dn );
- warn "### entry ",$entry->dump( \*STDERR );
+ $entry->add( %$attributes );
+
+ } else {
+ foreach my $n ( keys %$attributes ) {
+ my $v = $attributes->{$n};
+ warn "# attr $n = $v\n";
+ $entry->add( $n, $v ) if $entry->get_value( $n ) ne $v;
+ }
+ }
+
+
+ $last_dn = $dn;
- push @entries, $entry;
}
+ warn "### last entry ",$entry->dump( \*STDERR );
+ push @entries, $entry;
+
} else {
warn "UNKNOWN request: ",dump( $reqData );
}
--- /dev/null
+select
+ concat('cn=',c.categorycode,',ou=groups') as dn,
+ 'group' as objectClass,
+ 'groups' as ou,
+ c.categorycode as cn,
+ description as description,
+
+ concat('uid=',replace(userid,'@ffzg.hr',''),',ou=',c.categorycode,',dc=ffzg,dc=hr') as members
+from categories c
+join borrowers b on b.categorycode = c.categorycode
+where length(userid) > 0
select
- concat('ou=',categorycode) as dn,
- 'top
- organizationalUnit' as objectClass,
- categorycode as ou,
- description as description,
+ 'ou=groups' as dn,
+ 'organizationalunit' as objectClass,
+ 'groups' as ou,
+ 'Groups from Koha' as description
- -- fake objectGUID since we don't have primary key
- crc32(categorycode) as objectGUID
-
-from categories