Changeset 317 for LATMOS-Accounts/lib


Ignore:
Timestamp:
08/09/09 23:40:07 (15 years ago)
Author:
nanardon
Message:
  • don't cache db connection at this level
Location:
LATMOS-Accounts/lib/LATMOS
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • LATMOS-Accounts/lib/LATMOS/Accounts.pm

    r255 r317  
    7070    my ($self, $section) = @_; 
    7171    # this method perform a cache 
    72     $self->{_bases}{$section} and return $self->{_bases}{$section}; 
    73     $self->load_base($section) ? $self->{_bases}{$section} : undef; 
     72    $self->_load_base($section); 
    7473} 
    7574 
     
    9998 
    10099# load or a if need base 
    101 sub load_base { 
     100sub _DEP_load_base { 
    102101    my ($self, $section) = @_; 
    103102    return ($self->{_bases}{$section} ||= $self->_load_base($section)) 
     
    132131} 
    133132 
    134 sub load_all_base { 
     133sub _DEP_load_all_base { 
    135134    my ($self) = @_; 
    136135    foreach ($self->list_bases) { 
     
    145144sub default_synchro { 
    146145    my ($self, %options) = @_; 
    147     my $syncname = $self->default_synchro_name or return; 
     146    my $syncname = $self->default_synchro_name or do { 
     147        la_log(LA_ERR, 'Cannot find default synchro in config'); 
     148        return; 
     149    }; 
    148150    $self->create_synchro($syncname, %options); 
    149151} 
     
    176178        map { $self->base($_) } 
    177179        @{ $options{to} || []} 
    178         or return; 
     180        or do { 
     181        la_log(LA_ERR, "No destination base load in this synchro"); 
     182        return; 
     183    }; 
    179184 
    180185    my $sync = LATMOS::Accounts::Synchro->new( 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Acls.pm

    r315 r317  
    185185        if (substr($u->{user}, 0, 1) eq '$') { # check attr content 
    186186            my $attribute = substr($u->{user}, 1); 
    187             my $val = $obj->get_c_field($attribute); 
     187            my $val = $obj->_get_c_field($attribute); 
    188188            my @vals = ref $val ? (@{ $val }) : ($val); 
    189189            return ($u->{$perm} || 0) if (grep { $_ eq $who } @vals); 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases.pm

    r316 r317  
    374374    foreach (@fields) { 
    375375        $srcobj->get_field_name($_, 'r') or next; 
    376         $data{$_} = $srcobj->get_c_field($_); 
     376        $data{$_} = $srcobj->_get_c_field($_); 
    377377    } 
    378378    if (my $dstobj = $self->get_object($srcobj->type, $srcobj->id)) { 
    379         return 'SYNCHED' if ($dstobj->set_c_fields(%data)); 
     379        return 'SYNCHED' if ($dstobj->_set_c_fields(%data)); 
    380380    } elsif(!$options{nocreate}) { 
    381381        return 'CREATE' if ($self->create_c_object($srcobj->type, $srcobj->id, %data)); 
     
    423423        return; 
    424424    }; 
    425     my $password = $uobj->get_c_field('userPassword') or do { 
     425    my $password = $uobj->_get_c_field('userPassword') or do { 
    426426        la_log(LA_ERR, "Cannot authenticate user $username having no passwd"); 
    427427        return; 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ad/User.pm

    r308 r317  
    219219    my $newUniPW = $charmap->tou('"'.$clear_pass.'"')->byteswap()->utf16(); 
    220220    my $mesg = $self->base->ldap->modify( 
    221         $self->get_c_field('dn'), 
     221        $self->_get_c_field('dn'), 
    222222        changes => [ 
    223223        #replace => [ userPassword => $clear_pass ], 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Objects.pm

    r316 r317  
    192192sub get_c_field { 
    193193    my ($self, $cfield) = @_; 
     194    $self->base->check_acl($self, $cfield, 'r') or return; 
     195    $self->_get_c_field($cfield); 
     196} 
     197 
     198sub _get_c_field { 
     199    my ($self, $cfield) = @_; 
    194200    my $field = $self->base->get_field_name($self->type, $cfield, 'r') or return; 
    195     $self->base->check_acl($self, $cfield, 'r') or return; 
    196201    $self->get_field($field); 
    197202} 
     
    220225        $self->base->check_acl($self, $cfield, 'w') or return; 
    221226    } 
     227    $self->_set_c_fields(%cdata); 
     228} 
     229 
     230sub _set_c_fields { 
     231    my ($self, %cdata) = @_; 
     232    my %data; 
    222233    foreach my $cfield (keys %cdata) { 
    223234        my $field = $self->base->get_field_name($self->type, $cfield) or next; 
     
    280291            my $value = $field->{val}; 
    281292            $base->get_field_name($class->type, $field->{attr}, 'r') or next; 
    282             my $fval = $obj->get_c_field($field->{attr}) || ''; 
     293            my $fval = $obj->_get_c_field($field->{attr}) || ''; 
    283294            if ($value eq '*') { 
    284295                if ($fval eq '') { 
     
    314325    foreach my $id ($base->list_objects($class->type)) { 
    315326        my $obj = $base->get_object($class->type, $id); 
    316         my $value = $obj->get_c_field($attribute); 
     327        my $value = $obj->_get_c_field($attribute); 
    317328        if ($value) { 
    318329            if (ref $value) { 
     
    341352    foreach ($base->list_objects($class->type)) { 
    342353        my $obj = $base->get_object($class->type, $_) or next; 
    343         my $id = $obj->get_c_field($field) or next; 
     354        my $id = $obj->_get_c_field($field) or next; 
    344355        $existsid{$id} = 1; 
    345356    } 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/User.pm

    r251 r317  
    8181    if ($field eq 'gecos') { 
    8282        return to_ascii( 
    83             join(' ', grep { $_ } ($self->get_c_field('givenName'), ($self->get_c_field('sn')))) 
    84         ) || to_ascii($self->get_c_field('description')); 
     83            join(' ', grep { $_ } ($self->_get_c_field('givenName'), ($self->_get_c_field('sn')))) 
     84        ) || to_ascii($self->_get_c_field('description')); 
    8585    } elsif ($field eq 'displayName') { 
    86         return join(' ', grep { $_ } ($self->get_c_field('givenName'), ($self->get_c_field('sn')))) 
     86        return join(' ', grep { $_ } ($self->_get_c_field('givenName'), ($self->_get_c_field('sn')))) 
    8787            || $self->id; 
    8888    } elsif ($field eq 'sAMAccountName') { 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Synchro.pm

    r296 r317  
    4444    if ($options{state_file} && ! -w $options{state_file}) { 
    4545        # don't exists, we have to create it 
    46         open(my $handle, '>', $options{state_file}) or return; 
     46        open(my $handle, '>', $options{state_file}) or do { 
     47            la_log(LA_ERR, "Cannot open status file %s", $options{state_file}); 
     48            return; 
     49        }; 
    4750        print $handle "[_default_]\n"; 
    4851        close($handle); 
Note: See TracChangeset for help on using the changeset viewer.