ldc-supportweb/app/Http/Controllers/Back/UserController.php

63 lines
1.8 KiB
PHP
Raw Normal View History

<?php
declare(strict_types=1);
namespace App\Http\Controllers\Back;
use Illuminate\Http\RedirectResponse;
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
{
2026-05-26 13:12:45 +02:00
// phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter
/**
* Update the specified resource.
*/
2026-05-26 13:12:45 +02:00
#[\Override]
public function store(
Request $request,
mixed $callback = null,
): RedirectResponse {
2026-05-26 13:12:45 +02:00
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.
*/
2026-05-26 13:12:45 +02:00
#[\Override]
public function update(
Request $request,
mixed $user,
mixed $callback = null,
): RedirectResponse {
2026-05-26 13:12:45 +02:00
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();
}
});
}
2026-05-26 13:12:45 +02:00
// phpcs:enable
}