Changeset 107


Ignore:
Timestamp:
05/14/09 03:08:41 (15 years ago)
Author:
nanardon
Message:
  • objects::set_fields is called also to terminate work, so always try update, but detect 'no update' error
Location:
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ad
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ad/Group.pm

    r106 r107  
    4848    ( 
    4949        qw(gidNumber description member memberUID), # sAMAccountName: conflict with user 
     50                                                    # must be uniq in AD 
    5051        ($mode !~ /w/ 
    5152            ? qw(cn dn) 
     
    110111    my ($self, %data) = @_; 
    111112    my %ndata; 
    112     my $need_change = 0; 
    113113    while (my ($f, $val) = each(%data)) { 
    114114        $f eq 'memberUID' and do { 
     
    121121                if ($users{$_}{e}) { 
    122122                    $self->{entry}->del(memberUID => $_); 
    123                     $need_change = 1; 
    124123                } elsif ($users{$_}{n}) { 
    125124                    $self->{entry}->add(memberUID => $_); 
    126                     $need_change = 1; 
    127125                } # else {} # can't happen 
    128126                my $mesg = $self->{entry}->update($self->base->ldap); 
     
    139137                if ($users{$_}{e}) { 
    140138                    $self->{entry}->del(member => $user->get_field('dn')); 
    141                     $need_change = 1; 
    142139                } elsif ($users{$_}{n}) { 
    143140                    $self->{entry}->add(member => $user->get_field('dn')); 
    144                     $need_change = 1; 
    145141                } # else {} # can't happen 
    146142            } 
     
    149145        $ndata{$f} = $val; 
    150146    } 
    151     $need_change || scalar(keys %ndata) or return '0E0'; 
    152147    $self->SUPER::set_fields(%ndata); 
    153148} 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ad/User.pm

    r106 r107  
    123123    my ($self, %data) = @_; 
    124124    my %ndata; 
    125     my $needup = 0; 
    126125    while (my ($f, $val) = each(%data)) { 
    127126        $f eq 'memberOf' and do { 
     
    134133                if ($users{$_}{e}) { 
    135134                    $self->{entry}->del(memberOf => $user->get_field('dn')); 
    136                     $needup = 1; 
    137135                } elsif ($users{$_}{n}) { 
    138136                    $self->{entry}->add(memberOf => $user->get_field('dn')); 
    139                     $needup = 1; 
    140137                } # else {} # can't happen 
    141138                my $mesg = $self->{entry}->update($self->base->ldap); 
     
    145142        $ndata{$f} = $val; 
    146143    } 
    147     $needup || scalar(keys %ndata) or return '0E0'; 
    148144    $self->SUPER::set_fields(%ndata); 
    149145} 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ad/objects.pm

    r106 r107  
    120120    my ($self, %fields) = @_; 
    121121 
    122     my $needup = 0; 
    123122    foreach (keys %fields) { 
    124123        $self->get_field_name($_, 'w') or next; 
    125124        $self->_populate_entry($self->{entry}, $_, $fields{$_}); 
    126         $needup = 1; 
    127125    } 
    128126     
    129     $needup or return '0E0'; 
    130127    my $mesg = $self->{entry}->update($self->base->ldap); 
    131128 
    132     if ($mesg->code) { 
     129    if ($mesg->code && $mesg->code != 82) { 
    133130        warn $mesg->error; 
    134131        return; 
Note: See TracChangeset for help on using the changeset viewer.