open-orchestra/open-orchestra-cms-bundle

View on GitHub
Backoffice/BusinessRules/Strategies/AbstractBusinessRulesStrategy.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace OpenOrchestra\Backoffice\BusinessRules\Strategies;

/**
 * class AbstractBusinessRulesStrategy
 */
abstract class AbstractBusinessRulesStrategy implements BusinessRulesStrategyInterface
{
    /**
     * @param string $action
     *
     * @return boolean
     */
    public function support($action)
    {
        return array_key_exists($action, $this->getActions());
    }

    /**
     * @param string $action
     * @param mixed  $entity
     *
     * @return boolean
     */
    public function isGranted($action, $entity, array $parameters)
    {
        $method = $this->getActions()[$action];

        return $this->$method($entity, $parameters);
    }

    /**
     * @return string
     */
    abstract public function getType();

    /**
     * @return array
     */
    abstract public function getActions();
}