Advertisement
Guest User

Untitled

a guest
Jan 8th, 2014
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /////////////////////////////////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  Object      xxxn100_getusername
  4. //
  5. //  Type:           function
  6. //
  7. //  Scope:      public
  8. //
  9. //  Syntax:     of_setuserinfo ()
  10. //
  11. //  Arguments: 
  12. //          TIPO            V/R     NOME                    NOTE
  13. //
  14. //  Returns:    INTEGER
  15. //              1   OK
  16. //
  17. // Purpose:
  18. //              La funzione setta le variabili var_glob.UID, var_glob.PWD e var_glob.UTENTE
  19. //
  20. // Log:
  21. // DATE         WHO WHAT
  22. // --------     -----   -------------------------------------------
  23. // 15/01/2005   MK      versione iniziale    
  24. //
  25. //////////////////////////////////////////////////////////////////////////////
  26.  
  27. xxxn101_crypt   luo_crypt
  28. STRING ls_username, ls_chiave
  29. int ret_connessione
  30. Integer li_ret
  31. String ls_pwd
  32.  
  33. // Connessione temporanea al database con utenza funzionale fissa di basso profilo
  34. // per leggere User e Password funzionali applicative
  35. // Questo deve essere il solo punto dove si setta!
  36. IF gs_prod_test = "P" THEN
  37.     // Produzione
  38.     ret_connessione = connessione (sqlca, "AGXA2ZJ", "F8B15PR02YJ05")
  39. ELSEIF gs_prod_test = "T" THEN
  40.     // System Test
  41.     ret_connessione = connessione (sqlca, "AGXA2Z98", "FUB15ST02AB05")
  42. ELSEIF gs_prod_test = "S" THEN
  43.     // Sviluppo
  44.     ret_connessione = connessione (sqlca, "AGXA2ZJ", "F8B15PR02YJ05")
  45. ELSE
  46.     ret_connessione = -1
  47. END IF
  48.  
  49. IF ret_connessione = -1 THEN
  50.     errata_connessione (cnd_gen.cod_err[1], cnd_gen.desc_err[1]) //codice e descrizione errore
  51.     halt close
  52. ELSEIF ret_connessione = -2 THEN
  53.     halt close
  54. END IF
  55.  
  56. // Legge lo user e la password (criptata) funzionali applicative dalla tabella
  57. // delle informazioni applicative
  58. SELECT Upper (C_UTENTE),
  59.        C_PSW
  60.   INTO :var_glob.UID,
  61.        :ls_pwd
  62.   FROM XA2."PB_APP_INFO"  
  63.  WHERE TRIM ("S_APPL") = :VAR_GLOB.N_APPL  
  64.  USING SQLCA;
  65.  
  66. li_ret =  trans_proc(sqlca)
  67. IF li_ret = -1 OR IsNull (var_glob.UID) OR IsNull (ls_pwd) THEN
  68.     //330=Errore nel controllo di definizione dell'utente
  69.     messaggio(VAR_GLOB.N_APPL, "330", "Stop")
  70. //  DISCONNECT;
  71.     halt close
  72. END IF
  73.  
  74. DISCONNECT;
  75.  
  76. // Creo lo user object per fare la decrypt della password applicativa
  77. luo_crypt = CREATE xxxn101_crypt
  78.  
  79. // Setta la chiave da passare alla successiva funzione di decrypt
  80. ls_chiave = luo_crypt.of_chiave (VAR_GLOB.N_APPL)
  81.  
  82. // Converte la password da stringa di codici ascii in stringa di caratteri
  83. ls_pwd= luo_crypt.of_ascii_string (ls_pwd)
  84.  
  85. // Esegue la decrypt della password
  86. var_glob.PWD = luo_crypt.of_decrypt (ls_pwd, ls_chiave)
  87.  
  88. // Distrugge lo user object
  89. DESTROY luo_crypt
  90.  
  91.  
  92. // A.B. 04.06.2010 Verifico nel file CND.INI se è stato impostato l'utente di LOGIN all'applicativo
  93. ls_username = Upper(ProfileString(VAR_GLOB.N_APPL + ".INI", "Impostazioni Riservate", "ForceUser", ""))
  94.  
  95. IF ls_username <> "" THEN
  96.     // nome letto dal file CND.INI
  97.     var_glob.UTENTE = Upper (ls_username)
  98. ELSEIF of_getusername (ls_username) THEN
  99.     // Se non trovo Invoca la funzione che ritorna il nome dell'utente collegato   
  100.     // nome ottenuto correttamente
  101.     // il nome dell'utente collegato è restituito nella variabile ls_username
  102.     var_glob.UTENTE = Upper (ls_username)
  103. ELSE
  104.     // il nome non è stato ottenuto
  105.     // 331=Impossibile determinare l'utente collegato al sistema: contattare l'amministratore del sistema.
  106.     messaggio (VAR_GLOB.N_APPL, "331", "Stop")
  107.     halt close
  108. END IF
  109.  
  110. Return 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement