users and institutions route, tests fixed

This commit is contained in:
Giuseppe Naponiello
2026-06-23 12:29:02 +02:00
parent fe73662903
commit 032f6a08df
23 changed files with 346 additions and 287 deletions

View File

@@ -3,15 +3,21 @@
use App\Http\Controllers\InstitutionCategoryController;
use Illuminate\Support\Facades\Route;
// rotte pubbliche con throttling
Route::middleware('throttle:public')->group(function () {
Route::apiResource('institution-categories', InstitutionCategoryController::class)
->only(['index', 'show']);
});
// Prefisso `api` e tier applicati dal loader in bootstrap/app.php.
// Lettura: utente pienamente operativo.
Route::middleware('tier.app')->group(function () {
Route::apiResource('institution-categories', InstitutionCategoryController::class)->only(['index', 'show']);
Route::get('institution-categories/{institution_category}/usage', [InstitutionCategoryController::class, 'usage']);
});
// Scrittura: solo Admin.
Route::middleware('tier.admin')->group(function () {
Route::apiResource('institution-categories', InstitutionCategoryController::class)->only(['store', 'update', 'destroy']);
Route::apiResource('institution-categories', InstitutionCategoryController::class)
->only(['store', 'update', 'destroy']);
});

View File

@@ -7,14 +7,19 @@ use Illuminate\Support\Facades\Route;
// Prefisso `api` e tier (`tier.app` / `tier.admin`) applicati dal loader in
// bootstrap/app.php. Le istituzioni si risolvono per `uuid` (route key del model).
// Lettura: utente pienamente operativo.
Route::middleware('tier.app')->group(function () {
// rotte pubbliche con throttling
Route::middleware('throttle:public')->group(function () {
Route::apiResource('institutions', InstitutionController::class)->only(['index', 'show']);
Route::apiResource('institutions.links', InstitutionLinkController::class)
->only(['index', 'show'])
->scoped();
});
// Lettura: utente pienamente operativo.
Route::middleware('tier.app')->group(function () {
//
});
// Scrittura + soft delete: solo Admin.
Route::middleware('tier.admin')->group(function () {
Route::apiResource('institutions', InstitutionController::class)->only(['store', 'update', 'destroy']);

View File

@@ -0,0 +1,12 @@
<?php
use App\Http\Controllers\UserPositionController;
use Illuminate\Support\Facades\Route;
// Prefisso `api` e stack `api` sono applicati dal loader in bootstrap/app.php.
// I tier `tier.app` / `tier.admin` sono definiti lì come middleware group.
// Lookup fissa, non gestibile da interfaccia: solo lettura.
Route::middleware('throttle:public')->group(function () {
Route::apiResource('user-positions', UserPositionController::class)->only(['index', 'show']);
});

View File

@@ -6,13 +6,12 @@ use Illuminate\Support\Facades\Route;
// Prefisso `api` e stack `api` sono applicati dal loader in bootstrap/app.php.
// I tier `tier.app` / `tier.admin` sono definiti lì come middleware group.
// Lettura: utente pienamente operativo (verificato + setup completato).
// Lookup fissa, non gestibile da interfaccia: solo lettura.
Route::middleware('tier.app')->group(function () {
Route::apiResource('user-roles', UserRoleController::class)->only(['index', 'show']);
Route::get('user-roles/{user_role}/usage', [UserRoleController::class, 'usage']);
});
// Scrittura: solo Admin.
// Statistiche: solo Admin.
Route::middleware('tier.admin')->group(function () {
Route::apiResource('user-roles', UserRoleController::class)->only(['store', 'update', 'destroy']);
Route::get('user-roles/{user_role}/usage', [UserRoleController::class, 'usage']);
});