motorradig/motorradig/app/Http/Controllers/UserController.php
2023-01-14 09:22:26 +01:00

164 lines
4.8 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Log;
use Intervention\Image\Facades\Image;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$users = User::all();
return view('users.index')->with('users', $users);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\User $user
* @return \Illuminate\Http\Response
* /
* public function store(Request $request)
* {
*
* }
*
* /**
* Display the specified resource.
*
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//Log("show user id=".$id);
error_log("(show)=>" . $id);
$user = User::find($id);
return view('users.show')->with('user', $user);
}
/**
* Show the form for editing the specified resource.
*
* @param \App\User $user
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
error_log("Edit:" . $id);
$user = User::find($id);
if (Auth::user()->role != 'ADMIN' && $user->id != Auth::user()->id) {
return redirect('/users');
}
error_log($user);
return view('users.edit')->with('user', $user);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\User $user
* @return \Illuminate\Http\Response
*/
public function update(Request $request, User $user)
{
$user = User::find($request->input('id'));
$request->validate(
[
'name' => 'required|min:3',
'email' => 'required|email',
'role' => 'required',
'mobile' => 'required',
'bild' => 'mimes:jpg,jpeg,bmp,png,gif'
]
);
if ($request->bild) {
$bild = Image::make($request->bild);
$breite = $bild->width();
$hoehe = $bild->height();
if ($breite > $hoehe) {
Image::make($request->bild)
->widen(1200)
->save(storage_path() . '/img_storage/user/' . $user->id . '_gross.jpg');
Image::make($request->bild)
->widen(64)
->save(storage_path() . '/img_storage/user/' . $user->id . '.jpg');
} else {
Image::make($request->bild)
->heighten(900)
->save(storage_path() . '/img_storage/user/' . $user->id . '_gross.jpg');
Image::make($request->bild)
->widen(96)
->save(storage_path() . '/img_storage/user/' . $user->id . '.jpg');
}
}
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->role = $request->input('role');
$user->mobile = $request->input('mobile');
$user->save();
error_log("User role: " . $user->role);
return redirect('/member/');
}
/**
* Remove the specified resource from storage.
*
* @param \App\User $user
* @return \Illuminate\Http\Response
*/
public function destroy($user_id)
{
$user = User::find($user_id);
Log::info("UserController::destroy for user_id " . $user->id);
Log::info("Preparing to destroy user [" . $user->id . "]" . $user->name);
Log::info("#DESTROY_USER [users]" . $user);
$tours = DB::select("SELECT id FROM tours WHERE user_id=" . $user_id);
Log::info('#DESTROY_USER [affected tour ids]', $tours);
$bookings = DB::select("SELECT id FROM bookings WHERE user_id=" . $user_id);
Log::info("#DESTROY_USER [affected booking ids]", $bookings);
DB::delete('DELETE FROM users WHERE id=' . $user->id);
return redirect('/member/');
}
}