public function evaluate(
        APILimitationValue $value,
        APIUserReference $currentUser,
        ValueObject $object,
        array $targets = null
    ): ?bool {
        if (null == $targets) {
            $targets = [];
        }

        // the main focus here is an intent to update to a new Version
        foreach ($targets as $target) {
            if (!$target instanceof Target\Version) {
                continue;
            }

            $accessVote = $this->evaluateVersionTarget($target, $value);

            // continue evaluation of targets if there was no explicit grant/deny
            if ($accessVote === self::ACCESS_ABSTAIN) {
                continue;
            }

            return $accessVote;
        }

        // in other cases we need to evaluate object
        return $this->evaluateObject($object, $value);
    }
public function evaluate(
        APILimitationValue $value,
        APIUserReference $currentUser,
        ValueObject $object,
        array $targets = null
    ): ?bool {
        if (null == $targets) {
            $targets = [];
        }

        // the main focus here is an intent to update to a new Version
        foreach ($targets as $target) {
            if (!$target instanceof Target\Version) {
                continue;
            }

            $accessVote = $this->evaluateVersionTarget($target, $value);

            // continue evaluation of targets if there was no explicit grant/deny
            if ($accessVote === self::ACCESS_ABSTAIN) {
                continue;
            }

            return $accessVote;
        }

        // in other cases we need to evaluate object
        return $this->evaluateObject($object, $value);
    }
public function evaluate ( APILimitationValue $ value , APIUserReference $ currentUser , ValueObject $ object , array $ targets = null ) : ? bool { if ( null == $ targets ) { $ targets = [ ] ; } // the main focus here is an intent to update to a new Version foreach ( $ targets as $ target ) { if ( ! $ target instanceof Target \ Version ) { continue ; } $ accessVote = $ this -> evaluateVersionTarget ( $ target , $ value ) ; // continue evaluation of targets if there was no explicit grant/deny if ( $ accessVote === self :: ACCESS_ABSTAIN ) { continue ; } return $ accessVote ; } // in other cases we need to evaluate object return $ this -> evaluateObject ( $ object , $ value ) ; }
Evaluate permission against content & target.

{@inheritdoc}
Evaluate permission against content & target .