Delete Users

This commit is contained in:
Torsten 2023-01-14 09:22:26 +01:00
parent 4253194117
commit ba11930641
5 changed files with 556 additions and 204 deletions

View file

@ -3,7 +3,7 @@ APP_ENV=local
APP_KEY=base64:7Md2wHHNq04ldtpdsz4B2LDAMEOB+4fSfxMJGfDU2zY=
APP_DEBUG=true
APP_URL=http://test.motorrad-ig.de
LOG_CHANNEL=stack
LOG_CHANNEL=daily
DB_CONNECTION=mysql
DB_HOST=127.0.0.1

View file

@ -1,144 +1,164 @@
<?php
namespace App\Http\Controllers;
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
use Log;
use Intervention\Image\Facades\Image;
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()
class UserController extends Controller
{
$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
* @return \Illuminate\Http\Response
* /
public function store(Request $request)
{
}
/**
* Display the specified resource.
*
* @param \App\User $user
* @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);
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');
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$users = User::all();
return view('users.index')->with('users', $users);
}
$user->name=$request->input('name');
$user->email=$request->input('email');
$user->role=$request->input('role');
$user->mobile=$request->input('mobile');
$user->save();
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
error_log("User role: ".$user->role);
/**
* 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/');
}
return redirect('/member/');
}
/**
* Remove the specified resource from storage.
*
* @param \App\User $user
* @return \Illuminate\Http\Response
*/
public function destroy(User $user)
{
//
}
}

View file

