GroupModel.class.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace Admin\Model;
  3. use Common\Model\ModelModel;
  4. /**
  5. * 部门模型
  6. *
  7. */
  8. class GroupModel extends ModelModel
  9. {
  10. /**
  11. * 数据库表名
  12. *
  13. */
  14. protected $tableName = 'admin_group';
  15. /**
  16. * 自动验证规则
  17. *
  18. */
  19. protected $_validate = array(
  20. array('title', 'require', '部门名称不能为空', self::MUST_VALIDATE, 'regex', self::MODEL_BOTH),
  21. array('title', '1,32', '部门名称长度为1-32个字符', self::EXISTS_VALIDATE, 'length', self::MODEL_BOTH),
  22. array('title', '', '部门名称已经存在', self::VALUE_VALIDATE, 'unique', self::MODEL_BOTH),
  23. array('menu_auth', 'require', '权限不能为空', self::MUST_VALIDATE, 'regex', self::MODEL_BOTH),
  24. );
  25. /**
  26. * 自动完成规则
  27. *
  28. */
  29. protected $_auto = array(
  30. array('create_time', 'time', self::MODEL_INSERT, 'function'),
  31. array('update_time', 'time', self::MODEL_BOTH, 'function'),
  32. array('status', '1', self::MODEL_INSERT),
  33. );
  34. /**
  35. * 检查部门功能权限
  36. *
  37. */
  38. public function checkMenuAuth()
  39. {
  40. $current_menu = D('Admin/Module')->getCurrentMenu(); // 当前菜单
  41. $user_group = D('Admin/Access')->getFieldByUid(session('user_auth.uid'), 'group'); // 获得当前登录用户信息
  42. if ($user_group !== '1') {
  43. $group_info = $this->find($user_group);
  44. // 获得当前登录用户所属部门的权限列表
  45. $group_auth = json_decode($group_info['menu_auth'], true);
  46. if (in_array($current_menu['id'], $group_auth[MODULE_NAME])) {
  47. return true;
  48. }
  49. } else {
  50. return true; // 超级管理员无需验证
  51. }
  52. return false;
  53. }
  54. }