ldc-supportweb/app/Http/Controllers/Back/UserController.php
2026-05-28 10:50:21 +02:00

68 lines
2.1 KiB
PHP

<?php
namespace App\Http\Controllers\Back;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Uwil\LaravelBackend\Controllers\UserController as BackendUserController;
/**
* Handles CRUD operations for Site in the backend.
*/
class UserController extends BackendUserController
{
// phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter
/**
* Update the specified resource.
*
* @param \Illuminate\Http\Request $request
* @param mixed $callback
* @return \Illuminate\Http\RedirectResponse
*/
#[\Override]
public function store(
Request $request,
mixed $callback = null,
): \Illuminate\Http\RedirectResponse {
return parent::store($request, function ($request, $user): void {
$validatedData = $request->validated();
$user->sites()->syncWithoutDetaching(Arr::get($validatedData, 'sites'));
if (Arr::get($validatedData, 'gitlab_id')) {
$user->gitlabUser()->create([
'gitlab_id' => Arr::get($validatedData, 'gitlab_id'),
]);
}
});
}
/**
* Update the specified resource.
*
* @param \Illuminate\Http\Request $request
* @param mixed $user
* @param mixed $callback
* @return \Illuminate\Http\RedirectResponse
*/
#[\Override]
public function update(
Request $request,
mixed $user,
mixed $callback = null,
): \Illuminate\Http\RedirectResponse {
return parent::update($request, $user, function ($request, $user): void {
$validatedData = $request->validated();
$user->sites()->sync(Arr::get($validatedData, 'sites'));
if (Arr::get($validatedData, 'gitlab_id')) {
$user->gitlabUser()->updateOrCreate(
['user_id' => $user->id],
['gitlab_id' => $validatedData['gitlab_id']],
);
} else {
$user->gitlabUser()->delete();
}
});
}
// phpcs:enable
}