RbacValidator.php 806 B

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace common\modules\rbac\validators;
  3. use yii\validators\Validator;
  4. /**
  5. * @author Dmitry Erofeev <dmeroff@gmail.com>
  6. */
  7. class RbacValidator extends Validator
  8. {
  9. /** @var \rbac\components\DbManager */
  10. protected $manager;
  11. /** @inheritdoc */
  12. public function init()
  13. {
  14. parent::init();
  15. $this->manager = \Yii::$app->authManager;
  16. }
  17. /** @inheritdoc */
  18. protected function validateValue($value)
  19. {
  20. if (!is_array($value)) {
  21. return [\Yii::t('rbac', 'Invalid value'), []];
  22. }
  23. foreach ($value as $val) {
  24. if ($this->manager->getItem($val) == null) {
  25. return [\Yii::t('rbac', 'There is neither role nor permission with name "{0}"', [$val]), []];
  26. }
  27. }
  28. }
  29. }