CompanyRule.php 940 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace common\modules\rbac\rules;
  3. use common\models\Company;
  4. use yii\rbac\Item;
  5. use yii\rbac\Rule;
  6. class CompanyRule extends Rule
  7. {
  8. const RULE_NAME = 'CompanyRule';
  9. const PERMISSION_NAME = 'company';
  10. /**
  11. * 公司权限规则判断
  12. * @param int|string $userId 用户 ID.
  13. * @param Item $item 该规则相关的角色或者权限
  14. * @param array $params 传给 ManagerInterface::checkAccess() 的参数
  15. * @return bool 代表该规则相关的角色或者权限是否被允许
  16. * @author nodelog
  17. */
  18. public function execute($userId, $item, $params)
  19. {
  20. //无公司信息参数
  21. if (!isset($params['company'])) {
  22. return false;
  23. }
  24. /* @var $company Company */
  25. $company = $params['company'];
  26. if ($company instanceof Company && $company->user_id == $userId) {
  27. return true;
  28. }
  29. return false;
  30. }
  31. }
  32. ?>