Ajoute fiche d'identité informatique, catalogue prestataires et schémas draw.io

- Fiche d'identité par organisation (technicien référent, FAI, IP publiques,
  prestataires liés) accessible depuis un nouveau menu.
- Nouveau module Prestataires dédié (catalogue léger réutilisable entre
  communes, avec journal de suivi des échanges) plutôt que de détourner les
  organisations de type "Fournisseur".
- Nouveau menu Infrastructure par organisation avec schémas réseau/fonctionnel
  édités via draw.io embarqué (URL configurable, cf. réglages admin).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
mrKamoo
2026-08-21 15:55:23 +02:00
co-authored by Claude Sonnet 5
parent 74c0b01a2e
commit 3c87ced1e4
28 changed files with 1365 additions and 1 deletions
+16
View File
@@ -8,6 +8,7 @@ use App\Models\FlexibleAssetType;
use App\Models\Location;
use App\Models\Organization;
use App\Models\Password;
use App\Models\Provider;
use App\Models\Shortcut;
use App\Models\Todo;
use App\Models\User;
@@ -23,7 +24,14 @@ Route::middleware(['auth'])->group(function () {
Route::get('/organizations', fn () => view('organizations.index'))->name('organizations.index');
Route::get('/organizations/create', fn () => view('organizations.create'))->name('organizations.create');
Route::get('/organizations/{organization}/edit', fn (Organization $organization) => view('organizations.edit', ['organization' => $organization]))->name('organizations.edit');
Route::prefix('/providers')->name('providers.')->group(function () {
Route::get('/', fn () => view('providers.index'))->name('index');
Route::get('/create', fn () => view('providers.create'))->name('create');
Route::get('/{provider}/edit', fn (Provider $provider) => view('providers.edit', ['provider' => $provider]))->name('edit');
});
Route::get('/organizations/{organization}/dashboard', fn (Organization $organization) => view('organizations.dashboard', ['organization' => $organization]))->name('organizations.dashboard');
Route::get('/organizations/{organization}/identity-card', fn (Organization $organization) => view('organizations.identity-card', ['organization' => $organization]))->name('organizations.identity-card');
Route::prefix('/organizations/{organization}/passwords')->name('organizations.passwords.')->group(function () {
Route::get('/', fn (Organization $organization) => view('passwords.index', ['organization' => $organization]))->name('index');
@@ -74,6 +82,14 @@ Route::middleware(['auth'])->group(function () {
Route::get('/{document}/download', DocumentDownloadController::class)->name('download');
});
Route::prefix('/organizations/{organization}/infrastructure')->name('organizations.infrastructure.')->group(function () {
Route::get('/', fn (Organization $organization) => view('infrastructure.index', ['organization' => $organization]))->name('index');
Route::get('/{document}/edit', fn (Organization $organization, Document $document) => view('infrastructure.edit', [
'organization' => $organization,
'document' => $document,
]))->name('edit');
});
Route::prefix('/organizations/{organization}/virtual-machines')->name('organizations.virtual-machines.')->group(function () {
Route::get('/', fn (Organization $organization) => view('virtual-machines.index', ['organization' => $organization]))->name('index');
Route::get('/create', fn (Organization $organization) => view('virtual-machines.create', ['organization' => $organization]))->name('create');