2026-05-13 16:53:56 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
|
|
|
|
use App\Models\Marque;
|
|
|
|
|
use App\Http\Requests\Bo\UpdateBrandUserRequest;
|
|
|
|
|
use App\Models\User;
|
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
|
|
|
|
class BrandController extends Controller
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* Display a listing of the resource.
|
|
|
|
|
*
|
|
|
|
|
* @return \Illuminate\Http\Response
|
|
|
|
|
*/
|
|
|
|
|
public function index()
|
|
|
|
|
{
|
|
|
|
|
/** @var \App\Models\User */
|
|
|
|
|
$user = auth()->user();
|
|
|
|
|
$user->authorizeRoles(config('roles.const.ADMIN'));
|
|
|
|
|
|
2026-05-13 17:17:21 +02:00
|
|
|
$brands = Marque::query()->orderBy('libMarq')->get();
|
2026-05-13 16:53:56 +02:00
|
|
|
return view('brands.index')->with([
|
|
|
|
|
'brands' => $brands
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function editUsers(Marque $brand)
|
|
|
|
|
{
|
|
|
|
|
/** @var \App\Models\User */
|
|
|
|
|
$user = auth()->user();
|
|
|
|
|
$user->authorizeRoles(config('roles.const.ADMIN'));
|
|
|
|
|
|
|
|
|
|
$userModels = User::all();
|
|
|
|
|
return view('brands.edit-relations')->with([
|
|
|
|
|
'brand' => $brand,
|
|
|
|
|
'brands' => Marque::all(),
|
|
|
|
|
'userModels' => $userModels,
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function updateUsers(UpdateBrandUserRequest $request, Marque $brand)
|
|
|
|
|
{
|
|
|
|
|
/** @var \App\Models\User */
|
|
|
|
|
$user = auth()->user();
|
|
|
|
|
$user->authorizeRoles(config('roles.const.ADMIN'));
|
|
|
|
|
|
|
|
|
|
DB::transaction(function () use ($request, $brand) {
|
|
|
|
|
if ($request->validated('users')) {
|
|
|
|
|
$brand->users()->sync($request->validated('users'));
|
|
|
|
|
}
|
|
|
|
|
return redirect()->route('brands.editUsers', ['brand' => $brand])
|
|
|
|
|
->with('success', __('Les utilisateurs ont bien été mis à jour'));
|
|
|
|
|
});
|
|
|
|
|
return back()->with('error', __('Une erreur est survenue. Veuillez réessayer ultérieurement.'));
|
|
|
|
|
}
|
|
|
|
|
}
|