Changeset 1616


Ignore:
Timestamp:
01/08/16 21:20:39 (8 years ago)
Author:
nanardon
Message:

Fix upgrade of objectClass for user

Location:
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ldap
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ldap/User.pm

    r1603 r1616  
    8181            post => sub { 
    8282                my ($self, $value) = @_; 
    83                 if (!grep { $_ eq 'sambaSamAccount' }  $self->object->_get_attributes('objectClass')) { 
    84                     $self->_update_class( 
    85                         sambaSID => $self->base->sambaSID(_computeSSID($value)) 
    86                     ); 
    87                 } else { 
    88                     $self->object->set_fields(sambaSID => $self->object->base->sambaSID(_computeSSID($value))); 
    89                 } 
     83                $self->object->set_fields(sambaSID => $self->object->base->sambaSID(_computeSSID($value))); 
    9084            }, 
    9185        }, 
     
    143137        sambaLMPassword => { readable => 0, }, 
    144138        sambaNTPassword => { readable => 0, }, 
    145         sambaSid => { ro => 1 }, 
     139        sambaSID => { ro => 1 }, 
    146140    } 
     141    ); 
     142} 
     143 
     144sub _update_class { 
     145    my ($self) = @_; 
     146 
     147    $self->SUPER::_update_class( 
     148        sambaSID => $self->base->sambaSID( 
     149            _computeSSID($self->_get_attributes('uidNumber')) 
     150        ) 
    147151    ); 
    148152} 
     
    283287    my ($lm, $nt) = ntlmgen $clear_pass; 
    284288 
    285     if (!grep { $_ eq 'sambaSamAccount' }  $self->get_attributes('objectClass')) { 
    286         $self->_update_class( 
    287             sambaSID => $self->base->sambaSID($self->_get_attributes('uidNumber') * 2 + 1000) 
    288         ); 
    289     } 
    290  
    291289    my $res = $self->set_fields( 
    292290        userPassword    => $md5, 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ldap/objects.pm

    r1603 r1616  
    202202        my $cclass = join(',', sort $self->_my_ldap_classes); 
    203203        if ($oclass ne $cclass) { 
    204             $self->{entry}->replace( 
    205                 'objectClass' => [ $self->_my_ldap_classes ] 
    206             ); 
     204            $self->_update_class(); 
    207205        } 
    208206    } 
Note: See TracChangeset for help on using the changeset viewer.