ldc-mesbr-app/app/Http/Controllers/Bo/UserController.php

76 lines
2.2 KiB
PHP

<?php
namespace App\Http\Controllers\Bo;
use App\Http\Controllers\Controller;
use App\Http\Requests\Bo\Users\DestroyUserRequest;
use App\Http\Requests\Bo\Users\StoreUserRequest;
use App\Http\Requests\Bo\Users\UpdateUserRequest;
use Illuminate\Http\Request;
use App\Models\Site;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
class UserController extends Controller
{
public function index(Request $request)
{
$users = User::all();
return view('bo.users.index')->with(['users' => $users, 'logs' => []]);
}
public function create(Request $request)
{
$sites = Site::all();
return view('bo.users.create', compact('sites'));
}
public function store(StoreUserRequest $request)
{
$user = new User();
$user->fill($request->validated());
$user->password = Hash::make($request->password);
$user->save();
$sites = Site::whereIn('site_id', $request->site)->get()->pluck('id')->toArray();
$user->sites()->sync($sites);
return redirect()->route('bo.users.edit', $user);
}
public function edit(User $user)
{
$sites = Site::all();
$usersites = $user->sites()->get()->pluck('site_id')->toArray();
return view('bo.users.edit', compact('user', 'sites', 'usersites'));
}
public function update(UpdateUserRequest $request, User $user)
{
$user->fill($request->validated());
$user->save();
$sites = Site::whereIn('site_id', $request->site)->get()->pluck('id')->toArray();
$user->sites()->sync($sites);
$marques = Auth::user()->sites;
$submarques = $marques->map(function ($marque) {
return $marque->only(['id', 'site_nom', 'site_id', 'site_logo']);
});
session()->put('marques', $submarques);
return redirect()->route('bo.users.edit', $user);
}
public function destroy(DestroyUserRequest $request, User $user)
{
if ($user->delete()) {
return redirect()->route('bo.users.index');
} else {
session()->flash('delete_nok', 'Erreur lors de la suppression');
return view('bo.user.index');
}
}
}