first(); abort_if(Gate::denies('view', $menu), 403, 'Unauthorized User'); if ($request->ajax()) { $data = User::select('r.name as role_name', 'd.name as dealer_name', 'users.id', 'users.name', 'users.email') ->leftJoin('dealers as d', 'd.id', '=', 'users.dealer_id') ->join('roles as r', 'r.id', '=', 'users.role_id'); return DataTables::of($data) ->addIndexColumn() ->addColumn('action', function($row) use ($menu) { $btn = ''; if(Auth::user()->can('delete', $menu)) { $btn .= ''; } if(Auth::user()->can('update', $menu)) { $btn .= ''; } return $btn; }) ->rawColumns(['action']) ->make(); } $dealers = Dealer::all(); $roles = Role::all(); return view('back.users', compact('dealers', 'roles')); } public function store(Request $request) { $menu = Menu::where('link', 'user.index')->first(); abort_if(Gate::denies('create', $menu), 403, 'Unauthorized User'); User::create([ "name" => $request->name, "dealer_id" => $request->dealer_id, "role_id" => $request->role, "email" => $request->email, "password" => bcrypt($request->password) ]); $response = [ "message" => "Data created succesfully", "status" => 200 ]; return response()->json($response); } public function edit($id) { $menu = Menu::where('link', 'user.index')->first(); abort_if(Gate::denies('view', $menu), 403, 'Unauthorized User'); $user = User::find($id); $response = [ "data" => $user, "message" => "get data successfully", "status" => 200 ]; return response()->json($response); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Models\Dealer $dealer * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $menu = Menu::where('link', 'user.index')->first(); abort_if(Gate::denies('update', $menu), 403, 'Unauthorized User'); User::find($id) ->update([ "name" => $request->name, "dealer_id" => $request->dealer_id, "role_id" => $request->role, "email" => $request->email, "password" => bcrypt($request->password) ]); $response = [ "status" => 200, "message" => "Data updated successfully" ]; return response()->json($response); } public function destroy($id) { $menu = Menu::where('link', 'user.index')->first(); abort_if(Gate::denies('delete', $menu), 403, 'Unauthorized User'); User::destroy($id); $response = [ "message" => "Data deleted successfully", "status" => 200 ]; return response()->json($response); } }