68 lines
2.1 KiB
PHP
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
|
|
}
|