X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=bin%2Fldap-rewrite.pl;h=741a0a6a709436c3ab12f9de5643f507135be392;hb=1559034e6872ea98846c0128d1e9b462c5a6a6bd;hp=490b44461acae248103bf1cf4067a82c3a2a70e4;hpb=d732f4fac3e6d90364d9a2e904956a31a4a901cc;p=virtual-ldap diff --git a/bin/ldap-rewrite.pl b/bin/ldap-rewrite.pl index 490b444..741a0a6 100755 --- a/bin/ldap-rewrite.pl +++ b/bin/ldap-rewrite.pl @@ -139,7 +139,7 @@ sub log_response { foreach my $attr ( @{ $response->{protocolOp}->{searchResEntry}->{attributes} } ) { if ( $attr->{type} =~ m/date/i ) { foreach my $i ( 0 .. $#{ $attr->{vals} } ) { - $attr->{vals}->[$i] = "$1-$2-$3" if $attr->{vals}->[$i] =~ m/^([12]\d\d\d)([01]\d+)([123]\d+)$/; + $attr->{vals}->[$i] = "$1-$2-$3" if $attr->{vals}->[$i] =~ m/^([12]\d\d\d)([01]\d+)([0123]\d+)$/; } } elsif ( $attr->{type} eq 'hrEduPersonUniqueNumber' ) { foreach my $val ( @{ $attr->{vals} } ) { @@ -147,6 +147,10 @@ sub log_response { my ( $n, $v ) = split(/\s*:\s*/, $val ); push @attrs, { type => $attr->{type} . '_' . $n, vals => [ $v ] }; } + } elsif ( $attr->{type} eq 'hrEduPersonGroupMember' ) { + foreach my $i ( 0 .. $#{ $attr->{vals} } ) { + $attr->{vals}->[$i] =~ s/^u2010/p2010/gs && warn "FIXME group"; + } } } @@ -154,10 +158,21 @@ sub log_response { push @{ $response->{protocolOp}->{searchResEntry}->{attributes} }, $_ foreach @attrs; - my $path = $config->{yaml_dir} . "$uid.yaml"; - if ( -e $path ) { - my $data = LoadFile($path); - warn "# yaml = ",dump($data); + my @additional_yamls = ( $uid ); + foreach my $attr ( @{ $response->{protocolOp}->{searchResEntry}->{attributes} } ) { + foreach my $v ( @{ $attr->{vals} } ) { + push @additional_yamls, $attr->{type} . '/' . $v; + } + } + + #warn "# additional_yamls ",dump( @additional_yamls ); + + foreach my $path ( @additional_yamls ) { + my $full_path = $config->{yaml_dir} . '/' . $path . '.yaml'; + next unless -e $full_path; + + my $data = LoadFile( $full_path ); + warn "# $full_path yaml = ",dump($data); foreach my $type ( keys %$data ) {