Changeset 805


Ignore:
Timestamp:
02/15/10 15:40:38 (14 years ago)
Author:
nanardon
Message:
  • don't use eval so real error get not trap and kill the program in case of serious issue
File:
1 edited

Legend:

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

    r774 r805  
    195195    my ($self, $cfield) = @_; 
    196196    my $return; 
    197     eval { 
    198         $self->base->check_acl($self, $cfield, 'r') or die "Permission denied"; 
    199         $return = $self->_get_c_field($cfield); 
     197    $self->base->check_acl($self, $cfield, 'r') or do { 
     198        $self->base->log(LA_ERR, "Permission denied to get %s/%s", 
     199            $self->id, $cfield 
     200        ); 
     201        return; 
    200202    }; 
    201     $return 
     203    return $self->_get_c_field($cfield); 
    202204} 
    203205 
     
    223225    my ($self, $cfield) = @_; 
    224226    my $return; 
    225     eval { 
    226         my $field = $self->base->get_field_name($self->type, $cfield, 'r') or 
    227             die "Unknow attribute $cfield"; 
    228         $return = $self->get_field($field); 
     227    my $field = $self->base->get_field_name($self->type, $cfield, 'r') or do { 
     228        $self->base->log(LA_WARN, "Unknow attribute $cfield"); 
     229        return; 
    229230    }; 
    230     $return 
     231    $return = $self->get_field($field); 
    231232} 
    232233 
     
    275276sub set_c_fields { 
    276277    my ($self, %cdata) = @_; 
    277     eval { 
    278         foreach my $cfield (keys %cdata) { 
    279             $self->base->check_acl($self, $cfield, 'w') or  
    280                 die "permission denied\n"; 
    281         } 
    282  
    283         foreach my $cfield (keys %cdata) { 
    284             $self->check_allowed_values($cfield, $cdata{$cfield}) or 
    285                 die "incorrect attribute\n"; 
    286         } 
    287     }; 
    288     if($@) { 
    289         $self->base->log(LA_ERR, "Cannot modified %s/%s: %s", 
    290             $self->type, $self->id, $@ 
    291         ); 
    292         return; 
     278    foreach my $cfield (keys %cdata) { 
     279        $self->base->check_acl($self, $cfield, 'w') or do {  
     280            $self->base->log(LA_ERR, "Cannot modified %s/%s: %s", 
     281                $self->type, $self->id, "permission denied"); 
     282            return; 
     283        }; 
     284    } 
     285 
     286    foreach my $cfield (keys %cdata) { 
     287        $self->check_allowed_values($cfield, $cdata{$cfield}) or do { 
     288            $self->base->log(LA_ERR, "Cannot modified %s/%s: %s", 
     289                $self->type, $self->id, "non authorized value"); 
     290            return; 
     291        }; 
    293292    } 
    294293    $self->_set_c_fields(%cdata); 
Note: See TracChangeset for help on using the changeset viewer.