/**
  * Handles avatar change
  *
  * @param ChangeAvatarRequest $request
  *
  * @return \Illuminate\Http\RedirectResponse
  */
 public function postChangeAvatar(ChangeAvatarRequest $request)
 {
     if (Settings::get('use_avatars')) {
         Session::put('profile_tab', 'avatar');
         $response = null;
         // If avatar presented - delete it
         if (Auth::user()->avatar) {
             $response = Icr::deleteImage(Auth::user()->avatar, 'avatar');
         }
         // Handle delete error
         if ($response instanceof \Exception) {
             flash()->error($response->getMessage());
             return redirect()->back();
         }
         // Upload new avatar image
         $response = Icr::uploadImage($request->file('avatar'), 'avatar');
         // Handle upload errors
         if ($response instanceof \Exception) {
             flash()->error($response->getMessage());
             return redirect()->back();
         }
         // Change avatar in database
         Auth::user()->changeAvatar($response);
         flash()->success(trans('users.avatar_changed'));
     }
     return redirect()->back();
 }
 /**
  * Handles user edit
  *
  * @param EditUserRequest $request
  * @param int $id User id
  *
  * @return \Illuminate\Http\RedirectResponse
  */
 public function putEdit(EditUserRequest $request, $id)
 {
     $user = User::find($id);
     $user->changeProfile($request);
     if ($user->hasRole('admin') && count($user->getAdmins(false, true)) <= 1 && (!in_array(1, $request->input('roles')) || !$request->input('active'))) {
         flash()->error(trans('users.can_not_edit'));
         return redirect()->back();
     } else {
         UserRole::where('user_id', $user->id)->delete();
         $user->roles()->attach($request->input('roles'));
         $user->changeSettings($request);
     }
     if ($request->file('avatar') && Settings::get('use_avatars')) {
         $response = Icr::uploadImage($request->file('avatar'), 'avatar');
         if ($response instanceof \Exception) {
             flash()->error($response->getMessage());
             return redirect()->back();
         }
         $user->changeAvatar($response);
     }
     $user->save();
     User::flushCache($user);
     flash()->success(trans('users.edit_success'));
     return redirect()->back();
 }