has('user')){ $query->where('name','like',$request->input('user')); } if($request->has('role')){ $role = $request->input('role'); $query->whereHas('roles',function($query) use ($role){ $query->where('name','like',$role); }); } $users = $query->orderBy('id','desc')->paginate($request->paginate ?? 50); $users->each(function (User $user){ $user['isSuperAdmin']=$user->isSuperAdmin(); }); return view('maintenance.user.index',['users'=>$users]); } /** * Show the form for creating a new resource. * * @return Response */ public function create() { if(!Gate::allows('用户-录入')){ return redirect(url('/')); } $roles=Role::all(); $logistics=app('LogisticService')->getSelection(["id","name"],"物流"); $userWorkgroups=UserWorkgroup::query()->get(); return view('maintenance.user.create',['rolesAll'=>$roles,'logistics'=>$logistics,'userWorkgroups'=>$userWorkgroups]); } protected function validatorCreate(array $data) { return Validator::make($data, [ 'name' => ['required', 'string', 'max:50', 'unique:users'], ]); } protected function validatorUpdate(array $data) { return Validator::make($data, [ 'name' => ['required', 'string', 'max:50'], ]); } /** * Show the form for editing the specified resource. * * @param User $user * @return Response */ public function edit(User $user) { if(!Gate::allows('用户-编辑')){ return redirect(url('/')); } $rolesAll=Role::all(); $roles=$user->roles()->get(); $logistics=app('LogisticService')->getSelection(["id","name"],"物流"); $logisticUser=$user->logistics()->get(); $userWorkgroups=UserWorkgroup::query()->get(); $userWorkgroup=$user->userWorkgroups()->first(); return view('maintenance.user.edit',compact('user','rolesAll','roles','logistics','logisticUser','userWorkgroups','userWorkgroup')); } /** * Update the specified resource in storage. * * @param Request $request * @param User $user * @return Response */ public function update(Request $request, User $user) { if(!Gate::allows('用户-编辑')){ return redirect(url('/')); } $this->validatorUpdate($request->all())->validate(); $user->fill($request->all()); $user->update(); $rolesIds=$request->input('role')??''; if($rolesIds){ $roleIdArr=explode(',',$rolesIds); $user->roles()->sync($roleIdArr); }else{ $user->roles()->sync([]); } $carrierIds=$request->input('logistic')??''; if($carrierIds){ $carrierIds=explode(',',$carrierIds); $user->logistics()->sync($carrierIds); }else{ $user->logistics()->sync([]); } $userWorkgroupId=$request->input('userWorkgroupID'); if($userWorkgroupId){ $user->userWorkgroups()->sync([$userWorkgroupId]); }else{ $user->userWorkgroups()->sync([]); } app('LogService')->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),Auth::user()['id']); return redirect('maintenance/user/')->with('successTip',"成功修改用户“{$user['name']}”!"); } /** * Remove the specified resource from storage. * * @param User $user * @return array|Response * @throws Exception */ public function destroy(User $user) { if(!Gate::allows('用户-删除')){ return redirect(url('/')); } app('LogService')->log(__METHOD__,__FUNCTION__,$user->toJson(),Auth::user()['id']); $re=$user->delete(); return ['success'=>$re]; } }