Changeset 420


Ignore:
Timestamp:
09/04/09 05:12:38 (15 years ago)
Author:
nanardon
Message:
  • allow to manage CREATE/DELETE action in acls
Location:
LATMOS-Accounts
Files:
3 edited

Legend:

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

    r323 r420  
    182182sub match { 
    183183    my ($self, $obj, $attr, $perm, $who, $groups) = @_; 
    184     my $objtype = lc($obj->type); $attr = lc($attr); 
     184    my $objtype = ref $obj ? lc($obj->type) : $obj; 
     185    $attr = lc($attr); 
    185186    if (!($self->{obj} eq '*' || $self->{obj} eq $objtype)) { 
    186187        return 
     
    190191    foreach my $u (@{ $self->{users} }) { 
    191192        if (substr($u->{user}, 0, 1) eq '$') { # check attr content 
    192             my $attribute = substr($u->{user}, 1); 
    193             my $val = $obj->_get_c_field($attribute); 
    194             my @vals = ref $val ? (@{ $val }) : ($val); 
    195             return ($u->{$perm} || 0) if (grep { $_ eq $who } @vals); 
     193            if (ref $obj) { 
     194                my $attribute = substr($u->{user}, 1); 
     195                my $val = $obj->_get_c_field($attribute); 
     196                my @vals = ref $val ? (@{ $val }) : ($val); 
     197                return ($u->{$perm} || 0) if (grep { $_ eq $who } @vals); 
     198            } 
    196199        } elsif (substr($u->{user}, 0, 1) eq '%') { # group 
    197200            my $group = substr($u->{user}, 1); 
  • LATMOS-Accounts/t/21_acls.t

    r317 r420  
    11use strict; 
    22use warnings; 
    3 use Test::More tests => 13; 
     3use Test::More tests => 14; 
    44 
    55use_ok('LATMOS::Accounts::Acls'); 
     
    3939        $acls->check(fakeobject->new('group', 'group1'), 'uid', 'w', 
    4040            'user1', [ 'admin' ]), 1, "user can write group attribute"); 
     41    is( 
     42        $acls->check('user', 'CREATE', 'w', 'user1', [ 'admin' ]), 1, 
     43            "user can create a new user"); 
    4144} 
    4245 
  • LATMOS-Accounts/testdata/acls1

    r314 r420  
    33*.userPassword 
    44    *: read,deny # the deny will mask the read 
     5 
     6user.CREATE 
     7    user1: write 
    58 
    69user.{sn,\ 
Note: See TracChangeset for help on using the changeset viewer.