Skip to content

Commit

Permalink
Add class constants for access decision strategies.
Browse files Browse the repository at this point in the history
  • Loading branch information
Christian Schmidt committed Mar 5, 2014
1 parent f15ea50 commit 5d6ef00
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@
*/
class AccessDecisionManager implements AccessDecisionManagerInterface
{
const STRATEGY_AFFIRMATIVE = 'affirmative';
const STRATEGY_CONSENSUS = 'consensus';
const STRATEGY_UNANIMOUS = 'unanimous';

private $voters;
private $strategy;
private $allowIfAllAbstainDecisions;
Expand All @@ -37,7 +41,7 @@ class AccessDecisionManager implements AccessDecisionManagerInterface
*
* @throws \InvalidArgumentException
*/
public function __construct(array $voters, $strategy = 'affirmative', $allowIfAllAbstainDecisions = false, $allowIfEqualGrantedDeniedDecisions = true)
public function __construct(array $voters, $strategy = self::STRATEGY_AFFIRMATIVE, $allowIfAllAbstainDecisions = false, $allowIfEqualGrantedDeniedDecisions = true)
{
if (!$voters) {
throw new \InvalidArgumentException('You must at least add one voter.');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,34 +77,34 @@ public function getStrategyTests()
{
return array(
// affirmative
array('affirmative', $this->getVoters(1, 0, 0), false, true, true),
array('affirmative', $this->getVoters(1, 2, 0), false, true, true),
array('affirmative', $this->getVoters(0, 1, 0), false, true, false),
array('affirmative', $this->getVoters(0, 0, 1), false, true, false),
array('affirmative', $this->getVoters(0, 0, 1), true, true, true),
array(AccessDecisionManager::STRATEGY_AFFIRMATIVE, $this->getVoters(1, 0, 0), false, true, true),
array(AccessDecisionManager::STRATEGY_AFFIRMATIVE, $this->getVoters(1, 2, 0), false, true, true),
array(AccessDecisionManager::STRATEGY_AFFIRMATIVE, $this->getVoters(0, 1, 0), false, true, false),
array(AccessDecisionManager::STRATEGY_AFFIRMATIVE, $this->getVoters(0, 0, 1), false, true, false),
array(AccessDecisionManager::STRATEGY_AFFIRMATIVE, $this->getVoters(0, 0, 1), true, true, true),

// consensus
array('consensus', $this->getVoters(1, 0, 0), false, true, true),
array('consensus', $this->getVoters(1, 2, 0), false, true, false),
array('consensus', $this->getVoters(2, 1, 0), false, true, true),
array(AccessDecisionManager::STRATEGY_CONSENSUS, $this->getVoters(1, 0, 0), false, true, true),
array(AccessDecisionManager::STRATEGY_CONSENSUS, $this->getVoters(1, 2, 0), false, true, false),
array(AccessDecisionManager::STRATEGY_CONSENSUS, $this->getVoters(2, 1, 0), false, true, true),

array('consensus', $this->getVoters(0, 0, 1), false, true, false),
array(AccessDecisionManager::STRATEGY_CONSENSUS, $this->getVoters(0, 0, 1), false, true, false),

array('consensus', $this->getVoters(0, 0, 1), true, true, true),
array(AccessDecisionManager::STRATEGY_CONSENSUS, $this->getVoters(0, 0, 1), true, true, true),

array('consensus', $this->getVoters(2, 2, 0), false, true, true),
array('consensus', $this->getVoters(2, 2, 1), false, true, true),
array(AccessDecisionManager::STRATEGY_CONSENSUS, $this->getVoters(2, 2, 0), false, true, true),
array(AccessDecisionManager::STRATEGY_CONSENSUS, $this->getVoters(2, 2, 1), false, true, true),

array('consensus', $this->getVoters(2, 2, 0), false, false, false),
array('consensus', $this->getVoters(2, 2, 1), false, false, false),
array(AccessDecisionManager::STRATEGY_CONSENSUS, $this->getVoters(2, 2, 0), false, false, false),
array(AccessDecisionManager::STRATEGY_CONSENSUS, $this->getVoters(2, 2, 1), false, false, false),

// unanimous
array('unanimous', $this->getVoters(1, 0, 0), false, true, true),
array('unanimous', $this->getVoters(1, 0, 1), false, true, true),
array('unanimous', $this->getVoters(1, 1, 0), false, true, false),
array(AccessDecisionManager::STRATEGY_UNANIMOUS, $this->getVoters(1, 0, 0), false, true, true),
array(AccessDecisionManager::STRATEGY_UNANIMOUS, $this->getVoters(1, 0, 1), false, true, true),
array(AccessDecisionManager::STRATEGY_UNANIMOUS, $this->getVoters(1, 1, 0), false, true, false),

array('unanimous', $this->getVoters(0, 0, 2), false, true, false),
array('unanimous', $this->getVoters(0, 0, 2), true, true, true),
array(AccessDecisionManager::STRATEGY_UNANIMOUS, $this->getVoters(0, 0, 2), false, true, false),
array(AccessDecisionManager::STRATEGY_UNANIMOUS, $this->getVoters(0, 0, 2), true, true, true),
);
}

Expand Down

0 comments on commit 5d6ef00

Please sign in to comment.