diff --git a/app/Filament/Pages/SuperAdmin/Amministratori.php b/app/Filament/Pages/SuperAdmin/Amministratori.php
index abd0534..c28214c 100755
--- a/app/Filament/Pages/SuperAdmin/Amministratori.php
+++ b/app/Filament/Pages/SuperAdmin/Amministratori.php
@@ -155,20 +155,9 @@ public function impersonaSelected(): void
return;
}
- $amm = Amministratore::query()->with('user')->find($this->selectedAmministratoreId);
- if ($amm && $amm->user) {
- $actorId = Auth::id();
- $targetUser = $amm->user;
-
- if (method_exists($targetUser, 'hasRole') && ! $targetUser->hasAnyRole(['admin', 'amministratore', 'super-admin'])) {
- $targetUser->assignRole('amministratore');
- }
-
- session(['impersonator_id' => $actorId]);
- Auth::guard('web')->login($targetUser, true);
- request()->session()->regenerate();
-
- $this->redirect('/admin-filament');
+ $amm = Amministratore::query()->find($this->selectedAmministratoreId);
+ if ($amm && $amm->user_id) {
+ $this->redirect(route('impersonate.take', ['user' => $amm->user_id]), navigate: false);
}
}
@@ -273,16 +262,8 @@ public function table(Table $table): Table
->modalDescription('Stai per accedere al sistema impersonando lo studio dellβamministratore selezionato. Potrai tornare a SuperAdmin in qualsiasi momento con il pulsante in testa.')
->visible(fn(Amministratore $record): bool => (bool) $record->user_id && $record->user_id !== Auth::id())
->action(function (Amministratore $record): void {
- if ($record->user) {
- $actorId = Auth::id();
- $targetUser = $record->user;
- if (method_exists($targetUser, 'hasRole') && ! $targetUser->hasAnyRole(['admin', 'amministratore', 'super-admin'])) {
- $targetUser->assignRole('amministratore');
- }
- session(['impersonator_id' => $actorId]);
- Auth::login($targetUser);
- session()->save();
- $this->redirect('/admin-filament', navigate: false);
+ if ($record->user_id) {
+ $this->redirect(route('impersonate.take', ['user' => $record->user_id]), navigate: false);
}
}),
diff --git a/public/adminer.php b/public/adminer.php
index e870f3e..f230661 100644
--- a/public/adminer.php
+++ b/public/adminer.php
@@ -4,6 +4,7 @@
*
* SECURE WRAPPER FOR ADMINER
* - Disabled in Production (APP_ENV=production or APP_DEBUG=false)
+ * - Supports 1-Click Switching between MySQL Staging and PostgreSQL Consolidato
* - Auto-connects via TCP (127.0.0.1) to avoid Unix Socket Peer Auth failures
* - Strips and hides credentials from URL query parameters to prevent password leaks
*/
@@ -53,14 +54,17 @@ function env_get_val($key, $default = '') {
function adminer_object() {
class NetGesconAdminerSecurity extends \Adminer\Adminer {
function name() {
- return "NetGescon Database Visualizer";
+ return "NetGescon Database Visualizer (MySQL / PostgreSQL)";
}
function credentials() {
- $dbHost = env_get_val("DB_HOST", "127.0.0.1");
- if ($dbHost === "localhost") {
- $dbHost = "127.0.0.1";
+ $driver = $_POST["auth"]["driver"] ?? $_GET["pgsql"] ?? "server";
+ $dbHost = "127.0.0.1";
+
+ if ($driver === "pgsql" || isset($_GET["pgsql"])) {
+ return array($dbHost, "netgescon", "netgescon_pass");
}
+
$dbUser = env_get_val("DB_USERNAME", "netgescon_user");
$dbPass = env_get_val("DB_PASSWORD", "NetGescon2024!");
@@ -77,29 +81,48 @@ function login($login, $password) {
function loginForm() {
$connection = env_get_val("DB_CONNECTION", "mysql");
- $driverVal = ($connection === "pgsql") ? "pgsql" : "server";
- $dbUser = env_get_val("DB_USERNAME", "netgescon_user");
- $dbPass = env_get_val("DB_PASSWORD", "NetGescon2024!");
- $dbName = env_get_val("DB_DATABASE", "netgescon");
+ $defaultDriver = ($connection === "pgsql") ? "pgsql" : "server";
+ $mySqlUser = env_get_val("DB_USERNAME", "netgescon_user");
+ $mySqlPass = env_get_val("DB_PASSWORD", "NetGescon2024!");
+ $dbName = env_get_val("DB_DATABASE", "netgescon");
- echo '
';
- echo '
π NetGescon Secure DB Console Visualizer';
- echo 'Connessione locale (.env): Engine=
' . strtoupper($connection) . ' | DB=
' . $dbName . ' | User=
' . $dbUser . '.
';
- echo '
';
+ echo '
';
+ echo '
π NetGescon Secure Dual DB Visualizer';
+ echo 'Seleziona il motore di database su cui operare (TCP 127.0.0.1):
';
+ echo '
';
+ echo '';
+ echo '';
+ echo '
';
+ echo '
';
+ echo '';
+ echo '
';
echo '
';
echo '';
return true;
diff --git a/routes/web.php b/routes/web.php
index ceda8a6..502491d 100755
--- a/routes/web.php
+++ b/routes/web.php
@@ -41,6 +41,28 @@
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
+// --- Impersonation Take Route ---
+Route::get('/admin-filament/impersonate/take/{user}', function (\App\Models\User $user) {
+ $currentActor = Auth::user();
+ if (! $currentActor || ! $currentActor->hasRole('super-admin')) {
+ if (! session('impersonator_id')) {
+ abort(403, 'Solo un SuperAdmin puΓ² impersonare uno studio.');
+ }
+ }
+
+ $actorId = session('impersonator_id') ?: Auth::id();
+
+ if (method_exists($user, 'hasRole') && ! $user->hasAnyRole(['admin', 'amministratore', 'super-admin'])) {
+ $user->assignRole('amministratore');
+ }
+
+ session(['impersonator_id' => $actorId]);
+ Auth::guard('web')->login($user, true);
+ request()->session()->regenerate();
+
+ return redirect('/admin-filament');
+})->name('impersonate.take');
+
// --- Impersonation Leave Route ---
Route::get('/admin-filament/impersonate/leave', function () {
$impersonatorId = session('impersonator_id');
diff --git a/skill-netgescon/ui-wireframes/fornitori-anagrafica.md b/skill-netgescon/ui-wireframes/fornitori-anagrafica.md
index 235815e..295e8d0 100644
--- a/skill-netgescon/ui-wireframes/fornitori-anagrafica.md
+++ b/skill-netgescon/ui-wireframes/fornitori-anagrafica.md
@@ -1,13 +1,26 @@
# ASCII Wireframe - Gestione Fornitori & Anagrafica Accreditate (/admin-filament/gescon/anagrafica/fornitori)
-## 1. VISUALIZZAZIONE DESKTOP (High-Density Multi-Column Grid)
+## 0. STICKY HEADER BANNER - IMPERSONIFICAZIONE CONTESTUALE ATTIVA (Se attiva)
```text
+-------------------------------------------------------------------------------------------------------------------+
-| NETGESCON - ANAGRAFICA UNIFICATA STABILI & FORNITORI [SuperAdmin: Michele] |
+| β οΈ MODALITΓ IMPERSONIFICAZIONE ATTIVA: Stai operando come STUDIO TORDINI CECILIA (ID #13) [ β©οΈ TORNA A SUPER ADMIN ]|
++-------------------------------------------------------------------------------------------------------------------+
+```
+
+---
+
+## 1. TAB 1: π’ ELENCO FORNITORI ACCREDITATI STUDIO (#13 CECILIA TORDINI)
+
+```text
++-------------------------------------------------------------------------------------------------------------------+
+| NETGESCON - ANAGRAFICA UNIFICATA STABILI & FORNITORI [Studio: Cecilia Tordini]|
+-------------------------------------------------------------------------------------------------------------------+
| PATH: Home > NetGescon > Anagrafica > Fornitori & Imprese Accreditate |
+-------------------------------------------------------------------------------------------------------------------+
+| BARRA PULSANTINI ICONICI COMPATTI (SENZA SCROLL ORIZZONTALE): |
+| [ π’ Elenco ] [ βοΈ Modifica (#10) ] [ π Fatture FE ] [ π Matrice ACL ] |
++-------------------------------------------------------------------------------------------------------------------+
| |
| [ + NUOVO FORNITORE ] [ π IMPORTA DA LEGACY MDB ] [ π Cerca per Ragione Sociale, P.IVA, CF, Tag... ] |
| |
@@ -16,16 +29,24 @@ ## 1. VISUALIZZAZIONE DESKTOP (High-Density Multi-Column Grid)
| +----+----------------------------+-----------------+-----------------------+-------------------+-----------------+
| | ID | RAGIONE SOCIALE / IMPRESA | P.IVA / C.F. | RECAPITI MULTICANALE | CATEGORIE / TAGS | AZIONI |
| +----+----------------------------+-----------------+-----------------------+-------------------+-----------------+
-| | 10 | TECNOREPAIR S.R.L. | 01234567890 | β info@tecnorepair.it | [Idraulico] | [Modifica Scheda|
-| | | | | π± 335-9988776 | [Elettricista] | [Assegna Ticket |
-| | 11 | CLEAN & SHINE PULIZIE | 09876543210 | β ordini@cleanshine.it| [Pulizie Parti C.]| [Modifica Scheda|
-| | 12 | ASCENSORI ROMA NORD S.A.S. | RMCNSC65L11H501K| β 06-44332211 | [Manut. Ascensore]| [Modifica Scheda|
-| | 13 | EDILIZIA SUBALPINA S.R.L. | 05544332211 | β cantiere@subalpina.it| [Edile] [Tetti] | [Modifica Scheda|
+| | 10 | TECNOREPAIR S.R.L. | 01234567890 | β info@tecnorepair.it | [Idraulico] | [βοΈ Modifica] |
+| | | | | π± 335-9988776 | [Elettricista] | [π Fatture FE] |
+| | 11 | CLEAN & SHINE PULIZIE | 09876543210 | β ordini@cleanshine.it| [Pulizie Parti C.]| [βοΈ Modifica] |
+| | 12 | ASCENSORI ROMA NORD S.A.S. | RMCNSC65L11H501K| β 06-44332211 | [Manut. Ascensore]| [βοΈ Modifica] |
+| | 13 | EDILIZIA SUBALPINA S.R.L. | 05544332211 | β cantiere@subalpina.it| [Edile] [Tetti] | [βοΈ Modifica] |
| +----+----------------------------+-----------------+-----------------------+-------------------+-----------------+
-| Mostrati 4 di 4 fornitori accreditati per gli stabili dell'amministratore |
+| Mostrati 370 di 370 fornitori accreditati per gli stabili dello studio |
++-------------------------------------------------------------------------------------------------------------------+
+```
+
+---
+
+## 2. TAB 2: βοΈ SCHEDA DETTAGLIO & EDITING INLINE FORNITORE (#10 TECNOREPAIR S.R.L.)
+
+```text
++-------------------------------------------------------------------------------------------------------------------+
+| DETTAGLIO ED EDITING SCHEDA FORNITORE (#10 TECNOREPAIR S.R.L.) |
+-------------------------------------------------------------------------------------------------------------------+
-| DETTAGLIO ED EDITING SCHEDA FORNITORE (#10 TECNOREPAIR S.R.L.) |
-| |
| [ Ragione Sociale: TECNOREPAIR S.R.L. ] |
| [ Partita IVA: 01234567890 ] [ Codice Fiscale: 01234567890 ] |
| [ Indirizzo: Via Ottaviano 45 ] [ CittΓ : ROMA ] [ CAP: 00192 ] |
@@ -41,29 +62,3 @@ ## 1. VISUALIZZAZIONE DESKTOP (High-Density Multi-Column Grid)
| [ SALVA SCHEDA FORNITORE ] [ ANNULLA ] [ ASSEGNA NUOVO TICKET INTERVENTO ] |
+-------------------------------------------------------------------------------------------------------------------+
```
-
-## 2. VISUALIZZAZIONE RESPONSIVE MOBILE (Adaptive Collapsible Card View)
-
-```text
-+--------------------------------------------------+
-| π± NETGESCON FORNITORI [SuperAdmin: M] |
-+--------------------------------------------------+
-| ANAGRAFICA FORNITORI ACCREDITATI |
-| [ + NUOVO FORNITORE ] [ π Cerca... ] |
-+--------------------------------------------------+
-| π οΈ TECNOREPAIR S.R.L. (ID #10) |
-| β’ P.IVA: 01234567890 | Tags: [Idraulico] [Elect] |
-| β info@tecnorepair.it | π± 335-9988776 |
-| π¦ IBAN: IT60X0100503301000000123456 |
-| ββββββββββββββββββββββββββββββββββββββββββββββββ |
-| AZIONI APPARATO MOBILE: |
-| [ βοΈ Modifica Scheda ] |
-| [ π οΈ Assegna Ticket Intervento ] |
-| [ π± Chiama subito ] [ π§ Invia Ordine ] |
-+--------------------------------------------------+
-| π§Ή CLEAN & SHINE PULIZIE (ID #11) |
-| β’ P.IVA: 09876543210 | Tags: [Pulizie] |
-| β ordini@cleanshine.it |
-| [ βοΈ Modifica Scheda ] |
-+--------------------------------------------------+
-```
diff --git a/skill-netgescon/ui-wireframes/stabili.md b/skill-netgescon/ui-wireframes/stabili.md
index 13e983a..51f92c1 100644
--- a/skill-netgescon/ui-wireframes/stabili.md
+++ b/skill-netgescon/ui-wireframes/stabili.md
@@ -1,45 +1,67 @@
-# ASCII Wireframe - Scheda Stabile e Dati Catastali
+# ASCII Wireframe - Gestione Stabili Condominiali (/admin-filament/condomini/stabile)
-URL: `http://192.168.0.205:8000/admin-filament/condomini/stabile`
+## 0. STICKY HEADER BANNER - IMPERSONIFICAZIONE CONTESTUALE ATTIVA (Se attiva)
```text
-+-----------------------------------------------------------------------------------------------------------------------+
-| NETGESCON Β· CENTRO STELLA [ Utente: Cecilia Tordini v ] |
-+-----------------------------------------------------------------------------------------------------------------------+
-| CONDOMINI > SCHEDA STABILE |
-| |
-| SUPERCONDOMINIO MILIZIE 3 |
-| Codice Operatore: 0021 Β· Viale delle Milizie 3 Β· Roma |
-| [ Rate emesse ] [ Movimenti / Import estratto ] [ Posta stabile ] |
-| |
-| +-----------------------------------------------------------------------------------------------------------------+ |
-| | TAB: [ Dati generali (Active) ] [ UnitΓ ] [ Palazzine ] [ Assicurazioni ] [ Tabelle ] [ Rate ] [ Gestioni ] ... | |
-| +-----------------------------------------------------------------------------------------------------------------+ |
-| |
-| +------------------------------------------------------+ +-------------------------------------------------------+ |
-| | INFORMAZIONI GENERALI | | INDIRIZZO COMPLETO | |
-| +------------------------------------------------------+ +-------------------------------------------------------+ |
-| | ID Stabile: STAB-0021 | | Indirizzo: Viale delle Milizie 3 | |
-| | Denominazione: SUPERCONDOMINIO MILIZIE 3 | | CittΓ : Roma | |
-| | Codice Fiscale: 80234560589 | | CAP: 00192 | |
-| | CF Amministratore: BRNMHL69M11H501K | | Provincia: RM | |
-| | Riscaldamento: [ Attivo / Disattivo ] | | Indirizzo Completo: Viale delle Milizie 3, 00192 Roma | |
-| +------------------------------------------------------+ +-------------------------------------------------------+ |
-| |
-| +-----------------------------------------------------------------------------------------------------------------+ |
-| | DATI CATASTALI E AMMINISTRATIVI (Da Stabili.mdb e Archivio Consolidato) | |
-| +-----------------------------------------------------------------------------------------------------------------+ |
-| | CATASTO PRINCIPALE | CONTRIBUTI / INPS | STATISTICHE E PALAZZINE | |
-| +------------------------------------------+-------------------------------+--------------------------------------+ |
-| | Codice Comune: H501 (Roma) | Posizione INPS: 8493021948 | N. Condomini: 48 | |
-| | Foglio: 404 | N. Contribuente: 1029482 | N. UnitΓ : 52 | |
-| | Particella: 98 | Codice Destinatario SDI: 00000| N. Palazzine: 4 (A, B, C, D) | |
-| | Sezione: H501 | PEC: milizie3@pec.it | | |
-| +------------------------------------------+-------------------------------+--------------------------------------+ |
-| | RIFERIMENTI CATASTALI AGGIUNTIVI / SECONDARI (Es. Palazzina D o Corpi Separati) [ + Aggiungi Sezione ] | |
-| +------------------------------------------+-------------------------------+--------------------------------------+ |
-| | - Ref #1: Palazzina D (Corpo Separato) | Foglio: 404 | Particella: 99 | Sezione: H501 | Sub: β | |
-| | - Ref #2: Locali Commerciali Seminterrato | Foglio: 404 | Particella: 100 | Sezione: H501 | Sub: β | |
-| +-----------------------------------------------------------------------------------------------------------------+ |
-+-----------------------------------------------------------------------------------------------------------------------+
++-------------------------------------------------------------------------------------------------------------------+
+| β οΈ MODALITΓ IMPERSONIFICAZIONE ATTIVA: Stai operando come STUDIO TORDINI CECILIA (ID #13) [ β©οΈ TORNA A SUPER ADMIN ]|
++-------------------------------------------------------------------------------------------------------------------+
+```
+
+---
+
+## 1. TAB 1: π’ ELENCO STABILI CONDOMINIALI
+
+```text
++-------------------------------------------------------------------------------------------------------------------+
+| NETGESCON - CENTRO STELLA SYSTEM MANAGEMENT [SuperAdmin: Michele] |
++-------------------------------------------------------------------------------------------------------------------+
+| PATH: Home > Condomini > Gestione Stabili |
++-------------------------------------------------------------------------------------------------------------------+
+| BARRA PULSANTINI ICONICI COMPATTI (SENZA SCROLL ORIZZONTALE): |
+| [ π’ Elenco ] [ βοΈ Modifica (#15) ] [ ποΈ Catasto ] [ π¦ Conti & Casse ] [ π Matrice ACL ] |
++-------------------------------------------------------------------------------------------------------------------+
+| |
+| [ + NUOVO STABILE ] [ π SYNC DA STABILI.MDB ] [ π Cerca per Codice, Denominazione, Codice Fiscale... ] |
+| |
+| +------+----------------------------------------+---------------+--------------------------------+----------------+
+| | COD. | DENOMINAZIONE STABILE CONDOMINIALE | CODICE FISCALE| BANCA PRINCIPALE & IBAN | CASSE |
+| +------+----------------------------------------+---------------+--------------------------------+----------------+
+| | 0010 | CATONE 34 - GERMANICO 85 - GRACCHI 32 | 80017140585 | ISTITUTO SAN PAOLO | [CCB] [CCP] |
+| | | | | IT26Z0306905077100000013753 | [CON] [CAG] |
+| | 0013 | OTTAVIANO 105 - GIULIO CESARE 171 | 80212560587 | BANCO BPM | [CON] |
+| | | | | IT88A0503403214000000000707 | |
+| | 0016 | GERMANICO 96 | 80115200588 | BANCA DEL FUCINO | [CCB] [CCP] |
+| | | | | IT48W0312403203000000233378 | [CON] |
+| | 0021 | SUPERCONDOMINIO MILIZIE 3 | 97487690584 | UNICREDIT | [CCB] [CON] |
+| | | | | IT30Q0200805170000104951005 | |
+| +------+----------------------------------------+---------------+--------------------------------+----------------+
+| Mostrati 16 di 16 stabili censiti gestiti dallo studio |
++-------------------------------------------------------------------------------------------------------------------+
+```
+
+---
+
+## 2. TAB 2: βοΈ SCHEDA DETTAGLIO & EDITING INLINE STABILE (#0010 CATONE 34)
+
+```text
++-------------------------------------------------------------------------------------------------------------------+
+| DETTAGLIO ED EDITING SCHEDA STABILE CONDOMINIALE (#0010 CATONE 34 - GERMANICO 85 - GRACCHI 32) |
++-------------------------------------------------------------------------------------------------------------------+
+| [ Codice Stabile: 0010 ] [ Codice Fiscale: 80017140585 ] |
+| [ Denominazione: CATONE 34 - GERMANICO 85 - GRACCHI 32 ] |
+| [ Indirizzo: VIA CATONE 34 ] [ CittΓ : ROMA ] [ CAP: 00192 ] [ PR: RM ] |
+| [ Num. UnitΓ Immobiliari: 48 ] [ Num. Scale: 3 ] [ Anno Gestione Attivo: 2024 ] |
+| |
+| BANCA PRINCIPALE E COORDINATE BANCARIE: |
+| β’ Istituto Bancario: ISTITUTO SAN PAOLO |
+| β’ IBAN Principale: IT26Z0306905077100000013753 |
+| |
+| TABELLA ANAGR_CASSE AGGANCIATE: |
+| β’ [CCB] Conto Corrente Bancario (Saldo: 0.00 EUR) |
+| β’ [CCP] C corrente Postale n. 50581008 (Saldo: -2861.24 EUR) |
+| β’ [CON] Cassa Contanti (Saldo: 0.00 EUR) |
+| |
+| [ SALVA SCHEDA STABILE ] [ ANNULLA ] [ ποΈ APRI CATASTO STABILE ] |
++-------------------------------------------------------------------------------------------------------------------+
```