Browse Source

Better executeRule implementation.

tags/2.0.0-beta
Qiang Xue 11 years ago
parent
commit
f46b51eaf4
  1. 18
      framework/rbac/Manager.php

18
framework/rbac/Manager.php

@ -9,6 +9,7 @@ namespace yii\rbac;
use Yii;
use yii\base\Component;
use yii\base\InvalidConfigException;
use yii\base\InvalidParamException;
/**
@ -145,16 +146,21 @@ abstract class Manager extends Component
* @param string $ruleName name of the rule to be executed.
* @param array $params parameters passed to [[Manager::checkAccess()]].
* @param mixed $data additional data associated with the authorization item or assignment.
* @return boolean whether the rule execution returns true.
* If the rule is empty, it will still return true.
* @return boolean whether the rule execution returns true. If `$ruleName` is null, true will be returned.
* @throws InvalidConfigException if `$ruleName` does not correspond to a valid rule.
*/
public function executeRule($ruleName, $params, $data)
{
$rule = $this->getRule($ruleName);
if ($rule) {
return $rule->execute($params, $data);
if ($ruleName !== null) {
$rule = $this->getRule($ruleName);
if ($rule instanceof Rule) {
return $rule->execute($params, $data);
} else {
throw new InvalidConfigException("Rule not found: $ruleName");
}
} else {
return true;
}
return true;
}
/**

Loading…
Cancel
Save