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

63 lines
2 KiB
PHP
Raw Normal View History

<?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
{
/**
* Update the specified resource.
*
* @param \Illuminate\Http\Request $request
* @param mixed $callback
* @return \Illuminate\Http\RedirectResponse
*/
public function store(
Request $request,
mixed $callback = null,
): \Illuminate\Http\RedirectResponse {
return parent::store($request, function ($request, $user) {
$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
*/
public function update(
Request $request,
mixed $user,
mixed $callback = null,
): \Illuminate\Http\RedirectResponse {
return parent::update($request, $user, function ($request, $user) {
$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();
}
});
}
}