PartyUserController.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Requests\PartyUserCreateRequest;
  4. use App\Http\Requests\PartyUserUpdateRequest;
  5. use App\Models\AppUser;
  6. use App\Models\PartyUser;
  7. use Illuminate\Http\Request;
  8. use App\Http\Controllers\Controller;
  9. use App\Models\Role;
  10. class PartyUserController extends Controller
  11. {
  12. /**
  13. * Display a listing of the resource.
  14. *
  15. * @return \Illuminate\Http\Response
  16. */
  17. public function index()
  18. {
  19. return view('admin.partyUser.index');
  20. }
  21. public function data(Request $request)
  22. {
  23. $model = new PartyUser();
  24. $res = $model
  25. ->select(['ag_party_user.*','ag_party.name as party_name'])
  26. ->leftJoin('ag_party', 'ag_party_user.party_id', '=', 'ag_party.id')
  27. ->paginate($request->get('limit', 30))
  28. ->toArray();
  29. ;
  30. $data = [
  31. 'code' => 0,
  32. 'msg' => '正在请求中...',
  33. 'count' => $res['total'],
  34. 'data' => $res['data']
  35. ];
  36. return response()->json($data);
  37. }
  38. /**
  39. * Show the form for creating a new resource.
  40. *
  41. * @return \Illuminate\Http\Response
  42. */
  43. public function create()
  44. {
  45. return view('admin.partyUser.create')->with(['partyUser'=>array()]);
  46. }
  47. /**
  48. * Store a newly created resource in storage.
  49. *
  50. * @param \Illuminate\Http\Request $request
  51. * @return \Illuminate\Http\Response
  52. */
  53. public function store(PartyUserCreateRequest $request)
  54. {
  55. $data = $request->all();
  56. if (PartyUser::create($data)){
  57. return redirect()->to(route('admin.partyUser'))->with(['status'=>'添加成功']);
  58. }
  59. return redirect()->to(route('admin.partyUser'))->withErrors('系统错误');
  60. }
  61. /**
  62. * Display the specified resource.
  63. *
  64. * @param int $id
  65. * @return \Illuminate\Http\Response
  66. */
  67. public function show($id)
  68. {
  69. //
  70. }
  71. /**
  72. * Show the form for editing the specified resource.
  73. *
  74. * @param int $id
  75. * @return \Illuminate\Http\Response
  76. */
  77. public function edit($id)
  78. {
  79. $partyUser = PartyUser::where('id', $id)->first();
  80. return view('admin.partyUser.edit',compact('partyUser'));
  81. }
  82. /**
  83. * Update the specified resource in storage.
  84. *
  85. * @param \Illuminate\Http\Request $request
  86. * @param int $id
  87. * @return \Illuminate\Http\Response
  88. */
  89. public function update(PartyUserUpdateRequest $request, $id)
  90. {
  91. // $partyUser = PartyUser::findOrFail($id);
  92. $data = $request->all();
  93. if(empty($data['key'])){
  94. unset($data['key']);
  95. }
  96. if(empty($data['secret'])){
  97. unset($data['secret']);
  98. }
  99. $partyUser = PartyUser::findOrFail($id);
  100. if ($partyUser->update($data)){
  101. return redirect()->to(route('admin.partyUser'))->with(['status'=>'更新成功']);
  102. }
  103. return redirect()->to(route('admin.partyUser'))->withErrors('系统错误');
  104. }
  105. /**
  106. * Remove the specified resource from storage.
  107. *
  108. * @param int $id
  109. * @return \Illuminate\Http\Response
  110. */
  111. public function destroy(Request $request)
  112. {
  113. $ids = $request->get('ids');
  114. if (empty($ids)){
  115. return response()->json(['code'=>1,'msg'=>'请选择删除项']);
  116. }
  117. if (PartyUser::destroy($ids)){
  118. return response()->json(['code'=>0,'msg'=>'删除成功']);
  119. }
  120. return response()->json(['code'=>1,'msg'=>'删除失败']);
  121. }
  122. /**
  123. * 分配角色
  124. */
  125. public function role(Request $request,$id)
  126. {
  127. $partyUser = PartyUser::findOrFail($id);
  128. $roles = Role::get();
  129. $hasRoles = $partyUser->roles();
  130. foreach ($roles as $role){
  131. $role->own = $partyUser->hasRole($role) ? true : false;
  132. }
  133. return view('admin.partyUser.role',compact('roles','partyUser'));
  134. }
  135. /**
  136. * 更新分配角色
  137. */
  138. public function assignRole(Request $request,$id)
  139. {
  140. $partyUser = PartyUser::findOrFail($id);
  141. $roles = $request->get('roles',[]);
  142. if ($partyUser->syncRoles($roles)){
  143. return redirect()->to(route('admin.partyUser'))->with(['status'=>'更新用户角色成功']);
  144. }
  145. return redirect()->to(route('admin.partyUser'))->withErrors('系统错误');
  146. }
  147. /**
  148. * 分配权限
  149. */
  150. public function permission(Request $request,$id)
  151. {
  152. $partyUser = PartyUser::findOrFail($id);
  153. $permissions = $this->tree();
  154. foreach ($permissions as $key1 => $item1){
  155. $permissions[$key1]['own'] = $partyUser->hasDirectPermission($item1['id']) ? 'checked' : false ;
  156. if (isset($item1['_child'])){
  157. foreach ($item1['_child'] as $key2 => $item2){
  158. $permissions[$key1]['_child'][$key2]['own'] = $partyUser->hasDirectPermission($item2['id']) ? 'checked' : false ;
  159. if (isset($item2['_child'])){
  160. foreach ($item2['_child'] as $key3 => $item3){
  161. $permissions[$key1]['_child'][$key2]['_child'][$key3]['own'] = $partyUser->hasDirectPermission($item3['id']) ? 'checked' : false ;
  162. }
  163. }
  164. }
  165. }
  166. }
  167. return view('admin.partyUser.permission',compact('partyUser','permissions'));
  168. }
  169. /**
  170. * 存储权限
  171. */
  172. public function assignPermission(Request $request,$id)
  173. {
  174. $partyUser = PartyUser::findOrFail($id);
  175. $permissions = $request->get('permissions');
  176. if (empty($permissions)){
  177. $partyUser->permissions()->detach();
  178. return redirect()->to(route('admin.partyUser'))->with(['status'=>'已更新用户直接权限']);
  179. }
  180. $partyUser->syncPermissions($permissions);
  181. return redirect()->to(route('admin.partyUser'))->with(['status'=>'已更新用户直接权限']);
  182. }
  183. }