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);
}
}