Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // Object xxxn100_getusername
- //
- // Type: function
- //
- // Scope: public
- //
- // Syntax: of_setuserinfo ()
- //
- // Arguments:
- // TIPO V/R NOME NOTE
- //
- // Returns: INTEGER
- // 1 OK
- //
- // Purpose:
- // La funzione setta le variabili var_glob.UID, var_glob.PWD e var_glob.UTENTE
- //
- // Log:
- // DATE WHO WHAT
- // -------- ----- -------------------------------------------
- // 15/01/2005 MK versione iniziale
- //
- //////////////////////////////////////////////////////////////////////////////
- xxxn101_crypt luo_crypt
- STRING ls_username, ls_chiave
- int ret_connessione
- Integer li_ret
- String ls_pwd
- // Connessione temporanea al database con utenza funzionale fissa di basso profilo
- // per leggere User e Password funzionali applicative
- // Questo deve essere il solo punto dove si setta!
- IF gs_prod_test = "P" THEN
- // Produzione
- ret_connessione = connessione (sqlca, "AGXA2ZJ", "F8B15PR02YJ05")
- ELSEIF gs_prod_test = "T" THEN
- // System Test
- ret_connessione = connessione (sqlca, "AGXA2Z98", "FUB15ST02AB05")
- ELSEIF gs_prod_test = "S" THEN
- // Sviluppo
- ret_connessione = connessione (sqlca, "AGXA2ZJ", "F8B15PR02YJ05")
- ELSE
- ret_connessione = -1
- END IF
- IF ret_connessione = -1 THEN
- errata_connessione (cnd_gen.cod_err[1], cnd_gen.desc_err[1]) //codice e descrizione errore
- halt close
- ELSEIF ret_connessione = -2 THEN
- halt close
- END IF
- // Legge lo user e la password (criptata) funzionali applicative dalla tabella
- // delle informazioni applicative
- SELECT Upper (C_UTENTE),
- C_PSW
- INTO :var_glob.UID,
- :ls_pwd
- FROM XA2."PB_APP_INFO"
- WHERE TRIM ("S_APPL") = :VAR_GLOB.N_APPL
- USING SQLCA;
- li_ret = trans_proc(sqlca)
- IF li_ret = -1 OR IsNull (var_glob.UID) OR IsNull (ls_pwd) THEN
- //330=Errore nel controllo di definizione dell'utente
- messaggio(VAR_GLOB.N_APPL, "330", "Stop")
- // DISCONNECT;
- halt close
- END IF
- DISCONNECT;
- // Creo lo user object per fare la decrypt della password applicativa
- luo_crypt = CREATE xxxn101_crypt
- // Setta la chiave da passare alla successiva funzione di decrypt
- ls_chiave = luo_crypt.of_chiave (VAR_GLOB.N_APPL)
- // Converte la password da stringa di codici ascii in stringa di caratteri
- ls_pwd= luo_crypt.of_ascii_string (ls_pwd)
- // Esegue la decrypt della password
- var_glob.PWD = luo_crypt.of_decrypt (ls_pwd, ls_chiave)
- // Distrugge lo user object
- DESTROY luo_crypt
- // A.B. 04.06.2010 Verifico nel file CND.INI se è stato impostato l'utente di LOGIN all'applicativo
- ls_username = Upper(ProfileString(VAR_GLOB.N_APPL + ".INI", "Impostazioni Riservate", "ForceUser", ""))
- IF ls_username <> "" THEN
- // nome letto dal file CND.INI
- var_glob.UTENTE = Upper (ls_username)
- ELSEIF of_getusername (ls_username) THEN
- // Se non trovo Invoca la funzione che ritorna il nome dell'utente collegato
- // nome ottenuto correttamente
- // il nome dell'utente collegato è restituito nella variabile ls_username
- var_glob.UTENTE = Upper (ls_username)
- ELSE
- // il nome non è stato ottenuto
- // 331=Impossibile determinare l'utente collegato al sistema: contattare l'amministratore del sistema.
- messaggio (VAR_GLOB.N_APPL, "331", "Stop")
- halt close
- END IF
- Return 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement