/** * {@inheritdoc} */ public function hasPermission($permission) { if ($this->allow === true) { if (!isset($this->deny[$permission])) { return true; } } if (isset($this->allow[$permission])) { return true; } if (isset($this->parent)) { return $this->parent->hasPermission($permission); } return false; }
/** * Sets permissions * * @param array|PermissionList $permissions * @return RoleDefinitionProperties */ public function setPermissions($permissions = null) { if (!$permissions instanceof PermissionList) { $permissionList = new PermissionList(); foreach ($permissions as $permission) { if (!$permission instanceof PermissionData) { $permissionData = PermissionData::initArray($permission); } else { $permissionData = $permission; } $permissionList->append($permissionData); } } else { $permissionList = $permissions; } return $this->__call(__FUNCTION__, [$permissionList]); }