auth tests

This commit is contained in:
Giuseppe Naponiello
2026-06-22 14:31:44 +02:00
parent 34a8ebc6fb
commit cc4e174880
75 changed files with 4679 additions and 168 deletions

View File

@@ -0,0 +1,78 @@
<?php
namespace App\Http\Controllers;
use App\Http\Requests\StoreUserRoleRequest;
use App\Http\Requests\UpdateUserRoleRequest;
use App\Http\Traits\ApiResponse;
use App\Models\Lists\UserRole;
use Illuminate\Http\JsonResponse;
class UserRoleController extends Controller
{
use ApiResponse;
/**
* Elenco dei ruoli.
*/
public function index(): JsonResponse
{
return $this->collectionResponse(UserRole::all());
}
/**
* Crea un nuovo ruolo.
*/
public function store(StoreUserRoleRequest $request): JsonResponse
{
$role = UserRole::create($request->validated());
return $this->createdResponse($role);
}
/**
* Dettaglio di un ruolo.
*/
public function show(UserRole $userRole): JsonResponse
{
return $this->okResponse($userRole);
}
/**
* Aggiorna un ruolo.
*/
public function update(UpdateUserRoleRequest $request, UserRole $userRole): JsonResponse
{
$userRole->update($request->validated());
return $this->updatedResponse($userRole);
}
/**
* Elimina un ruolo (se non di sistema e non in uso).
*/
public function destroy(UserRole $userRole): JsonResponse
{
if ($userRole->isSystemRole()) {
return $this->conflictResponse('Cannot delete a system role.');
}
if ($userRole->isInUse()) {
return $this->conflictResponse('Cannot delete: role assigned to at least one user.');
}
$userRole->delete();
return $this->deletedResponse();
}
/**
* Indica se il ruolo è bloccato per l'eliminazione (di sistema o in uso).
*/
public function usage(UserRole $userRole): JsonResponse
{
return response()->json([
'in_use' => $userRole->isSystemRole() || $userRole->isInUse(),
]);
}
}