SimpleAcl\Acl::removeRule PHP Method

removeRule() public method

Remove rules by rule name and (or) role and resource.
public removeRule ( null | string $roleName = null, null | string $resourceName = null, null | string $ruleName = null, boolean $all = true )
$roleName null | string
$resourceName null | string
$ruleName null | string
$all boolean
    public function removeRule($roleName = null, $resourceName = null, $ruleName = null, $all = true)
    {
        if (is_null($roleName) && is_null($resourceName) && is_null($ruleName)) {
            $this->removeAllRules();
            return;
        }
        foreach ($this->rules as $ruleIndex => $rule) {
            if ($ruleName === null || $ruleName !== null && $ruleName === $rule->getName()) {
                if ($roleName === null || $roleName !== null && $rule->getRole() && $rule->getRole()->getName() === $roleName) {
                    if ($resourceName === null || $resourceName !== null && $rule->getResource() && $rule->getResource()->getName() === $resourceName) {
                        unset($this->rules[$ruleIndex]);
                        if (!$all) {
                            return;
                        }
                    }
                }
            }
        }
    }