fix(tenant): provision canonical per-stabile tenant folder structure (00000013/stabili/0021), add 1-click auto-submit to Adminer dual DB switcher, and complete full 5-tab & 4-tab ASCII wireframes (task-d095b0e23b)

This commit is contained in:
michele 2026-08-28 13:32:15 +02:00
parent 117adf3ff2
commit 5b9f5d265a
3 changed files with 158 additions and 42 deletions

View File

@ -4,7 +4,7 @@
* *
* SECURE WRAPPER FOR ADMINER * SECURE WRAPPER FOR ADMINER
* - Disabled in Production (APP_ENV=production or APP_DEBUG=false) * - Disabled in Production (APP_ENV=production or APP_DEBUG=false)
* - Supports 1-Click Switching between MySQL Staging and PostgreSQL Consolidato * - Supports 1-Click Auto-Login to MySQL Staging and PostgreSQL Consolidato
* - Auto-connects via TCP (127.0.0.1) to avoid Unix Socket Peer Auth failures * - 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 * - Strips and hides credentials from URL query parameters to prevent password leaks
*/ */
@ -54,7 +54,7 @@ function env_get_val($key, $default = '') {
function adminer_object() { function adminer_object() {
class NetGesconAdminerSecurity extends \Adminer\Adminer { class NetGesconAdminerSecurity extends \Adminer\Adminer {
function name() { function name() {
return "NetGescon Database Visualizer (MySQL / PostgreSQL)"; return "NetGescon Database Visualizer";
} }
function credentials() { function credentials() {
@ -80,26 +80,23 @@ function login($login, $password) {
} }
function loginForm() { function loginForm() {
$connection = env_get_val("DB_CONNECTION", "mysql"); $connection = env_get_val("DB_CONNECTION", "mysql");
$defaultDriver = ($connection === "pgsql") ? "pgsql" : "server"; $defaultDriver = ($connection === "pgsql") ? "pgsql" : "server";
$mySqlUser = env_get_val("DB_USERNAME", "netgescon_user"); $mySqlUser = env_get_val("DB_USERNAME", "netgescon_user");
$mySqlPass = env_get_val("DB_PASSWORD", "NetGescon2024!"); $mySqlPass = env_get_val("DB_PASSWORD", "NetGescon2024!");
$dbName = env_get_val("DB_DATABASE", "netgescon"); $dbName = env_get_val("DB_DATABASE", "netgescon");
echo '<div style="background:#0f172a; color:#f8fafc; padding:18px; border-radius:12px; margin-bottom:18px; font-family:sans-serif; font-size:13px; line-height:1.6; border:1px solid #334155; shadow:0 10px 15px -3px rgba(0,0,0,0.3);">'; echo '<div style="background:#0f172a; color:#f8fafc; padding:20px; border-radius:12px; margin-bottom:18px; font-family:sans-serif; font-size:13px; line-height:1.6; border:1px solid #334155; box-shadow:0 10px 15px -3px rgba(0,0,0,0.3);">';
echo '<strong style="color:#38bdf8; font-size:16px;">🔒 NetGescon Secure Dual DB Visualizer</strong><br>'; echo '<strong style="color:#38bdf8; font-size:16px;">🔒 NetGescon Secure Dual DB Visualizer</strong><br>';
echo 'Seleziona il motore di database su cui operare (TCP 127.0.0.1):<br>'; echo 'Clicca su uno dei due pulsanti per accedere all\'istante al Database desiderato su TCP 127.0.0.1:<br><br>';
echo '<div style="margin-top:12px; display:flex; gap:10px; flex-wrap:wrap;">'; echo '<div style="display:flex; gap:12px; flex-wrap:wrap;">';
echo '<button type="button" onclick="selectEngine(\'mysql\')" style="background:#0284c7; color:#ffffff; font-weight:bold; border:none; padding:9px 16px; border-radius:8px; cursor:pointer; font-size:12px;">🐬 SELEZIONA MYSQL STAGING (' . $mySqlUser . ')</button>'; echo '<button type="button" onclick="loginEngine(\'mysql\')" style="background:#0284c7; color:#ffffff; font-weight:bold; border:none; padding:12px 20px; border-radius:8px; cursor:pointer; font-size:13px; shadow:0 4px 6px -1px rgba(0,0,0,0.2);">🐬 1-CLICK LOGIN MYSQL STAGING (' . $mySqlUser . ')</button>';
echo '<button type="button" onclick="selectEngine(\'pgsql\')" style="background:#334155; color:#38bdf8; font-weight:bold; border:1px solid #38bdf8; padding:9px 16px; border-radius:8px; cursor:pointer; font-size:12px;">🐘 SELEZIONA POSTGRESQL (netgescon)</button>'; echo '<button type="button" onclick="loginEngine(\'pgsql\')" style="background:#334155; color:#38bdf8; font-weight:bold; border:2px solid #38bdf8; padding:12px 20px; border-radius:8px; cursor:pointer; font-size:13px; shadow:0 4px 6px -1px rgba(0,0,0,0.2);">🐘 1-CLICK LOGIN POSTGRESQL CONSOLIDATO (netgescon)</button>';
echo '</div>';
echo '<div style="margin-top:12px;">';
echo '<button type="submit" style="background:#16a34a; color:#ffffff; font-weight:bold; border:none; padding:10px 20px; border-radius:8px; cursor:pointer; font-size:13px; shadow:0 4px 6px -1px rgba(0,0,0,0.1);">⚡ ENTRA ADESSO NEL DATABASE SELEZIONATO</button>';
echo '</div>'; echo '</div>';
echo '</div>'; echo '</div>';
echo '<script> echo '<script>
function selectEngine(type) { function loginEngine(type) {
var drv = document.querySelector("select[name=\'auth[driver]\']"); var drv = document.querySelector("select[name=\'auth[driver]\']");
var srv = document.querySelector("input[name=\'auth[server]\']"); var srv = document.querySelector("input[name=\'auth[server]\']");
var usr = document.querySelector("input[name=\'auth[username]\']"); var usr = document.querySelector("input[name=\'auth[username]\']");
@ -119,10 +116,25 @@ function selectEngine(type) {
if (pwd) pwd.value = "' . $mySqlPass . '"; if (pwd) pwd.value = "' . $mySqlPass . '";
if (db) db.value = "' . $dbName . '"; if (db) db.value = "' . $dbName . '";
} }
// Submit automatically
var form = document.querySelector("form");
if (form) {
form.submit();
}
} }
window.addEventListener("DOMContentLoaded", function() { window.addEventListener("DOMContentLoaded", function() {
selectEngine("' . ($defaultDriver === 'pgsql' ? 'pgsql' : 'mysql') . '"); var drv = document.querySelector("select[name=\'auth[driver]\']");
var srv = document.querySelector("input[name=\'auth[server]\']");
var usr = document.querySelector("input[name=\'auth[username]\']");
var pwd = document.querySelector("input[name=\'auth[password]\']");
var db = document.querySelector("input[name=\'auth[db]\']");
if (srv && (!srv.value || srv.value === "localhost")) srv.value = "127.0.0.1";
if (usr && !usr.value) usr.value = "' . $mySqlUser . '";
if (pwd && !pwd.value) pwd.value = "' . $mySqlPass . '";
if (db && !db.value) db.value = "' . $dbName . '";
}); });
</script>'; </script>';
return true; return true;

View File

@ -62,3 +62,42 @@ ## 2. TAB 2: ✏️ SCHEDA DETTAGLIO & EDITING INLINE FORNITORE (#10 TECNOREPAIR
| [ SALVA SCHEDA FORNITORE ] [ ANNULLA ] [ ASSEGNA NUOVO TICKET INTERVENTO ] | | [ SALVA SCHEDA FORNITORE ] [ ANNULLA ] [ ASSEGNA NUOVO TICKET INTERVENTO ] |
+-------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------------------------------------------------------------------+
``` ```
---
## 3. TAB 3: 📄 FATTURE ELETTRONICHE & XML MATCHING FORNITORE
```text
+-------------------------------------------------------------------------------------------------------------------+
| REGISTRO FATTURE ELETTRONICHE XML / SDI - FORNITORE #10 (TECNOREPAIR S.R.L. - P.IVA 01234567890) |
+-------------------------------------------------------------------------------------------------------------------+
| FATTURE ASSEGNATE AUTOMATICAMENTE DA MATCHING P.IVA / C.F. SUGLI STABILI DELLO STUDIO: |
| |
| +------------+------------+----------------------------------------+-----------------+-------------+--------------+
| | N. FATTURA | DATA FATT. | STABILE DESTINATARIO (CESSIONARIO CF) | IMPORTO TOTALE | STATO FE | AZIONI |
| +------------+------------+----------------------------------------+-----------------+-------------+--------------+
| | FE-2024/45 | 15/05/2024 | SUPERCONDOMINIO MILIZIE 3 (97487690584)| € 1,450.00 | Accertata | [👁️ Apri XML]|
| | FE-2024/12 | 10/02/2024 | CATONE 34 - GERMANICO 85 (80017140585) | € 320.00 | Registrata | [👁️ Apri XML]|
| +------------+------------+----------------------------------------+-----------------+-------------+--------------+
| [ 🔄 CARICA NUOVO FILE XML/ZIP ] [ 📄 ESPORTA REGISTRO FATTURE ] |
+-------------------------------------------------------------------------------------------------------------------+
```
---
## 4. TAB 4: 🔑 MATRICE PERMESSI ACL & ACCREDITAMENTO STUDIO
```text
+-------------------------------------------------------------------------------------------------------------------+
| ACCREDITAMENTO E MATRICE VISIBILITÀ FORNITORE - STUDIO #13 (CECILIA TORDINI) |
+-------------------------------------------------------------------------------------------------------------------+
| CONFIGURAZIONE ACCESSO PORTALE FORNITORI PER TECNOREPAIR S.R.L.: |
| |
| • Permesso di Login Portale: [X] Abilitato (Email: info@tecnorepair.it) |
| • Assegnazione Ticket Urgenze: [X] Abilitata per tutti i 16 stabili dello studio |
| • Caricamento Autonomo Fatture XML: [X] Abilitato |
| • Visibilità Storico Pagamenti: [X] Solo fatture del proprio P.IVA |
| |
| [ ✓ SALVA CONFIGURAZIONE ACCREDITAMENTO ] |
+-------------------------------------------------------------------------------------------------------------------+
```

View File

@ -14,54 +14,119 @@ ## 1. TAB 1: 🏢 ELENCO STABILI CONDOMINIALI
```text ```text
+-------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------------------------------------------------------------------+
| NETGESCON - CENTRO STELLA SYSTEM MANAGEMENT [SuperAdmin: Michele] | | NETGESCON - ANAGRAFICA UNIFICATA STABILI CONDOMINIALI [Studio: Cecilia Tordini]|
+-------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------------------------------------------------------------------+
| PATH: Home > Condomini > Gestione Stabili | | PATH: Home > Condomini > Gestione Stabili |
+-------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------------------------------------------------------------------+
| BARRA PULSANTINI ICONICI COMPATTI (SENZA SCROLL ORIZZONTALE): | | BARRA PULSANTINI ICONICI COMPATTI (SENZA SCROLL ORIZZONTALE): |
| [ 🏢 Elenco ] [ ✏️ Modifica (#15) ] [ 🏛️ Catasto ] [ 🏦 Conti & Casse ] [ 🔑 Matrice ACL ] | | [ 🏢 Elenco ] [ ✏️ Modifica (#23) ] [ 🏛️ Catasto ] [ 🏦 Conti & Casse ] [ 🔑 Matrice ACL ] |
+-------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------------------------------------------------------------------+
| | | |
| [ + NUOVO STABILE ] [ 🔄 SYNC DA STABILI.MDB ] [ 🔍 Cerca per Codice, Denominazione, Codice Fiscale... ] | | [ + NUOVO STABILE ] [ 🔄 SYNC DA STABILI.MDB ] [ 🔍 Cerca per Codice, Denominazione, Codice Fiscale... ] |
| | | |
| +------+----------------------------------------+---------------+--------------------------------+----------------+ | +------+----------+----------------------------------------+---------------+-----------------------+--------------+
| | COD. | DENOMINAZIONE STABILE CONDOMINIALE | CODICE FISCALE| BANCA PRINCIPALE & IBAN | CASSE | | | COD. | UNIVOK | DENOMINAZIONE STABILE CONDOMINIALE | CODICE FISCALE| BANCA PRINCIPALE & IBAN| CASSE (MDB) |
| +------+----------------------------------------+---------------+--------------------------------+----------------+ | +------+----------+----------------------------------------+---------------+-----------------------+--------------+
| | 0010 | CATONE 34 - GERMANICO 85 - GRACCHI 32 | 80017140585 | ISTITUTO SAN PAOLO | [CCB] [CCP] | | | 0010 | ST-0010 | CATONE 34 - GERMANICO 85 - GRACCHI 32 | 80017140585 | ISTITUTO SAN PAOLO | [CCB] [CCP] |
| | | | | IT26Z0306905077100000013753 | [CON] [CAG] | | | | | | | IT26Z03069050771000...| [CON] [CAG] |
| | 0013 | OTTAVIANO 105 - GIULIO CESARE 171 | 80212560587 | BANCO BPM | [CON] | | | 0013 | ST-0013 | OTTAVIANO 105 - GIULIO CESARE 171 | 80212560587 | BANCO BPM | [CON] |
| | | | | IT88A0503403214000000000707 | | | | | | | | IT88A0503403214000... | |
| | 0016 | GERMANICO 96 | 80115200588 | BANCA DEL FUCINO | [CCB] [CCP] | | | 0016 | ST-0016 | GERMANICO 96 | 80115200588 | BANCA DEL FUCINO | [CCB] [CCP] |
| | | | | IT48W0312403203000000233378 | [CON] | | | | | | | IT48W0312403203000... | [CON] |
| | 0021 | SUPERCONDOMINIO MILIZIE 3 | 97487690584 | UNICREDIT | [CCB] [CON] | | | 0021 | ST-0021 | SUPERCONDOMINIO MILIZIE 3 | 97487690584 | UNICREDIT CC 104951 | [CCB] [CON] |
| | | | | IT30Q0200805170000104951005 | | | | | | | | IT30Q0200805170000104951005 |
| +------+----------------------------------------+---------------+--------------------------------+----------------+ | +------+----------+----------------------------------------+---------------+-----------------------+--------------+
| Mostrati 16 di 16 stabili censiti gestiti dallo studio | | Mostrati 16 di 16 stabili censiti gestiti dallo studio |
+-------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------------------------------------------------------------------+
``` ```
--- ---
## 2. TAB 2: ✏️ SCHEDA DETTAGLIO & EDITING INLINE STABILE (#0010 CATONE 34) ## 2. TAB 2: ✏️ SCHEDA DETTAGLIO & EDITING INLINE STABILE (#0021 SUPERCONDOMINIO MILIZIE 3)
```text ```text
+-------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------------------------------------------------------------------+
| DETTAGLIO ED EDITING SCHEDA STABILE CONDOMINIALE (#0010 CATONE 34 - GERMANICO 85 - GRACCHI 32) | | SCHEDA DETTAGLIO: SUPERCONDOMINIO MILIZIE 3 (COD. 0021 / ST-0021) |
+-------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------------------------------------------------------------------+
| [ Codice Stabile: 0010 ] [ Codice Fiscale: 80017140585 ] | | [ Codice Stabile: 0021 ] [ Codice Univoco: ST-0021 ] |
| [ Denominazione: CATONE 34 - GERMANICO 85 - GRACCHI 32 ] | | [ Denominazione: SUPERCONDOMINIO MILIZIE 3 ] |
| [ Indirizzo: VIA CATONE 34 ] [ Città: ROMA ] [ CAP: 00192 ] [ PR: RM ] | | [ Codice Fiscale: 97487690584 ] [ Partita IVA: 97487690584 ] |
| [ Num. Unità Immobiliari: 48 ] [ Num. Scale: 3 ] [ Anno Gestione Attivo: 2024 ] | | [ Indirizzo: VIALE DELLE MILIZIE 3 ] [ Città: ROMA ] [ CAP: 00192 ] [ PR: RM ] |
| [ Num. Unità Immobiliari: 32 ] [ Num. Scale: 2 ] [ Anno Gestione Attivo: 2024 ] |
| | | |
| BANCA PRINCIPALE E COORDINATE BANCARIE: | | PERCORSI CANONICI ARCHIVIO TENANT DISCO (PROVISIONING ID #13): |
| • Istituto Bancario: ISTITUTO SAN PAOLO | | • Radice Stabile: storage/app/private/amministratori/00000013/stabili/0021/ |
| • IBAN Principale: IT26Z0306905077100000013753 | | • Documenti: storage/app/private/amministratori/00000013/stabili/0021/documenti/ |
| • Fatture XML: storage/app/private/amministratori/00000013/stabili/0021/fatture_elettroniche/estratte/ |
| • Database Stabile:storage/app/private/amministratori/00000013/stabili/0021/database/generale_stabile.mdb |
| | | |
| TABELLA ANAGR_CASSE AGGANCIATE: | | [ SALVA SCHEDA STABILE ] [ ANNULLA ] [ 🏛️ APRI CATASTO STABILE ] [ 📄 VISUALIZZA FATTURE FE ] |
| • [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 ] |
## 3. TAB 3: 🏛️ CATASTO, UNITÀ IMMOBILIARI & COMPROPRIETÀ
```text
+-------------------------------------------------------------------------------------------------------------------+
| DATI CATASTALI ED ELENCO UNITÀ IMMOBILIARI - STABILE #0021 (SUPERCONDOMINIO MILIZIE 3) |
+-------------------------------------------------------------------------------------------------------------------+
| COMPRENSORIO CATASTALE: Comune di Roma (H501) | Foglio: 450 | Particella: 120 | Sezione: Urbana |
| |
| +------+---------+-------+-------+----------+----------------------------+-----------------------+----------------+
| | SUB. | PIANO | SCALA | CAT. | RENDITA | PROPRIETARIO CANONICO | QUOTA DIRITTO REALE | STATO UNITÀ |
| +------+---------+-------+-------+----------+----------------------------+-----------------------+----------------+
| | 101 | T | A | A/2 | € 1.450 | BONIFICA BENEDETTO | Proprietà 100% | Attivo |
| | 102 | 1 | A | A/2 | € 1.520 | ROSSI MARIO / BIANCHI ANNA | Comproprietà 50%/50% | Attivo |
| | 103 | 1 | B | A/3 | € 1.100 | VERDI LUIGI (Nudo Prop.) | Usufrutto Neri Maria | Attivo |
| +------+---------+-------+-------+----------+----------------------------+-----------------------+----------------+
| [ + AGGIUNGI UNITÀ ] [ 📄 ESPORTA CERTIFICATO CATASTALE ] [ 🔄 BONIFICA DUPLICATI ANAGRAFICI ] |
+-------------------------------------------------------------------------------------------------------------------+
```
---
## 4. TAB 4: 🏦 CONTI CORRENTI BANCARI, POSTALI & ANAGR_CASSE
```text
+-------------------------------------------------------------------------------------------------------------------+
| COORDINATE BANCARIE E TABELLA ANAGR_CASSE - STABILE #0021 (SUPERCONDOMINIO MILIZIE 3) |
+-------------------------------------------------------------------------------------------------------------------+
| CONTO PRINCIPALE ACCREDITATO: |
| • Istituto Bancario: UNICREDIT S.P.A. |
| • IBAN Principale: IT30Q0200805170000104951005 (BIC: UNCRITM1113) |
| • Numero Conto Corrente: 000104951005 |
| |
| REGISTRI E CASSE DA GENERALE_STABILE.MDB (TABELLA ANAGR_CASSE): |
| +----+--------+---------------------------------------+------------------------+----------------------------------+
| | ID | CODICE | DESCRIZIONE REGISTRO CASSA | SALDO INIZIALE EURO | TIPO RIGA (MDB) |
| +----+--------+---------------------------------------+------------------------+----------------------------------+
| | 1 | CON | Cassa contanti | € 0.00 | Riga dati |
| | 54 | CCB | UNICREDIT CC N.000104951005 40.634,14 | € 140,701.02 | Riga dati |
| | 55 | CDL | CASSA DE LEO | € 0.00 | Riga dati |
| +----+--------+---------------------------------------+------------------------+----------------------------------+
| [ + AGGIUNGI CASSA/CONTO ] [ 💳 SINCRO MOVIMENTI CBI/CAMT ] [ 📄 RICONCILIAZIONE ESTRATTO CONTO ] |
+-------------------------------------------------------------------------------------------------------------------+
```
---
## 5. TAB 5: 🔑 MATRICE PERMESSI ACL & VISIBILITÀ STABILE
```text
+-------------------------------------------------------------------------------------------------------------------+
| CONFIGURAZIONE MATRICE ACL E VISIBILITÀ MENÙ - STABILE #0021 (SUPERCONDOMINIO MILIZIE 3) |
+-------------------------------------------------------------------------------------------------------------------+
| DEFINIZIONE ACCESSI E PRIVILEGI PER GLI OPERATORI DI STUDIO: |
| |
| +----------------------------------+-----------------+-------------------+---------------------+------------------+
| | RUOLO OPERATIVO STUDIO | LETTURA SCHEDA | MODIFICA CONTABIL.| GESTIONE DOCUMENTI | SCARICO FE XML |
| +----------------------------------+-----------------+-------------------+---------------------+------------------+
| | Amministratore (Cecilia Tordini) | [X] Abilitato | [X] Abilitato | [X] Abilitato | [X] Abilitato |
| | Collaboratore Contabile | [X] Abilitato | [X] Abilitato | [X] Abilitato | [ ] Disabilitato |
| | Fornitore Manutentore | [X] Solo Ticket | [ ] Disabilitato | [ ] Disabilitato | [ ] Disabilitato |
| +----------------------------------+-----------------+-------------------+---------------------+------------------+
| [ ✓ SALVA MATRICE PERMESSI STABILE ] |
+-------------------------------------------------------------------------------------------------------------------+ +-------------------------------------------------------------------------------------------------------------------+
``` ```