You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

142 lines
3.1 KiB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Admin\CommonController;
  4. use DB;
  5. class UserRoleController extends CommonController
  6. {
  7. public function __construct()
  8. {
  9. parent::__construct();
  10. }
  11. public function index()
  12. {
  13. $posts = parent::pageList('admin_user_role', '', ['listorder','desc']);
  14. $data['posts'] = $posts;
  15. return view('admin.userrole.index', $data);
  16. }
  17. public function add()
  18. {
  19. return view('admin.userrole.add');
  20. }
  21. public function doadd()
  22. {
  23. unset($_POST["_token"]);
  24. if(DB::table('admin_user_role')->insert($_POST))
  25. {
  26. success_jump('添加成功!', route('admin_userrole'));
  27. }
  28. else
  29. {
  30. error_jump('添加失败!请修改后重新添加');
  31. }
  32. }
  33. public function edit()
  34. {
  35. if(!empty($_GET["id"])){$id = $_GET["id"];}else{$id="";}
  36. if(preg_match('/[0-9]*/',$id)){}else{exit;}
  37. $data['id'] = $id;
  38. $data['post'] = object_to_array(DB::table('admin_user_role')->where('id', $id)->first(), 1);
  39. return view('admin.userrole.edit', $data);
  40. }
  41. public function doedit()
  42. {
  43. if(!empty($_POST["id"])){$id = $_POST["id"];unset($_POST["id"]);}else {$id="";exit;}
  44. unset($_POST["_token"]);
  45. if(DB::table('admin_user_role')->where('id', $id)->update($_POST))
  46. {
  47. success_jump('修改成功!', route('admin_userrole'));
  48. }
  49. else
  50. {
  51. error_jump('修改失败!');
  52. }
  53. }
  54. public function del()
  55. {
  56. if(!empty($_GET["id"])){$id = $_GET["id"];}else{error_jump('删除失败!请重新提交');}
  57. if(DB::table('admin_user_role')->whereIn("id", explode(',', $id))->delete())
  58. {
  59. success_jump('删除成功');
  60. }
  61. else
  62. {
  63. error_jump('删除失败!请重新提交');
  64. }
  65. }
  66. //角色权限设置视图
  67. public function permissions()
  68. {
  69. if(!empty($_GET["id"])){$data['role_id'] = $_GET["id"];}else{error_jump('您访问的页面不存在或已被删除!');}
  70. $menu = [];
  71. $access = DB::table('access')->where('role_id', $data['role_id'])->get();
  72. if($access)
  73. {
  74. foreach($access as $k=>$v)
  75. {
  76. $menu[] = $v->menu_id;
  77. }
  78. }
  79. $data['menus'] = category_tree(get_category('menu',0));
  80. foreach($data['menus'] as $k=>$v)
  81. {
  82. $data['menus'][$k]['is_access'] = 0;
  83. if(!empty($menu) && in_array($v['id'], $menu))
  84. {
  85. $data['menus'][$k]['is_access'] = 1;
  86. }
  87. }
  88. return view('admin.userrole.permissions', $data);
  89. }
  90. //角色权限设置
  91. public function dopermissions()
  92. {
  93. $menus = [];
  94. if($_POST['menuid'] && $_POST['role_id'])
  95. {
  96. foreach($_POST['menuid'] as $row)
  97. {
  98. $menus[] = [
  99. 'role_id' => $_POST['role_id'],
  100. 'menu_id' => $row
  101. ];
  102. }
  103. }
  104. else
  105. {
  106. error_jump('操作失败!');
  107. }
  108. DB::beginTransaction();
  109. DB::table('access')->where('role_id', '=', $_POST['role_id'])->delete();
  110. if(DB::table('access')->insert($menus))
  111. {
  112. DB::commit();
  113. success_jump('操作成功!');
  114. }
  115. else
  116. {
  117. DB::rollBack();
  118. error_jump('操作失败!');
  119. }
  120. }
  121. }