middleware(function ($request, $next) { $this->user = Auth::guard('web')->user(); return $next($request); }); } /** * Display a listing of the resource. * * @return Response */ public function index(UsersDataTable $dataTable) { if (is_null($this->user) || !$this->user->can('user.read')) { abort(403, 'Sorry !! You are Unauthorized to view any users !'); } addVendor('chained-select'); $roles = Role::all(); return $dataTable->render('usermanager::users.users.index', compact('roles')); } /** * Show the form for creating a new resource. * * @return Response */ public function create() { if (is_null($this->user) || !$this->user->can('user.create')) { abort(403, 'Sorry !! You are Unauthorized to create any users !'); } $roles = Role::all(); return view('usermanager::users.create', compact('roles')); } /** * Store a newly created resource in storage. * * @param Request $request * * @return Response */ public function store(Request $request) { if (is_null($this->user) || !$this->user->can('user.create')) { abort(403, 'Sorry !! You are Unauthorized to create any users !'); } // Validation Data $request->password = 'bagbag'; $validated = $request->validate([ 'name' => 'required|max:50', 'email' => 'required|max:100|email|unique:users' ]); if ($validated) { try { // Create New User $user = new User(); $user->name = $request->name; $user->email = $request->email; $user->password = Hash::make($request->password); $user->save(); if ($request->roles) { $user->assignRole($request->roles); } echo json_encode([ 'status' => 'success', 'message' => 'User Created Successfully' ]); } catch (Exception $e) { echo json_encode([ 'status' => 'error', 'message' => $e->getMessage() ]); } } return false; } /** * Display the specified resource. * * @param int $id * * @return Response */ public function show($id) { if (is_null($this->user) || !$this->user->can('user.read')) { abort(403, 'Sorry !! You are Unauthorized to view any users !'); } } /** * Show the form for editing the specified resource. * * @param int $id * * @return Response */ public function edit($id) { if (is_null($this->user) || !$this->user->can('user.update')) { abort(403, 'Sorry !! You are Unauthorized to update any users !'); } $user = User::find($id); $roles = $user->roles; echo json_encode([ 'status' => 'success', 'data' => $user, 'roles' => $roles ]); } /** * Update the specified resource in storage. * * @param Request $request * @param int $id * * @return Response */ public function update(Request $request, $id) { if (is_null($this->user) || !$this->user->can('user.update')) { abort(403, 'Sorry !! You are Unauthorized to update any users !'); } // Create New User $user = User::find($id); // Validation Data if ($request->password !== '') { $validated = $request->validate([ 'name' => 'required|max:50', 'email' => 'required|max:100|email|unique:users,email,' . $id, 'password' => 'nullable|min:6|confirmed' ]); } else { $validated = $request->validate([ 'name' => 'required|max:50', 'email' => 'required|max:100|email|unique:users,email,' . $id ]); } if ($validated) { try { $user->name = $request->name; $user->email = $request->email; if ($request->password) { $user->password = Hash::make($request->password); } $user->save(); $user->roles()->detach(); if ($request->roles) { $user->assignRole($request->roles); } echo json_encode([ 'status' => 'success', 'message' => 'User Updated Successfully' ]); } catch (Exception $e) { echo json_encode([ 'status' => 'error', 'message' => $e->getMessage() ]); } } return false; } /** * Remove the specified resource from storage. * * @param int $id * * @return Response */ public function destroy(User $user) { if (is_null($this->user) || !$this->user->can('user.delete')) { abort(403, 'Sorry !! You are Unauthorized to delete any users !'); } $user->delete(); echo json_encode([ 'status' => 'success', 'message' => 'User Deleted Successfully' ]); } }