示例#1
0
 /**
  * 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();
     }
 }