Completed
Push — develop ( 83694e...386ced )
by
unknown
17:24 queued 08:59
created

WriteAssertion::assert()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
c 1
b 1
f 0
dl 0
loc 7
rs 9.2
cc 4
eloc 5
nc 4
nop 4
1
<?php
2
/**
3
 * YAWIK
4
 *
5
 * @filesource
6
 * @license MIT
7
 * @copyright  2013 - 2016 Cross Solution <http://cross-solution.de>
8
 */
9
  
10
/** */
11
namespace Organizations\Acl\Assertion;
12
13
use Auth\Entity\UserInterface;
14
use Core\Entity\PermissionsInterface;
15
use Organizations\Entity\OrganizationInterface;
16
use Zend\Permissions\Acl\Acl;
17
use Zend\Permissions\Acl\Assertion\AssertionInterface;
18
use Zend\Permissions\Acl\Resource\ResourceInterface;
19
use Zend\Permissions\Acl\Role\RoleInterface;
20
21
/**
22
 * ${CARET}
23
 * 
24
 * @author Mathias Gelhausen <[email protected]>
25
 * @todo write test 
26
 */
27
class WriteAssertion implements AssertionInterface
28
{
29
    public function assert(Acl $acl, RoleInterface $role = null, ResourceInterface $resource = null, $privilege = null)
30
    {
31
        return 'edit' == $privilege
32
               && $role instanceOf UserInterface
33
               && $resource instanceOf OrganizationInterface
34
               && $resource->getPermissions()->isGranted($role, PermissionsInterface::PERMISSION_CHANGE);
35
    }
36
}