GESPASSW - Gestione Password¶
Sorgente: cbl/gespassw.cbl | Tipo: Programma interattivo GUI con griglia (elenco a sola visualizzazione con toggle attivazione) | Program-ID: GESPASSW
Menu:
- Sistema > Configurazione > Gestione Password
Scopo¶
Gestisce, in un'unica maschera, l'attivazione/disattivazione delle password collegate a determinate funzioni sensibili del gestionale (sblocco prezzo minimo, superamento fido, modifica fido su cliente, gestione contatti, sblocco giacenza) e la password di accesso al portale Soprasteria.
Ogni riga della griglia rappresenta una funzione protetta da password. Il flag "Attiva" indica se la relativa configurazione contiene attualmente una password valorizzata. L'operatore puo':
- attivare la password (impostarla per la prima volta) o cancellarla, agendo sulla colonna del flag attivazione: il programma invoca la subroutine generalizzata COGS10 in modalita' "G" (gestione) o "D" (cancella), che si occupa di far digitare/confermare la parola;
- modificare una password gia' attiva tramite il pulsante/tasto F6, che richiama ancora COGS10 in modalita' "G".
Le password vere e proprie non risiedono in questo programma: sono memorizzate dalle rispettive configurazioni. Lo stato "attiva/non attiva" e' derivato leggendo il campo descrizione lunga (euta-descla) del record COGTABEL associato all'id numerico della funzione (id 4, 5, 6, 8, 9); la riga Soprasteria (id 9999) fa eccezione ed e' collegata alla chiave di configurazione RNEWCONF soprasteria-password.
L'elenco delle funzioni protette (id numerico, gruppo e parametro di configurazione) e' fisso e cablato nel paragrafo carica-dati.
Struttura del programma¶
Il programma segue il pattern standard delle maschere Eurocoge basate su griglia di dettaglio con transito (t-grid-det, gestita via GRIDADMN): un file di transito temporaneo alimenta la griglia e-grid-det, e la tabella interna tab-maschera (fino a k-max-ele-tab = 900 elementi) ne e' l'immagine di lavoro. Non e' presente un frame di dettaglio con inserimento libero: le righe sono predefinite, l'operatore agisce solo sui flag/password.
Inizializzazione (apri)¶
z-99-init-program, ctr-abil, rd-azi, open-files; poi x99-confi per leggere la configurazione Soprasteria via RNEWCONF, x-carica-lingua, costruzione del menu contestuale di griglia (build-main-popup-grid-det), caricamento delle bitmap custom e del pulsante F6 Gestione (k-f6). Imposta il titolo maschera "Gestione Password", prepara la griglia (z-prepara-tm-grid, x-trova-col-num-grid-det) e imposta l'ordinamento predefinito sulla colonna gruppo.
Caricamento righe (a-leggi-dati / z-grid-det-crea-transito / carica-dati)¶
carica-dati popola il file di transito con le righe fisse. Per ciascuna funzione imposta descrizione (t-gor-r-des), gruppo di configurazione (t-gor-r-gruppo), parametro (t-gor-r-param) e id numerico (t-gor-r-id); poi legge COGTABEL (rd-cogtabel) con chiave = id: se euta-descla e' valorizzata, marca la riga come attiva (t-gor-r-fl-attiva = "S"). Le righe cablate sono:
- id 4 - "Sblocco prezzo minimo ddt" (gruppo
progcog08c,euta-c027-pwrd-sco); - id 6 - "Superamento fido" (gruppo
progcog08c,euta-c027-pwrd-fido); - id 5 - "Modifica fido su cliente" (gruppo
progcog08c,euta-c027-pwrd-fido-imp); - id 8 - "Gestione contatti" (gruppo
contatti,pwrd-gestione); - id 9 - "Sblocco giacenza" (gruppo
progcogv51,ctr-gia-sblocco-password); - id 9999 - "Accesso al portale Soprasteria" (gruppo
connect,soprasteria-password, gestita via RNEWCONF/COGCNFanziche'COGTABEL).
Griglia (a-grid)¶
Ciclo principale sulla griglia (z-99-accept-grid-det). Gestisce Shift-F4 (personalizzazione griglia GRIDADMN), Shift-F5 (esporta Excel), il menu pop-up di destra (k-pmg-primo..k-pmg-ultimo) e il tasto F6 per la modifica della password sulla riga selezionata.
Toggle attivazione password (x-controlla-tm-r-fl-attiva)¶
Innescato dalla modifica del flag "Attiva" in griglia (per le righe con id diverso da 9999). Legge COGTABEL per capire se la password esiste gia': se esiste, chiede conferma cancellazione e chiama COGS10 con s10-operazione = "D"; se non esiste, chiede conferma attivazione e chiama COGS10 con s10-operazione = "G". Rilegge poi COGTABEL per aggiornare il flag di riga e ridisegna la riga in griglia.
Modifica password attiva (F6)¶
Sul ramo f6 di a-grid: se la riga e' la 9999 esce; se la password non e' attiva avvisa che la modifica non e' abilitata; altrimenti, previa conferma, chiama COGS10 in "G" e riallinea il flag rileggendo COGTABEL.
Password Soprasteria (x-controlla-tm-r-passw)¶
Riservato alla sola riga id 9999. La password Soprasteria e' editabile direttamente nella colonna dedicata della griglia (a differenza delle altre, gestite da COGS10). Alla conferma scrive/riscrive direttamente il record COGCNF (pacchetto F, gruppo connect, parametro soprasteria-password) via rd-cogcnf + wr-cogcnf/rwr-cogcnf.
Tabelle e file¶
| File logico | Chiave / accesso | Descrizione |
|---|---|---|
| FEURTAB | - | Tabella di sistema (aperta via cogfiles.cpy) |
COGTABEL (euta-rec) |
euta-key / euta-cod = id numerico della funzione |
Contiene per ciascun id lo stato password nel campo euta-descla (valorizzato = password presente/attiva) |
COGCNF (cfg-rec) |
pacchetto F, prog connect, param soprasteria-password |
Record di configurazione RNEWCONF che conserva la password Soprasteria (lettura/scrittura diretta) |
| t-grid-det | file di transito temporaneo | Immagine di griglia costruita da carica-dati e distrutta in chiusura |
COPY incluse¶
Working-Storage¶
gespassw.wrk, gespassw.imppredf-wrk, gespassw.tm, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, wgrid.cpy, utilgdad.cpy, utilu20.cpy, utilgesstr.cpy, utilncnf.cpy, utilimppredf.cpy
File section¶
feurtab.fd, gespassw.select, cogfiles.cpy, gespassw.fd (generati da Screen Designer)
Linkage¶
wcont.cpy, utils10.cpy, wcont1.cpy
Procedure Division¶
gespassw.decla, gespassw-01.scr (screen), grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, gespassw.prc, gespassw.imppredf
Le routine di I/O su COGTABEL (rd-cogtabel) e COGCNF (rd-, wr-, rwr-cogcnf) sono incluse tramite la catena di COPY generata (.k01).
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COGS10 | Subroutine generalizzata di gestione password: modalita' G (gestione/impostazione), D (cancella); riceve l'id password in s10-in-cod |
| GRIDADMN | Gestione griglia (Prepara, Svuota-Tutto, personalizzazione colonne Shift-F4) |
| RNEWCONF | Lettura della configurazione Soprasteria (vedi sotto) |
Il programma usa inoltre W$MENU per il menu pop-up di destra sulla griglia. I sottoprogrammi Y* eventualmente presenti nella catena di COPY sono gestori tabella generati dallo Screen Designer.
Configurazioni RNEWCONF¶
Il paragrafo x99-confi legge una sola chiave, per lo stato della password di accesso al portale Soprasteria:
- soprasteria-password - pacchetto
F, gruppoconnect. Il valore letto e' copiato intm-cfg-passworde determina l'attivazione della riga id 9999; la modifica scrive direttamente suCOGCNF.
Le altre password gestite (tramite COGTABEL + COGS10) fanno riferimento alle configurazioni raccolte nella pagina di riepilogo Configurazioni collegate a password:
- id 4 -> euta-c027-pwrd-sco (gruppo
progcog08c) - sblocco prezzo minimo; - id 5 -> euta-c027-pwrd-fido-imp (gruppo
progcog08c) - modifica fido su cliente; - id 6 -> euta-c027-pwrd-fido (gruppo
progcog08c) - superamento fido; - id 8 -> pwrd-gestione (gruppo
contatti) - gestione contatti; - id 9 -> ctr-gia-sblocco-password (gruppo
progcogv51) - sblocco giacenza.
Note tecniche¶
- Righe fisse, non anagrafica libera: l'elenco delle funzioni protette e' cablato in
carica-dati; il programma non consente inserimento/cancellazione di righe, solo attivazione/modifica/cancellazione della password associata a ciascuna riga predefinita. - Stato derivato: l'attivazione di una password non e' un flag proprio ma e' desunto dalla presenza di testo in
euta-descladel recordCOGTABELconeuta-cod= id numerico (o dalla presenza disoprasteria-passwordper la riga 9999). - Riga Soprasteria (id 9999): e' l'unica gestita in modo diverso - password editabile in griglia e persistita direttamente su
COGCNF/RNEWCONF. Gli entry-pointz-grid-det-fl-attiva-be-ep/z-grid-det-passw-be-epdisabilitano rispettivamente la colonna flag per la riga 9999 e la colonna password per tutte le altre righe. - Delega a COGS10: la logica effettiva di richiesta/verifica/salvataggio della parola password e' interamente delegata alla subroutine
COGS10; questo programma ne pilota solo l'invocazione e riflette in griglia lo stato risultante.