/[smeserver]/rpms/e-smith-ldap/sme8/e-smith-ldap-5.2.0-rename_old_record.patch
ViewVC logotype

Contents of /rpms/e-smith-ldap/sme8/e-smith-ldap-5.2.0-rename_old_record.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Sat Sep 25 18:38:04 2010 UTC (13 years, 8 months ago) by slords
Branch: MAIN
CVS Tags: e-smith-ldap-5_2_0-49_el5_sme, e-smith-ldap-5_2_0-76_el5_sme, e-smith-ldap-5_2_0-71_el5_sme, e-smith-ldap-5_2_0-39_el5_sme, e-smith-ldap-5_2_0-77_el5_sme, e-smith-ldap-5_2_0-50_el5_sme, e-smith-ldap-5_2_0-78_el5_sme, e-smith-ldap-5_2_0-37_el5_sme, e-smith-ldap-5_2_0-61_el5_sme, e-smith-ldap-5_2_0-66_el5_sme, e-smith-ldap-5_2_0-70_el5_sme, e-smith-ldap-5_2_0-79_el5_sme, e-smith-ldap-5_2_0-81_el5_sme, e-smith-ldap-5_2_0-36_el5_sme, e-smith-ldap-5_2_0-59_el5_sme, e-smith-ldap-5_2_0-45_el5_sme, e-smith-ldap-5_2_0-75_el5_sme, e-smith-ldap-5_2_0-46_el5_sme, e-smith-ldap-5_2_0-56_el5_sme, e-smith-ldap-5_2_0-55_el5_sme, e-smith-ldap-5_2_0-57_el5_sme, e-smith-ldap-5_2_0-73_el5_sme, e-smith-ldap-5_2_0-69_el5_sme, e-smith-ldap-5_2_0-48_el5_sme, e-smith-ldap-5_2_0-44_el5_sme, e-smith-ldap-5_2_0-52_el5_sme, e-smith-ldap-5_2_0-51_el5_sme, e-smith-ldap-5_2_0-35_el5_sme, e-smith-ldap-5_2_0-72_el5_sme, e-smith-ldap-5_2_0-34_el5_sme, e-smith-ldap-5_2_0-65_el5_sme, e-smith-ldap-5_2_0-54_el5_sme, e-smith-ldap-5_2_0-53_el5_sme, e-smith-ldap-5_2_0-43_el5_sme, e-smith-ldap-5_2_0-47_el5_sme, e-smith-ldap-5_2_0-40_el5_sme, e-smith-ldap-5_2_0-80_el5_sme, e-smith-ldap-5_2_0-74_el5_sme, e-smith-ldap-5_2_0-41_el5_sme, e-smith-ldap-5_2_0-63_el5_sme, e-smith-ldap-5_2_0-60_el5_sme, e-smith-ldap-5_2_0-62_el5_sme, e-smith-ldap-5_2_0-42_el5_sme, e-smith-ldap-5_2_0-38_el5_sme, e-smith-ldap-5_2_0-68_el5_sme, e-smith-ldap-5_2_0-67_el5_sme, e-smith-ldap-5_2_0-64_el5_sme, HEAD
* Sat Sep 25 2010 Shad L. Lords <slords@mail.com> 5.2.0-34.sme
- Add ibay and machine accounts into ldap [SME: 6236]

1 diff -up e-smith-ldap-5.2.0/root/etc/e-smith/events/actions/ldap-update.rename_old_record e-smith-ldap-5.2.0/root/etc/e-smith/events/actions/ldap-update
2 --- e-smith-ldap-5.2.0/root/etc/e-smith/events/actions/ldap-update.rename_old_record 2010-09-25 12:20:02.000000000 -0600
3 +++ e-smith-ldap-5.2.0/root/etc/e-smith/events/actions/ldap-update 2010-09-25 12:19:15.000000000 -0600
4 @@ -260,15 +260,42 @@ endpwent();
5 #------------------------------------------------------------
6 foreach my $dn (keys %$updates)
7 {
8 + # Try and find old record (sme7)
9 + my ($oldfilter, undef, $oldsearchbase) = split /,/, $dn, 3;
10 + my $oldresult = $ldap->search( base => $oldsearchbase, filter => "($oldfilter)", scope => 'one' );
11 + if ( $result->code )
12 + {
13 + warn "failed looking up old entry $oldfilter,$oldsearchbase: ", $result->error;
14 + next;
15 + }
16 +
17 # Try and find record
18 my ($filter, $searchbase) = split /,/, $dn, 2;
19 - my $result = $ldap->search( base => $searchbase, filter => "($filter)" );
20 + $result = $ldap->search( base => $searchbase, filter => "($filter)" );
21 if ( $result->code )
22 {
23 warn "failed looking up entry $dn: ", $result->error;
24 next;
25 }
26 my $cnt = $result->count;
27 + my @objectClass = $cnt == 0 ? () : $result->entry(0)->get_value('objectClass');
28 +
29 + # If we have an old record either rename it or remove it
30 + if ( $oldresult->count == 1)
31 + {
32 + if ( $cnt == 0 )
33 + {
34 + $result = $ldap->moddn( "$oldfilter,$oldsearchbase", newrdn => $filter, newsuperior => $searchbase, deleteoldrdn => 1 );
35 + warn "failed to rename old entry $oldfilter,$oldsearchbase: ", $result->error if $result->code;
36 + $cnt = $oldresult->count;
37 + @objectClass = $oldresult->entry(0)->get_value('objectClass');
38 + }
39 + else
40 + {
41 + $result = $ldap->delete( "$oldfilter,$oldsearchbase" );
42 + warn "failed to remove old entry $oldfilter,$oldsearchbase: ", $result->error if $result->code;
43 + }
44 + }
45
46 # Clean up attributes and convert to utf8
47 delete $updates->{$dn}->{'junk'};
48 @@ -313,6 +340,10 @@ foreach my $dn (keys %$updates)
49 }
50 elsif ( $cnt == 1 )
51 {
52 + # Don't overwrite objectClass (just update if necessary)
53 + %seen = ();
54 + @{$updates->{$dn}->{objectClass}} = grep { ! $seen{$_} ++ } (@{$updates->{$dn}->{objectClass}}, @objectClass );
55 +
56 $result = $ldap->modify( $dn, replace => $updates->{$dn});
57 $result->code && warn "failed to modify entry $dn: ", $result->error;
58 }

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed