Permission.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. /**
  3. * [WeEngine System] Copyright (c) 2014 WE7.CC
  4. * WeEngine is NOT a free software, it under the license terms, visited http://www.we7.cc/ for more details.
  5. */
  6. namespace We7\Table\Users;
  7. class Permission extends \We7Table {
  8. protected $tableName = 'users_permission';
  9. protected $primaryKey = 'id';
  10. protected $field = array(
  11. 'uniacid',
  12. 'uid',
  13. 'type',
  14. 'permission',
  15. 'url',
  16. );
  17. protected $default = array(
  18. 'uniacid' => '',
  19. 'uid' => '',
  20. 'type' => '',
  21. 'permission' => '',
  22. 'url' => '',
  23. );
  24. public $notModuleTypes = array(
  25. PERMISSION_ACCOUNT,
  26. PERMISSION_WXAPP,
  27. PERMISSION_WEBAPP,
  28. PERMISSION_PHONEAPP,
  29. PERMISSION_ALIAPP,
  30. PERMISSION_BAIDUAPP,
  31. PERMISSION_TOUTIAOAPP,
  32. PERMISSION_SYSTEM,
  33. PERMISSION_MODULES
  34. );
  35. public function getUserPermissionByType($uid, $uniacid, $type = '') {
  36. $this->query->where('uid', $uid)->where('uniacid', $uniacid);
  37. if (!empty($type)) {
  38. $this->query->where('type', $type);
  39. }
  40. $result = $this->query->get();
  41. if (!empty($result['permission'])) {
  42. $result['permission'] = explode('|', $result['permission']);
  43. }
  44. return $result;
  45. }
  46. public function getAllUserPermission($uid, $uniacid) {
  47. return $this->query->where('uid', $uid)
  48. ->where('uniacid', $uniacid)->getall('type');
  49. }
  50. public function getAllUserModulePermission($uid, $uniacid = 0) {
  51. if (!empty($uniacid)) {
  52. $this->query->where('uniacid', $uniacid);
  53. }
  54. return $this->query->where('uid', $uid)
  55. ->where('type !=', array(PERMISSION_ACCOUNT, PERMISSION_WXAPP, PERMISSION_WEBAPP, PERMISSION_PHONEAPP, PERMISSION_ALIAPP, PERMISSION_BAIDUAPP, PERMISSION_TOUTIAOAPP, PERMISSION_SYSTEM))->getall('type');
  56. }
  57. public function getClerkPermission($module) {
  58. global $_W;
  59. return $this->query->from('users_permission', 'p')->leftjoin('uni_account_users', 'u')->on(array('u.uid' => 'p.uid', 'u.uniacid' => 'p.uniacid'))->where('u.role', 'clerk')->where('p.type', $module)->where('u.uniacid', $_W['uniacid'])->getall('uid');
  60. }
  61. public function getClerkPermissionList($uniacid = 0, $uid = 0, $username = '') {
  62. $this->query->from('users_permission', 'p')
  63. ->select('p.*')
  64. ->leftjoin('uni_account_users', 'u')
  65. ->on(array('u.uid' => 'p.uid', 'u.uniacid' => 'p.uniacid'))
  66. ->where('u.role', 'clerk');
  67. if (!empty($uniacid)) {
  68. $this->query->where('u.uniacid', $uniacid);
  69. }
  70. if (!empty($uid)) {
  71. $this->query->where('u.uid', $uid);
  72. }
  73. if (!empty($username)) {
  74. $this->query->leftjoin('users', 's')
  75. ->on(array('s.uid' => 'p.uid'))
  76. ->where('s.username like', "%$username%");
  77. }
  78. if (empty($module)) {
  79. $this->query->where('p.type !=', $this->notModuleTypes);
  80. } else {
  81. $this->query->where('p.type', $module);
  82. }
  83. return $this->query->getall();
  84. }
  85. public function searchWithUniAccountUsers() {
  86. return $this->query->from($this->tableName, 'p')
  87. ->leftjoin('uni_account_users', 'u')
  88. ->on(array(
  89. 'p.uid' => 'u.uid',
  90. 'p.uniacid' => 'u.uniacid'
  91. ));
  92. }
  93. }