Mercurial > pub > Impl
comparison Lib/IMPL/Security/Role.pm @ 194:4d0e1962161c
Replaced tabs with spaces
IMPL::Web::View - fixed document model, new features (control classes, document constructor parameters)
| author | cin | 
|---|---|
| date | Tue, 10 Apr 2012 20:08:29 +0400 | 
| parents | d1676be8afcc | 
| children | 6d8092d8ce1b | 
   comparison
  equal
  deleted
  inserted
  replaced
| 193:8e8401c0aea4 | 194:4d0e1962161c | 
|---|---|
| 3 use parent qw(IMPL::Object); | 3 use parent qw(IMPL::Object); | 
| 4 | 4 | 
| 5 use IMPL::Class::Property; | 5 use IMPL::Class::Property; | 
| 6 | 6 | 
| 7 BEGIN { | 7 BEGIN { | 
| 8 public property roleName => prop_get | owner_set; | 8 public property roleName => prop_get | owner_set; | 
| 9 public property parentRoles => prop_get | owner_set | prop_list; | 9 public property parentRoles => prop_get | owner_set | prop_list; | 
| 10 } | 10 } | 
| 11 | 11 | 
| 12 sub CTOR { | 12 sub CTOR { | 
| 13 my ($this,$name,$parentRoles) = @_; | 13 my ($this,$name,$parentRoles) = @_; | 
| 14 | 14 | 
| 15 $this->roleName($name) if $name; | 15 $this->roleName($name) if $name; | 
| 16 $this->parentRoles($parentRoles) if $parentRoles; | 16 $this->parentRoles($parentRoles) if $parentRoles; | 
| 17 } | 17 } | 
| 18 | 18 | 
| 19 sub Satisfy { | 19 sub Satisfy { | 
| 20 my ($this,@roles) = @_; | 20 my ($this,@roles) = @_; | 
| 21 | 21 | 
| 22 return 1 unless $this->_FilterRoles( @roles ); | 22 return 1 unless $this->_FilterRoles( @roles ); | 
| 23 return 0; | 23 return 0; | 
| 24 } | 24 } | 
| 25 | 25 | 
| 26 sub _FilterRoles { | 26 sub _FilterRoles { | 
| 27 my ($this,@roles) = @_; | 27 my ($this,@roles) = @_; | 
| 28 | 28 | 
| 29 @roles = grep not (ref $_ ? $this == $_ : $this->roleName eq $_), @roles; | 29 @roles = grep not (ref $_ ? $this == $_ : $this->roleName eq $_), @roles; | 
| 30 | 30 | 
| 31 @roles = $_->_FilterRoles(@roles) or return foreach $this->parentRoles ; | 31 @roles = $_->_FilterRoles(@roles) or return foreach $this->parentRoles ; | 
| 32 | 32 | 
| 33 return @roles; | 33 return @roles; | 
| 34 } | 34 } | 
| 35 | 35 | 
| 36 | 36 | 
| 37 1; | 37 1; | 
| 38 | 38 | 
