RoleAction.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace app\cxinv\model;
  3. class RoleAction extends Base
  4. {
  5. //设置字段信息
  6. protected $schema = [
  7. 'id' =>'bigint',//
  8. 'role_id' =>'bigint',//
  9. 'action_data' =>'text',//
  10. 'action_conllect' =>'text',//
  11. 'private_data' =>'text',//
  12. 'status' =>'int',//
  13. 'addtime' =>'datetime',//
  14. 'updatetime' =>'datetime',//
  15. ];
  16. protected $updateTime='updatetime';
  17. protected $createTime='addtime';
  18. public function GetActionConllectAttr($v){
  19. return json_decode($v,true);
  20. }
  21. public function SetActionConllectAttr($v){
  22. return json_encode($v,JSON_UNESCAPED_UNICODE);
  23. }
  24. public function GetActionDataAttr($v){
  25. return json_decode($v,true);
  26. }
  27. public function SetActionDataAttr($v){
  28. return json_encode($v,JSON_UNESCAPED_UNICODE);
  29. }
  30. public function GetPrivateDataAttr($v){
  31. return json_decode($v,true);
  32. }
  33. public function SetPrivateDataAttr($v){
  34. return json_encode($v,JSON_UNESCAPED_UNICODE);
  35. }
  36. public static function checkRole($roleid,$actionid){
  37. $info = self::where([['role_id',"in",$roleid],["status","=",1]])->findOrEmpty();
  38. if ($info->isEmpty()) return false;
  39. $provate_data = $info->private_data;
  40. if(is_array($actionid))return empty(array_intersect($actionid,$provate_data))==false;
  41. if(is_string($actionid)||is_int($actionid)) return in_array($actionid,$provate_data);
  42. }
  43. }