Permission.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace app\admin\attr;
  3. use Attribute;
  4. #[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_METHOD)]
  5. class Permission
  6. {
  7. /**
  8. * 权限值
  9. */
  10. public $value;
  11. /**
  12. * 仅对方法生效!是否忽略权限要求
  13. */
  14. public $ignore;
  15. /**
  16. * 继承controller的权限, 例如controller设置了权限值'admin', 方法设置了权限值'create', 那么实际权限值为'admin.create'
  17. * 如果在controller上设为true,那么当方法没有设置该注解时,而且useMethodName设置为了true,会自动使用方法名作为继承值
  18. * 如果在controller上设为false,只使用控制器的权限值
  19. */
  20. public $inherit;
  21. /**
  22. * 仅对controller生效!
  23. * true: 权限值为空时使用方法名作为权限值
  24. * false: 权限值为空时,使用控制器名小写作为权限值
  25. * @see \InvalidArgumentException
  26. */
  27. public $useMethodName;
  28. /**
  29. * __construct
  30. *
  31. * @param string $value 权限值
  32. * @param bool $ignore 仅对方法生效!是否忽略权限要求
  33. * @param bool $name 继承controller的权限, 例如controller设置了权限值'admin', 方法设置了权限值'create', 那么实际权限值为'admin.create'
  34. * @param bool $useMethodName 仅对controller生效!true: 权限值为空时使用方法名作为权限值; false: 权限值为空时,使用控制器名小写作为权限值
  35. * @see \InvalidArgumentException
  36. */
  37. public function __construct($value = '', $ignore = false, $inherit = true, $useMethodName = true)
  38. {
  39. $this->value = $value;
  40. $this->ignore = $ignore;
  41. $this->inherit = $inherit;
  42. $this->useMethodName = $useMethodName;
  43. }
  44. }