@ -4,63 +4,82 @@
<div class="container text-center text-light mt-5">
<h1 class="text-center">{{$user->name}}</h1>
<form style="background-color: #fff;" class="text-dark" method="post" action="/member/{{$user->name}}" enctype="multipart/form-data">
<form style="background-color: #fff;" class="text-dark" method="post" action="/member/{{$user->name}}"
enctype="multipart/form-data">
@csrf
@method('PUT')
<input type="hidden" name="id" value="{{ $user->id }}">
<div class="form-group" style="display:flex;">
<label class="ml-2 mt-4" style="width:150px; text-align:left;" for="name"><h4>Name:</h4></label>
<input class="mt-3 mr-2 form-control" type="text" id="name" style="font-size:20px;" name="name" value="{{ old('name') ?? $user->name }}" required >
<input class="mt-3 mr-2 form-control" type="text" id="name" style="font-size:20px;" name="name"
value="{{ old('name') ?? $user->name }}" required>
</div>
<div class="form-group" style="display:flex;">
<label class="ml-2 mt-4" style="width:150px; text-align:left;" for="mobile" ><h4>Telefonnummer:</h4></label>
<input type="text" class="mt-3 mr-2 form-control" id="mobile" style="font-size:20px;" name="mobile" value="{{ old('mobile') ?? $user->mobile }}" required >
<label class="ml-2 mt-4" style="width:150px; text-align:left;" for="mobile"><h4>Telefonnummer:</h4>
</label>
<input type="text" class="mt-3 mr-2 form-control" id="mobile" style="font-size:20px;" name="mobile"
value="{{ old('mobile') ?? $user->mobile }}" required>
</div>
<div class="form-group" style="display:flex;">
<label class="ml-2 mt-4" style="width:150px; text-align:left;" for="name" ><h4>EMail:</h4></label>
<input type="text" class="mt-3 mr-2 form-control" id="lastname" style="font-size:20px;" name="email" value="{{ old('email') ?? $user->email }}" required >
<label class="ml-2 mt-4" style="width:150px; text-align:left;" for="name"><h4>EMail:</h4></label>
<input type="text" class="mt-3 mr-2 form-control" id="lastname" style="font-size:20px;" name="email"
value="{{ old('email') ?? $user->email }}" required>
</div>
<div class="form-group" style="display:flex;">
<label class="ml-2 mt-4" style="width:150px; text-align:left;" for="bild" ><h4>Bild:</h4></label>
<label class="ml-2 mt-4" style="width:150px; text-align:left;" for="bild"><h4>Bild:</h4></label>
@if(file_exists (storage_path().'/img_storage/user/'.$user->id.'.jpg'))
<!--File exists -->
<a href="/img_storage/user/{{$user->id}}_gross.jpg" data-lightbox="{{$user->id}}_gross.jpg" data-title="{{ $user->name }}">
<img src="/img_storage/user/{{$user->id}}.jpg" id="bild" class="mt-3 ml-3" style="width:256px;height:256px">
<a href="/img_storage/user/{{$user->id}}_gross.jpg" data-lightbox="{{$user->id}}_gross.jpg"
data-title="{{ $user->name }}">
<img src="/img_storage/user/{{$user->id}}.jpg" id="bild" class="mt-3 ml-3"
style="width:256px;height:256px">
</a>
@else
<img src="/img/placeholder/user64x96.jpg" id="bild" class="mt-3 ml-3" >
<img src="/img/placeholder/user64x96.jpg" id="bild" class="mt-3 ml-3">
@endif
<input type="file" class="mt-3 mr-2 form-control" style="font-size:20px;" name="bild" value="" accept="image/*" onchange="preview_image(event)">
<input type="file" class="mt-3 mr-2 form-control" style="font-size:20px;" name="bild" value=""
accept="image/*" onchange="preview_image(event)">
</div>
@if(Auth::user()->role=="ADMIN")
<div class="form-group" style="display:flex;">
<label class="ml-2 mt-4" style="width:130px; text-align:left;" for="name" ><h4>Rolle:</h4></label>
<label class="ml-2 mt-4" style="width:130px; text-align:left;" for="name"><h4>Rolle:</h4></label>
<select name="role" class="dropdown-item ml-3 border form-control mt-3 mr-2" style="font-size:18px;" selected="{{ old('role') ?? $user->role }}">
<option value="GUEST" style="font-size:18px;" class="dropdown-item bg-light form-control" {{ $user->role=="GUEST" ? "selected" : "" }} >GUEST</option>
<option value="MEMBER" style="font-size:18px;" class="dropdown-item bg-light" {{ $user->role=="MEMBER" ? "selected" : "" }} >MEMBER</option>
<option value="ADMIN" style="font-size:18px;" class="dropdown-item bg-light" {{ $user->role=="ADMIN" ? "selected" : "" }} >ADMIN</option>
<select name="role" class="dropdown-item ml-3 border form-control mt-3 mr-2" style="font-size:18px;"
selected="{{ old('role') ?? $user->role }}">
<option value="GUEST" style="font-size:18px;"
class="dropdown-item bg-light form-control" {{ $user->role=="GUEST" ? "selected" : "" }} >
GUEST
</option>
<option value="MEMBER" style="font-size:18px;"
class="dropdown-item bg-light" {{ $user->role=="MEMBER" ? "selected" : "" }} >MEMBER
</option>
<option value="ADMIN" style="font-size:18px;"
class="dropdown-item bg-light" {{ $user->role=="ADMIN" ? "selected" : "" }} >ADMIN
</option>
</select>
</div>
@else
<div class="form-group" style="display:flex;">
<label class="ml-2 mt-4" style="width:130px; text-align:left;" for="name" ><h4>Rolle:</h4></label>
<label class="ml-2 mt-4" style="width:130px; text-align:left;" for="name"><h4>Rolle:</h4></label>
<h4 class="mt-4">{{$user->role}}</h4>
</div>
@endif
<a href="/member" class="btn btn-primary col-2 mb-2 float-left" style="margin-right:20px;">Zurück</a>
@if(Auth::user()->role=="ADMIN" || Auth::user()->id==$user->id)
<button type="submit" class="btn btn-danger col-2 mb-2 float-right mr-2">Speichern</button>
<a href="/admin/destroy_user/{{$user->id}}" class="btn btn-primary col-2 mb-2 float-left"
style="margin-right:20px;">Löschen</a>
@endif
<a href="/member" class="btn btn-primary col-2 mb-2 float-left">Zurück</a>
</form>
@ -69,12 +88,10 @@
<!-------------------------------- ----------------------------->
<script>
function preview_image(event)
{
function preview_image(event) {
console.log("Preview triggered.")
var reader = new FileReader();
reader.onload = function()
{
reader.onload = function () {
console.log("onload")
var output = document.getElementById('bild');
console.log(output);

View file

@ -1,65 +1,74 @@
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
/*
Route::get('/', function () {
return view('home');
});
/*
Route::get('/', function () {
return view('home');
});
Route::get('/test', 'PageController@page_home');
Route::get('/test', 'PageController@page_home');
* */
* */
Route::get('/', 'PageController@page_home');
Route::get('/home', 'PageController@page_home')->name('home');
Route::post('/admin/store_home','AdminController@store_home')->middleware('auth');
Route::get('/activities', 'PageController@page_activities');
Route::get('/', 'PageController@page_home');
Route::get('/home', 'PageController@page_home')->name('home');
Route::post('/admin/store_home', 'AdminController@store_home')->middleware('auth');
Route::get('/activities', 'PageController@page_activities');
Route::get('/become_member', function () { return view('users.become_member'); });
Route::get('/meetings', function () { return view('meetings'); })->middleware('auth');
Route::get('/become_member', function () {
return view('users.become_member');
});
Route::get('/meetings', function () {
return view('meetings');
})->middleware('auth');
Route::resource('/member',UserController::class);
Route::resource('/member', UserController::class);
Route::get('/admin/upload_tourplan', 'AdminController@upload_tourplan')->middleware('auth');
Route::post('/admin/store_tourplan','AdminController@store_tourplan')->middleware('auth');
Route::get('/admin/destroy_user/{user_id}', 'UserController@destroy')->middleware('auth');
Route::get('/admin/upload_tourplan', 'AdminController@upload_tourplan')->middleware('auth');
Route::post('/admin/store_tourplan', 'AdminController@store_tourplan')->middleware('auth');
Route::get('/admin/upload_mitgliedsantrag', 'AdminController@upload_mitgliedsantrag')->middleware('auth');
Route::post('/admin/store_mitgliedsantrag','AdminController@store_mitgliedsantrag')->middleware('auth');
Route::get('/admin/upload_mitgliedsantrag', 'AdminController@upload_mitgliedsantrag')->middleware('auth');
Route::post('/admin/store_mitgliedsantrag', 'AdminController@store_mitgliedsantrag')->middleware('auth');
Route::get('/admin/edit_home', 'AdminController@edit_home')->middleware('auth');
Route::get('/admin/edit_activities', 'AdminController@edit_activities')->middleware('auth');
Route::post('/admin/store_activities', 'AdminController@store_activities')->middleware('auth');
Route::get('/admin/edit_home', 'AdminController@edit_home')->middleware('auth');
Route::get('/admin/edit_activities', 'AdminController@edit_activities')->middleware('auth');
Route::post('/admin/store_activities', 'AdminController@store_activities')->middleware('auth');
Route::get('/tour/index_old', 'TourController@index_old')->middleware('auth');
Route::post('/tour/store', 'TourController@store')->middleware('auth');
Route::post('/tour/update', 'TourController@store')->middleware('auth');
Route::post('/tour/upload_gallery/{tour_id}', 'TourController@upload_gallery');
Route::resource('/tour', TourController::class)->middleware('auth');
Route::get('/tour/index_old', 'TourController@index_old')->middleware('auth');
Route::post('/tour/store', 'TourController@store')->middleware('auth');
Route::post('/tour/update', 'TourController@store')->middleware('auth');
Route::post('/tour/upload_gallery/{tour_id}', 'TourController@upload_gallery');
Route::resource('/tour', TourController::class)->middleware('auth');
Route::get('/tour/{tour_id}/join/{room_id}', 'TourController@join_room')->middleware('auth');
Route::get('/tour/{tour_id}/join4user/{room_id}/{user_id}', 'TourController@join_room4user')->middleware('auth');
Route::get('/tour/{tour_id}/cancelBooking', 'TourController@cancelBooking')->middleware('auth');
Route::get('/tour/{tour_id}/cancelBookingAdmin/{user_id}', 'TourController@cancelBookingAdmin')->middleware('auth');
Route::get('/tour/{tour_id}/create_room/{capacity}', 'TourController@create_room')->middleware('auth');
Route::get('/tour/{tour_id}/delete_room/{room_id}', 'TourController@delete_room')->middleware('auth');
Route::get('/tour/{tour_id}/assign_room_for_user/{user_id}', 'TourController@delete_room')->middleware('auth');
Route::get('/tour/{tour_id}/join/{room_id}', 'TourController@join_room')->middleware('auth');
Route::get('/tour/{tour_id}/join4user/{room_id}/{user_id}', 'TourController@join_room4user')->middleware('auth');
Route::get('/tour/{tour_id}/cancelBooking', 'TourController@cancelBooking')->middleware('auth');
Route::get('/tour/{tour_id}/cancelBookingAdmin/{user_id}', 'TourController@cancelBookingAdmin')->middleware('auth');
Route::get('/tour/{tour_id}/create_room/{capacity}', 'TourController@create_room')->middleware('auth');
Route::get('/tour/{tour_id}/delete_room/{room_id}', 'TourController@delete_room')->middleware('auth');
Route::get('/tour/{tour_id}/assign_room_for_user/{user_id}', 'TourController@delete_room')->middleware('auth');
Route::get('/img_storage/{category}/{imageName}','ImageController@getImage'); // no middleware auth needed, its checked in Controller
Route::get('/img_storage/{category}/{imageName}', 'ImageController@getImage'); // no middleware auth needed, its checked in Controller
Auth::routes();
Auth::routes();
/* Cache clearing on remote server */
Route::get('/clear-cache', function() { Artisan::call('cache:clear');Artisan::call('config:clear'); return "Cache cleared, Config reloaded"; });
//Route::get('/home', 'HomeController@index')->name('home');
/* Cache clearing on remote server */
Route::get('/clear-cache', function () {
Artisan::call('cache:clear');
Artisan::call('config:clear');
return "Cache cleared, Config reloaded";
});
//Route::get('/home', 'HomeController@index')->name('home');

File diff suppressed because one or more lines are too long