PowerModel.class.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. namespace Admin\Model;
  3. use Think\Model;
  4. /**
  5. * 权限模型
  6. * @author Devil
  7. * @blog http://gong.gg/
  8. * @version 0.0.1
  9. * @datetime 2016-12-01T21:51:08+0800
  10. */
  11. class PowerModel extends CommonModel
  12. {
  13. // 数据自动校验
  14. protected $_validate = array(
  15. // 添加,编辑
  16. array('name', 'CheckName', '{%power_name_format}', 1, 'callback', 3),
  17. array('control', 'CheckControl', '{%power_control_format}', 1, 'callback', 3),
  18. array('action', 'CheckAction', '{%power_action_format}', 1, 'callback', 3),
  19. array('pid', 'CheckPid', '{%power_level_format}', 2, 'callback', 3),
  20. array('sort', 'CheckSort', '{%common_sort_error}', 1, 'function', 3),
  21. array('icon', 'CheckIcon', '{%power_icon_format}', 1, 'callback', 3),
  22. array('pid', 'CheckMyPid', '{%common_pid_eq_myid_format}', 1, 'callback', 2),
  23. // 删除
  24. array('id', 'CheckPowerIsExist', '{%power_no_exist_tips}', 1, 'callback', 5),
  25. array('id', 'CheckPowerIsItem', '{%power_exist_item_tips}', 1, 'callback', 5),
  26. );
  27. /**
  28. * [CheckIcon 图标class校验]
  29. * @author Devil
  30. * @blog http://gong.gg/
  31. * @version 0.0.1
  32. * @datetime 2016-12-13T19:29:30+0800
  33. */
  34. public function CheckIcon()
  35. {
  36. $len = Utf8Strlen(I('icon'));
  37. return ($len <= 60);
  38. }
  39. /**
  40. * [CheckName 权限名称校验]
  41. * @author Devil
  42. * @blog http://gong.gg/
  43. * @version 0.0.1
  44. * @datetime 2016-12-13T19:29:30+0800
  45. */
  46. public function CheckName()
  47. {
  48. $len = Utf8Strlen(I('name'));
  49. return ($len >= 2 && $len <= 16);
  50. }
  51. /**
  52. * [CheckAction 方法校验]
  53. * @author Devil
  54. * @blog http://gong.gg/
  55. * @version 0.0.1
  56. * @datetime 2016-12-13T15:12:32+0800
  57. */
  58. public function CheckAction()
  59. {
  60. return (preg_match('/'.L('common_regex_action').'/', I('action')) == 1) ? true : false;
  61. }
  62. /**
  63. * [CheckControl 控制器校验]
  64. * @author Devil
  65. * @blog http://gong.gg/
  66. * @version 0.0.1
  67. * @datetime 2016-12-13T15:12:32+0800
  68. */
  69. public function CheckControl()
  70. {
  71. return (preg_match('/'.L('common_regex_control').'/', I('control')) == 1) ? true : false;
  72. }
  73. /**
  74. * [CheckPid pid校验]
  75. * @author Devil
  76. * @blog http://gong.gg/
  77. * @version 0.0.1
  78. * @datetime 2016-12-13T19:32:40+0800
  79. */
  80. public function CheckPid()
  81. {
  82. $pid = intval(I('pid'));
  83. if($pid > 0)
  84. {
  85. $id = $this->db(0)->where(array('id'=>$pid))->getField('id');
  86. return !empty($id);
  87. }
  88. return true;
  89. }
  90. /**
  91. * [CheckMyPid pid是否是当前节点校验]
  92. * @author Devil
  93. * @blog http://gong.gg/
  94. * @version 0.0.1
  95. * @datetime 2016-12-13T19:32:40+0800
  96. */
  97. public function CheckMyPid()
  98. {
  99. return (I('id') != I('pid'));
  100. }
  101. /**
  102. * [CheckPowerIsExist 校验权限是否存在]
  103. * @author Devil
  104. * @blog http://gong.gg/
  105. * @version 0.0.1
  106. * @datetime 2016-12-10T14:09:40+0800
  107. */
  108. public function CheckPowerIsExist()
  109. {
  110. $id = $this->db(0)->where(array('id'=>I('id')))->getField('id');
  111. return !empty($id);
  112. }
  113. /**
  114. * [CheckPowerIsItem 校验权限是否存在子级]
  115. * @author Devil
  116. * @blog http://gong.gg/
  117. * @version 0.0.1
  118. * @datetime 2016-12-10T14:09:40+0800
  119. */
  120. public function CheckPowerIsItem()
  121. {
  122. $count = $this->db(0)->where(array('pid'=>I('id')))->count();
  123. return ($count <= 0);
  124. }
  125. }
  126. ?>