Changeset 489


Ignore:
Timestamp:
10/04/09 18:25:35 (15 years ago)
Author:
nanardon
Message:
  • acl: unspecified read or write keywords must not return perm denied
File:
1 edited

Legend:

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

    r488 r489  
    206206            if (ref $obj) { 
    207207                my $attribute = substr($u->{user}, 1); 
    208                 my $val = $obj->_get_c_field($attribute); 
     208                my $val = $obj->_get_c_field($attribute) or return; 
    209209                my @vals = ref $val ? (@{ $val }) : ($val); 
    210                 return ($u->{$perm} || 0) if (grep { $_ eq $who } @vals); 
     210                return $u->{$perm} if (defined($u->{$perm}) && grep { $_ eq $who } @vals); 
    211211            } 
    212212        # user is in group 
    213213        } elsif (substr($u->{user}, 0, 1) eq '%') { # group 
    214214            my $group = substr($u->{user}, 1); 
    215             return ($u->{$perm} || 0) if (grep { $group eq $_ } @{$groups ||[]}); 
     215            return $u->{$perm} if (defined($u->{$perm}) && grep { $group eq $_ } @{$groups ||[]}); 
    216216        # any user 
    217217        } elsif ($u->{user} eq '*' || $u->{user} eq $who) { 
    218             return $u->{$perm} || 0; 
     218            return $u->{$perm} if (defined($u->{$perm})); 
    219219        # any authenticated user 
    220220        } elsif (lc($u->{user}) eq '@authenticated' && $who) { 
    221             return $u->{$perm} || 0; 
     221            return $u->{$perm} if (defined($u->{$perm})); 
    222222        # not login 
    223223        } elsif (lc($u->{user}) eq '@anonymous' && $who eq "") { 
    224             return $u->{$perm} || 0; 
     224            return $u->{$perm} if (defined($u->{$perm})); 
    225225        } 
    226226    } 
Note: See TracChangeset for help on using the changeset viewer.