More checks for empty / undefined attr for groups
This commit is contained in:
parent
09542e6b00
commit
b7f24f9136
|
@ -562,16 +562,16 @@ DOMAIN: foreach my $domain ( keys $conf->{domains} ) {
|
|||
not defined $zim_dl->{$group}->{$conf->{domains}->{$domain}->{groups}->{attr_map}->{$attr}} ) {
|
||||
# Attr does not exist in external LDAP and in Zimbra, not need to continue
|
||||
next;
|
||||
} elsif ( not defined $ext_groups->{$group}->{$attr} ) {
|
||||
} elsif ( not defined $ext_groups->{$group}->{$attr} and defined $conf->{domains}->{$domain}->{groups}->{attr_map}->{$attr} ) {
|
||||
# Attr doesn't exist in external LDAP, but exists in Zimbra. We must remove it
|
||||
$attrs = ' -' . $conf->{domains}->{$domain}->{groups}->{attr_map}->{$attr} . " " .
|
||||
zim_attr_value( $zim_dl->{$group}->{$conf->{domains}->{$domain}->{groups}->{attr_map}->{$attr}} );
|
||||
} elsif ( $ext_groups->{$group}->{$attr} ne $zim_dl->{$group}->{$conf->{domains}->{$domain}->{groups}->{attr_map}->{$attr}} ) {
|
||||
} elsif ( ( $ext_groups->{$group}->{$attr} || '' ) ne ( $zim_dl->{$group}->{$conf->{domains}->{$domain}->{groups}->{attr_map}->{$attr}} || '' ) ) {
|
||||
# Attr exists in both but doesn't match
|
||||
$attrs .= " " . $conf->{domains}->{$domain}->{groups}->{attr_map}->{$attr} . " " .
|
||||
$attrs .= " " . ( $conf->{domains}->{$domain}->{groups}->{attr_map}->{$attr} || '' ) . " " .
|
||||
zim_attr_value( $ext_groups->{$group}->{$attr} );
|
||||
log_verbose( $ext_groups->{$group}->{$attr} . " vs " .
|
||||
$zim_dl->{$group}->{$conf->{domains}->{$domain}->{groups}->{attr_map}->{$attr}} );
|
||||
log_verbose( "Attribute $attr for group $group changed from " . ( $ext_groups->{$group}->{$attr} || 'an empty value' ) . " to " .
|
||||
( $zim_dl->{$group}->{$conf->{domains}->{$domain}->{groups}->{attr_map}->{$attr}} || 'an empty value' ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue