Mercurial > pub > Impl
comparison Lib/IMPL/Security/AbstractRole.pm @ 393:69a1f1508696
minor security refactoring
author | cin |
---|---|
date | Fri, 14 Feb 2014 16:41:12 +0400 |
parents | 6d8092d8ce1b |
children |
comparison
equal
deleted
inserted
replaced
392:54b1dc9e808a | 393:69a1f1508696 |
---|---|
1 package IMPL::Security::AbstractRole; | 1 package IMPL::Security::AbstractRole; |
2 use strict; | 2 use strict; |
3 | 3 |
4 use IMPL::Const qw(:prop); | 4 use IMPL::Const qw(:prop); |
5 | 5 use IMPL::lang qw(equals_s); |
6 use parent qw(IMPL::Class::Meta); | 6 use parent qw(IMPL::Class::Meta); |
7 | 7 |
8 __PACKAGE__->static_accessor_clone( abstractProps => [ | 8 __PACKAGE__->static_accessor_clone( abstractProps => [ |
9 roleName => PROP_RW, | 9 roleName => PROP_RW, |
10 parentRoles => PROP_RW | PROP_LIST | 10 parentRoles => PROP_RW | PROP_LIST |
18 } | 18 } |
19 | 19 |
20 sub _FilterRoles { | 20 sub _FilterRoles { |
21 my ($this,@roles) = @_; | 21 my ($this,@roles) = @_; |
22 | 22 |
23 @roles = grep not (ref $_ ? $this->roleName eq $_->roleName : $this->roleName eq $_), @roles; | 23 @roles = grep not (ref $_ ? equals_s($this->roleName,$_->roleName) : equals_s($this->roleName, $_) ), @roles; |
24 | 24 |
25 @roles = $_->_FilterRoles(@roles) or return foreach $this->parentRoles ; | 25 @roles = $_->_FilterRoles(@roles) or return foreach $this->parentRoles ; |
26 | 26 |
27 return @roles; | 27 return @roles; |
28 } | 28 } |