76 lines
2.2 KiB
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');
|
|
}
|
|
}
|
|
}
|