/** * Edit user * * @param Request $request * @param $id * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\View\View */ public function edit(Request $request, $id) { $user = User::getUserById($id); if (!empty($user)) { if ($request->isMethod('post')) { $rules = ['first_name' => 'required', 'last_name' => 'required', 'position' => 'required', 'type' => 'required', 'phone' => 'phone:AM', 'username' => 'required|unique:users,username,' . $id, 'email' => 'required|email|unique:users,email,' . $id, 'pass' => 'min:6|max:12', 'pass_confirmation' => 'min:6|max:12|same:pass', 'image' => 'mimes:jpeg,jpg,png']; Validator::make($request->all(), $rules)->validate(); $user->first_name = $request->input('first_name'); $user->last_name = $request->input('last_name'); $user->position = $request->input('position'); $user->role_id = $request->input('type'); if ($request->has('phone')) { $user->phone = $request->input('phone'); } if (!empty($request->file("image"))) { if (!empty($user->image)) { if (Storage::exists('uploads/' . $user->image)) { Storage::delete('uploads/' . $user->image); } } $generated_string = str_random(32); $file = $request->file("image")->store('uploads'); $new_file = $generated_string . '.' . $request->file("image")->getClientOriginalExtension(); Storage::move($file, 'uploads/' . $new_file); $img = Image::make($request->file('image')); $img->crop(200, 200); $img->save(storage_path('app/public/uploads/' . $new_file)); $user->image = $new_file; } $user->username = $request->input('username'); $user->email = $request->input('email'); $user->notification = $request->has('notification'); if ($request->has('pass')) { $user->password = Hash::make($request->input('pass')); } $user->approve = 1; $user->save(); $notifications = Notification::getNotificationBySenderId($user->id); foreach ($notifications as $notification) { $notification->delete(); } $notifications = Notification::getNotificationByReaderId($user->id); foreach ($notifications as $notification) { $notification->delete(); } if ($user->role_id == 1) { $notification = new Notification(); $notification->from = 1; $notification->to = $user->id; $notification->type = 1; $notification->save(); } return redirect()->route('approved_users'); } else { $user_roles = UserRole::getRoles(); return view('admin.user.edit', compact('user', 'user_roles')); } } else { return redirect()->back(); } }