SysController.class.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. <?php
  2. namespace Admin\Controller;
  3. use Think\Controller;
  4. use Common\Controller\AuthController;
  5. use Think\Auth;
  6. class SysController extends AuthController
  7. {
  8. /************************************管理员模块****************************************/
  9. public function admin_list()
  10. {
  11. $admin_mod = new \Common\Model\AdminModel();
  12. $page = $this->myGet('p', 0);
  13. $field = '*';
  14. $page_size = 20;
  15. $val = I('val');
  16. $auth = new Auth();
  17. if ($val) {
  18. $where['admin_username'] = array('like', "%" . $val . "%");
  19. }
  20. $where['admin_type'] = 1;
  21. $admin_list = $admin_mod->x_get_list($where, $page, $page_size, $field, 'admin_id asc');
  22. $count = $admin_mod->x_count($where);
  23. $pager = $admin_mod->x_show($count, $page_size);
  24. foreach ($admin_list as $k => $v) {
  25. $group = $auth->getGroups($v['admin_id']);
  26. $admin_list[$k]['group'] = $group[0]['title'];
  27. }
  28. $this->assign('pager', $pager);
  29. $this->assign('admin_list', $admin_list);
  30. $this->display();
  31. }
  32. public function admin_list_runedit()
  33. {
  34. if (IS_POST) {
  35. $admin = M('admin');
  36. $admin_access = M('auth_group_access');
  37. $admin_pwd = I('admin_pwd') ? I('admin_pwd') : '';
  38. //随机盐
  39. $salt = rand_str(10);
  40. $sldata = array(
  41. 'admin_username' => I('post.admin_username'),
  42. 'admin_email' => '',
  43. 'admin_tel' => I('post.admin_tel'),
  44. 'admin_open' => 1,
  45. 'admin_realname' => I('post.admin_realname'),
  46. 'admin_ip' => get_client_ip(),
  47. 'admin_addtime' => time(),
  48. );
  49. if ($admin_pwd) {
  50. $sldata['admin_pwd'] = md5($admin_pwd . $salt);
  51. $sldata['admin_salt'] = $salt;
  52. }
  53. $admin_id = I('post.admin_id') ? intval(I('post.admin_id')) : false;
  54. if (!$admin_id) {
  55. $this->error('非法请求');
  56. }
  57. $result = $admin->where('admin_id=' . $admin_id)->save($sldata);
  58. $accdata = array(
  59. 'uid' => $admin_id,
  60. 'group_id' => I('post.group_id'),
  61. );
  62. $admin_access->where('uid=' . $admin_id)->save($accdata);
  63. $this->ajaxReturn(1);
  64. } else {
  65. $admin_mod = M('admin');
  66. $admin_access_mod = M('auth_group_access');
  67. $admin_id = I('admin_id');
  68. $admin_data = $admin_mod->where('admin_id=' . $admin_id)->find();
  69. $group_id = $admin_access_mod->where('uid=' . $admin_id)->getfield('group_id');
  70. $admin_data['group_id'] = $group_id;
  71. $auth_group = M('auth_group')->select();
  72. $this->assign('auth_group', $auth_group);
  73. $this->assign('admin_data', $admin_data);
  74. $this->display('admin_list_edit');
  75. }
  76. }
  77. public function admin_list_runadd()
  78. {
  79. if (IS_POST) {
  80. $admin = M('admin');
  81. $admin_access = M('auth_group_access');
  82. $admin_pwd = I('admin_pwd') ? I('admin_pwd') : '123456';
  83. //随机盐
  84. $salt = rand_str(10);
  85. $sldata = array(
  86. 'admin_username' => I('post.admin_username'),
  87. 'admin_pwd' => md5($admin_pwd . $salt),
  88. 'admin_salt' => $salt,
  89. 'admin_email' => '',
  90. 'admin_tel' => I('post.admin_tel'),
  91. 'admin_open' => 1,
  92. 'admin_realname' => I('post.admin_realname'),
  93. 'admin_ip' => get_client_ip(),
  94. 'admin_addtime' => time(),
  95. );
  96. $result = $admin->add($sldata);
  97. $accdata = array(
  98. 'uid' => $result,
  99. 'group_id' => I('post.group_id'),
  100. );
  101. $flag = $admin_access->where($accdata)->find();
  102. if (!$flag) {
  103. $admin_access->add($accdata);
  104. }
  105. $this->ajaxReturn(1);
  106. } else {
  107. $auth_group = M('auth_group')->select();
  108. $this->assign('auth_group', $auth_group);
  109. $this->display('admin_list_add');
  110. }
  111. }
  112. public function admin_list_del()
  113. {
  114. $admin_id = I('admin_id');
  115. if ($admin_id == 1) {
  116. $this->error('管理员不可删除');
  117. }
  118. $res = M('admin')->where(array('admin_id' => I('admin_id')))->delete();
  119. $res = M('auth_group_access')->where(array('uid' => I('admin_id')))->delete();
  120. $this->ajaxReturn($res);
  121. }
  122. //用户组管理
  123. public function admin_group()
  124. {
  125. $auth_group = M('auth_group')->select();
  126. $this->assign('auth_group', $auth_group);
  127. $this->display();
  128. }
  129. //添加用户组
  130. public function admin_group_add()
  131. {
  132. if (!IS_POST) {
  133. $this->display();
  134. } else {
  135. $sldata = array(
  136. 'title' => I('title'),
  137. 'status' => I('status'),
  138. 'addtime' => time(),
  139. );
  140. $flag = M('auth_group')->add($sldata);
  141. $this->success($flag);
  142. }
  143. }
  144. //删除用户组
  145. public function admin_group_del()
  146. {
  147. $flag = M('auth_group')->where(array('id' => I('id')))->delete();
  148. $this->ajaxReturn($flag);
  149. }
  150. public function admin_group_edit()
  151. {
  152. if (!IS_POST) {
  153. $group = M('auth_group')->where(array('id' => I('id')))->find();
  154. $this->assign('group', $group);
  155. $this->display();
  156. } else {
  157. $sldata = array(
  158. 'id' => I('id'),
  159. 'title' => I('title'),
  160. 'status' => I('status'),
  161. );
  162. $flag = M('auth_group')->save($sldata);
  163. $this->ajaxReturn($flag);
  164. }
  165. }
  166. public function admin_group_state()
  167. {
  168. $id = I('x');
  169. $status = M('auth_group')->where(array('id' => $id))->getField('status');//判断当前状态情况
  170. if ($status == 1) {
  171. $statedata = array('status' => 0);
  172. $auth_group = M('auth_group')->where(array('id' => $id))->setField($statedata);
  173. $this->success('状态禁止', 1, 1);
  174. } else {
  175. $statedata = array('status' => 1);
  176. $auth_group = M('auth_group')->where(array('id' => $id))->setField($statedata);
  177. $this->success('状态开启', 1, 1);
  178. }
  179. }
  180. public function admin_rule()
  181. {
  182. $nav = new \Org\Util\Leftnav;
  183. $admin_rule = M('auth_rule')->order('sort')->select();
  184. $arr = $nav::rule($admin_rule);
  185. $this->assign('admin_rule', $arr);//权限列表
  186. $this->display('Sys/admin_rule');
  187. }
  188. public function admin_rule_add()
  189. {
  190. if (IS_AJAX) {
  191. $admin_rule = M('auth_rule');
  192. I('name') ? trim(I('name')) : $this->error('控/方必填');
  193. I('title') ? trim(I('name')) : $this->error('名称必填');
  194. $sldata = array(
  195. 'name' => I('name'),
  196. 'title' => I('title'),
  197. 'status' => I('status'),
  198. 'sort' => I('sort'),
  199. 'addtime' => time(),
  200. 'pid' => I('pid'),
  201. );
  202. $flag = $admin_rule->add($sldata);
  203. //$this->redirect('admin_rule');
  204. $this->success('权限添加成功');
  205. }
  206. }
  207. public function admin_rule_state()
  208. {
  209. $id = I('x');
  210. $statusone = M('auth_rule')->where(array('id' => $id))->getField('status');//判断当前状态情况
  211. if ($statusone == 1) {
  212. $statedata = array('status' => 0);
  213. $auth_group = M('auth_rule')->where(array('id' => $id))->setField($statedata);
  214. $this->success('状态禁止', 1, 1);
  215. } else {
  216. $statedata = array('status' => 1);
  217. $auth_group = M('auth_rule')->where(array('id' => $id))->setField($statedata);
  218. $this->success('状态开启', 1, 1);
  219. }
  220. }
  221. public function ruleorder()
  222. {
  223. if (!IS_AJAX) {
  224. $this->error('提交方式不正确', 0, 0);
  225. } else {
  226. $auth_rule = M('auth_rule');
  227. foreach ($_POST as $id => $sort) {
  228. $auth_rule->where(array('id' => $id))->setField('sort', $sort);
  229. }
  230. $this->success('排序更新成功', U('admin_rule'), 1);
  231. }
  232. }
  233. public function admin_rule_edit()
  234. {
  235. if (IS_AJAX) {
  236. $admin_rule = M('auth_rule');
  237. $sldata = array(
  238. 'id' => I('id'),
  239. 'name' => I('name'),
  240. 'title' => I('title'),
  241. 'status' => I('status'),
  242. 'is_show' => I('is_show'),
  243. 'pid' => I('pid'),
  244. );
  245. $admin_rule->save($sldata);
  246. $this->success('权限修改成功');
  247. } else {
  248. $nav = new \Org\Util\Leftnav;
  249. $admin_rule = M('auth_rule')->order('sort')->select();
  250. $arr = $nav::rule($admin_rule);
  251. $this->assign('admin_rule', $arr);//权限列表
  252. $admin_rule = M('auth_rule')->where(array('id' => I('id')))->find();
  253. $this->assign('rule', $admin_rule);
  254. $this->display('Sys/admin_rule_edit');
  255. }
  256. }
  257. public function admin_rule_runedit()
  258. {
  259. if (!IS_AJAX) {
  260. $this->error('提交方式不正确', 0, 0);
  261. } else {
  262. $admin_rule = M('auth_rule');
  263. $sldata = array(
  264. 'id' => I('id'),
  265. 'name' => I('name'),
  266. 'title' => I('title'),
  267. 'status' => I('status'),
  268. 'css' => I('css'),
  269. 'sort' => I('sort'),
  270. );
  271. $admin_rule->save($sldata);
  272. $this->success('权限修改成功', U('admin_rule'), 1);
  273. }
  274. }
  275. public function admin_rule_del()
  276. {
  277. $flag = M('auth_rule')->where(array('id' => I('id')))->delete();
  278. $this->ajaxReturn($flag);
  279. }
  280. //三重权限配置
  281. public function admin_group_access()
  282. {
  283. $admin_group = M('auth_group')->where(array('id' => I('id')))->find();
  284. $m = M('auth_rule');
  285. $data = $m->field('id,name,title')->where('pid=0')->select();
  286. foreach ($data as $k => $v) {
  287. $data[$k]['sub'] = $m->field('id,name,title')->where('pid=' . $v['id'])->select();
  288. foreach ($data[$k]['sub'] as $kk => $vv) {
  289. $data[$k]['sub'][$kk]['sub'] = $m->field('id,name,title')->where('pid=' . $vv['id'])->select();
  290. }
  291. }
  292. $this->assign('admin_group', $admin_group); // 顶级
  293. $this->assign('data', $data); // 顶级
  294. $this->display();
  295. }
  296. public function admin_group_runaccess()
  297. {
  298. $m = M('auth_group');
  299. $new_rules = I('new_rules');
  300. $imp_rules = implode(',', $new_rules) . ',';
  301. $sldata = array(
  302. 'id' => I('id'),
  303. 'rules' => $imp_rules,
  304. );
  305. if ($m->save($sldata)) {
  306. $this->success('权限配置成功', U('admin_group'));
  307. //$this->redirect('admin_group');
  308. } else {
  309. $this->error('权限配置失败');
  310. }
  311. }
  312. }