Skip to content

Commit

Permalink
Update Acl.php
Browse files Browse the repository at this point in the history
  • Loading branch information
armenio committed Feb 5, 2020
1 parent c843929 commit 6af013f
Showing 1 changed file with 20 additions and 11 deletions.
31 changes: 20 additions & 11 deletions src/Acl/Acl.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@
namespace Armenio\Permissions\Acl;

use Zend\Permissions\Acl\Acl as ZendAcl;
use Zend\Permissions\Acl\Exception\InvalidArgumentException;
use Zend\Permissions\Acl\Resource\GenericResource as Resource;
use Zend\Permissions\Acl\Role\GenericRole as Role;
use Zend\Stdlib\Exception\InvalidArgumentException;
use Zend\Stdlib\Exception\RuntimeException;

/**
* Class Acl
Expand All @@ -38,6 +37,11 @@ class Acl extends ZendAcl
* @param array $roleResourcePrivileges
* @return $this
*/

/**
* @param array $roleResourcePrivileges
* @return $this
*/
public function setRoleResourcePrivileges(array $roleResourcePrivileges)
{
if (empty($roleResourcePrivileges)) {
Expand All @@ -56,23 +60,17 @@ public function setRoleResourcePrivileges(array $roleResourcePrivileges)
*/
public function getRoleResourcePrivileges()
{
if (empty($this->roleResourcePrivileges)) {
throw new RuntimeException('Empty Role Resource Privileges');
}

return $this->roleResourcePrivileges;
}

/**
* @return void
*/
public function addRules()
protected function addRules()
{
if (empty($this->roleResourcePrivileges)) {
return;
}
$roleResourcePrivileges = $this->getRoleResourcePrivileges();

foreach ($this->roleResourcePrivileges as $roleName => $resources) {
foreach ($roleResourcePrivileges as $roleName => $resources) {
if (!$this->hasRole($roleName)) {
$this->addRole(new Role($roleName));
}
Expand All @@ -96,4 +94,15 @@ public function addRules()
}
}
}

/**
* @param \Zend\Permissions\Acl\Role\RoleInterface|string $role
* @param \Zend\Permissions\Acl\Resource\ResourceInterface|string $resource
* @param string $privilege
* @return bool
*/
public function isAllowed($role = null, $resource = null, $privilege = null)
{
return $this->hasRole($role) && $this->hasResource($resource) && parent::isAllowed($role, $resource, $privilege);
}
}

0 comments on commit 6af013f

Please sign in to comment.