users and institutions route, tests fixed
This commit is contained in:
@@ -47,8 +47,10 @@ class InstitutionCategoryController extends Controller
|
||||
/**
|
||||
* Aggiorna una categoria.
|
||||
*/
|
||||
public function update(UpdateInstitutionCategoryRequest $request, InstitutionCategory $institutionCategory): JsonResponse
|
||||
{
|
||||
public function update(
|
||||
UpdateInstitutionCategoryRequest $request,
|
||||
InstitutionCategory $institutionCategory
|
||||
): JsonResponse {
|
||||
$institutionCategory->update($request->validated());
|
||||
|
||||
return $this->updatedResponse($institutionCategory);
|
||||
|
||||
28
backend/app/Http/Controllers/UserPositionController.php
Normal file
28
backend/app/Http/Controllers/UserPositionController.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\Lists\UserPosition;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
class UserPositionController extends Controller
|
||||
{
|
||||
use ApiResponse;
|
||||
|
||||
/**
|
||||
* Elenco delle position.
|
||||
*/
|
||||
public function index(): JsonResponse
|
||||
{
|
||||
return $this->collectionResponse(UserPosition::all());
|
||||
}
|
||||
|
||||
/**
|
||||
* Dettaglio di una position.
|
||||
*/
|
||||
public function show(UserPosition $userPosition): JsonResponse
|
||||
{
|
||||
return $this->okResponse($userPosition);
|
||||
}
|
||||
}
|
||||
@@ -2,8 +2,6 @@
|
||||
|
||||
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;
|
||||
@@ -20,16 +18,6 @@ class UserRoleController extends Controller
|
||||
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.
|
||||
*/
|
||||
@@ -39,40 +27,12 @@ class UserRoleController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* 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).
|
||||
* Numero di utenti con questo ruolo (statistica per Admin).
|
||||
*/
|
||||
public function usage(UserRole $userRole): JsonResponse
|
||||
{
|
||||
return response()->json([
|
||||
'in_use' => $userRole->isSystemRole() || $userRole->isInUse(),
|
||||
'user_count' => $userRole->users()->count(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,22 +2,22 @@
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
/**
|
||||
* Filtri di query per l'elenco istituzioni. Autorizzazione demandata ai
|
||||
* middleware di rotta (tier.app).
|
||||
*/
|
||||
class IndexInstitutionRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* L'autorizzazione è gestita dal middleware di rotta (tier.app).
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, mixed>
|
||||
* @return array<string, ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
|
||||
@@ -2,22 +2,22 @@
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
/**
|
||||
* Validazione dei filtri di query per l'elenco utenti (area admin).
|
||||
* L'autorizzazione è demandata ai middleware di rotta (auth + admin + setup).
|
||||
*/
|
||||
class IndexUserRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* L'autorizzazione (auth + admin + setup) è gestita dal middleware di rotta.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, mixed>
|
||||
* @return array<string, ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class StoreUserRoleRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* L'autorizzazione (solo Admin) è gestita dal middleware di rotta.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'name' => 'required|string|max:255|unique:user_roles,name',
|
||||
'description' => 'nullable|string',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class UpdateUserRoleRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* L'autorizzazione (solo Admin) è gestita dal middleware di rotta.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
$id = $this->route('user_role')->id;
|
||||
|
||||
return [
|
||||
'name' => [
|
||||
'required',
|
||||
'string',
|
||||
'max:255',
|
||||
Rule::unique('user_roles', 'name')->ignore($id),
|
||||
],
|
||||
'description' => ['nullable', 'string'],
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user