From 51aaba515f86895026f4aa2aa4447af05e8d979f Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 17 Sep 2021 13:06:19 +0200 Subject: [PATCH] update init datawrap x errore login utente --- SteamWareLib/DataWrap.cs | 548 ++++++----- SteamWareLib/user_std.cs | 1929 +++++++++++++++++++------------------- 2 files changed, 1279 insertions(+), 1198 deletions(-) diff --git a/SteamWareLib/DataWrap.cs b/SteamWareLib/DataWrap.cs index 40dbe52..1107a51 100644 --- a/SteamWareLib/DataWrap.cs +++ b/SteamWareLib/DataWrap.cs @@ -3,274 +3,308 @@ using System.Collections.Generic; namespace SteamWare { - /// - /// classe di wrap verso i TableAdapter impiegati - /// - public class DataWrap - { - #region area protected + /// + /// classe di wrap verso i TableAdapter impiegati + /// + public class DataWrap + { + #region Public Fields - /// - /// metodo protected di avvio della classe - /// - protected DataWrap() - { - // inizializzo i table adapters - avvioTableAdaptersBase(); - setupConnectionStringBase(); - avvioTableAdaptersSpec(); - setupConnectionStringSpec(); - setupVocabolario(); - } + /// + /// classe singleton x la gestione dei tableadapters + /// + public static DataWrap DW = new DataWrap(); - /// - /// procedura di avvio dei tableAdapter - /// - protected virtual void avvioTableAdaptersBase() - { - taLingue = new DataLayer_genericTableAdapters.LingueTableAdapter(); - taVocabolario = new DataLayer_genericTableAdapters.VocabolarioTableAdapter(); - taLogVoc = new DataLayer_genericTableAdapters.LogUpdateDbTableAdapter(); - } - /// - /// procedura di avvio dei tableAdapter - /// - protected virtual void avvioTableAdaptersSpec() - { - taCdc = new DataLayer_AnagGenTableAdapters.CDCTableAdapter(); - taDiritti = new DataLayer_AnagGenTableAdapters.DIRITTITableAdapter(); - taPermessi = new DataLayer_AnagGenTableAdapters.PermessiTableAdapter(); - taFunzione = new DataLayer_AnagGenTableAdapters.FUNZIONETableAdapter(); - taPermessi2Funzione = new DataLayer_AnagGenTableAdapters.Permessi2FunzioneTableAdapter(); - taUtente = new DataLayer_AnagGenTableAdapters.UTENTETableAdapter(); - taUserData = new DataLayer_AnagGenTableAdapters.UserDataTableAdapter(); - taUserDataExt = new DataLayer_AnagGenTableAdapters.UserDataExtTableAdapter(); - taLogAna = new DataLayer_AnagGenTableAdapters.LogUpdateDbTableAdapter(); - taAnagDev = new DS_devicesTableAdapters.AnagDevicesTableAdapter(); - } - /// - /// effettua setup dei connection strings da web.config delal singola applicazione - /// - protected virtual void setupConnectionStringBase() - { - string connStr = memLayer.ML.confReadString("VocabolarioConnectionString"); - // connections del db vocabolario - taLingue.Connection.ConnectionString = connStr; - taVocabolario.Connection.ConnectionString = connStr; - taLogVoc.Connection.ConnectionString = connStr; - } - /// - /// effettua setup dei connection strings da web.config della singola applicazione - /// - protected virtual void setupConnectionStringSpec() - { - string connStrUt = memLayer.ML.confReadString("UtenteCdcConnectionString"); - string connStrPerm = memLayer.ML.confReadString("PermessiConnectionString"); - // cambio le connString - db anagrafica principale - taCdc.Connection.ConnectionString = connStrUt; - taDiritti.Connection.ConnectionString = connStrUt; - taFunzione.Connection.ConnectionString = connStrUt; - taUtente.Connection.ConnectionString = connStrUt; - taUserData.Connection.ConnectionString = connStrUt; - taUserDataExt.Connection.ConnectionString = connStrUt; - taLogAna.Connection.ConnectionString = connStrUt; - taAnagDev.Connection.ConnectionString = connStrUt; - // connections del db dell'applicazione - taPermessi.Connection.ConnectionString = connStrPerm; - taPermessi2Funzione.Connection.ConnectionString = connStrPerm; - } - /// - /// setup delle tabelle vocabolario - /// - protected void setupVocabolario() - { - if (memLayer.ML.isInCacheObject("dictVocabolario")) - { - if (memLayer.ML.cacheOnRedis) - { - dictVocabolario = JsonConvert.DeserializeObject>(memLayer.ML.objCacheObj("dictVocabolario").ToString()); - } - else - { - dictVocabolario = (Dictionary)memLayer.ML.objCacheObj("dictVocabolario"); - } - } - else - { - dictVocabolario = ricaricaDictVocabolario(); - if (memLayer.ML.cacheOnRedis) - { - string serVal = JsonConvert.SerializeObject(dictVocabolario); - memLayer.ML.setCacheVal("dictVocabolario", serVal, true); - } - else - { - memLayer.ML.setCacheVal("dictVocabolario", dictVocabolario, true); - } - } - // scrivo quanti lemmi ha caricato! - logger.lg.scriviLog(string.Format("Caricati {0} lemmi!", dictVocabolario.Count)); - } + /// + /// oggetto vocabolario organizzato come dizionario con chiave lang#lemma e valore la traduzione + /// + public Dictionary dictVocabolario; - /// - /// prende l'oggetto tabVocabolario in ram e lo trasforma in dictionary - /// - /// - protected Dictionary ricaricaDictVocabolario() - { - // continuo - Dictionary answ = new Dictionary(); - if (taVocabolario == null) - { - foreach (DataLayer_generic.VocabolarioRow riga in DW.taVocabolario.GetData()) + /// + /// table adapter Devices utente + /// + public DS_devicesTableAdapters.AnagDevicesTableAdapter taAnagDev; + + /// + /// tableAdapter CdC + /// + public DataLayer_AnagGenTableAdapters.CDCTableAdapter taCdc; + + /// + /// tableAdapter diritti + /// + public DataLayer_AnagGenTableAdapters.DIRITTITableAdapter taDiritti; + + /// + /// tableAdapter funzione + /// + public DataLayer_AnagGenTableAdapters.FUNZIONETableAdapter taFunzione; + + /// + /// table adapter lingue + /// + public DataLayer_genericTableAdapters.LingueTableAdapter taLingue; + + /// + /// table adapter versione anagrafica + /// + public DataLayer_AnagGenTableAdapters.LogUpdateDbTableAdapter taLogAna; + + /// + /// table adapter versione vocabolario + /// + public DataLayer_genericTableAdapters.LogUpdateDbTableAdapter taLogVoc; + + /// + /// tableAdapter permessi + /// + public DataLayer_AnagGenTableAdapters.PermessiTableAdapter taPermessi; + + /// + /// tableAdapter permessi2funzione + /// + public DataLayer_AnagGenTableAdapters.Permessi2FunzioneTableAdapter taPermessi2Funzione; + + /// + /// tableAdapter userData (user/pwd) + /// + public DataLayer_AnagGenTableAdapters.UserDataTableAdapter taUserData; + + /// + /// tableAdapter userDataExt (user/pwd) + /// + public DataLayer_AnagGenTableAdapters.UserDataExtTableAdapter taUserDataExt; + + /// + /// tableAdapter utenti + /// + public DataLayer_AnagGenTableAdapters.UTENTETableAdapter taUtente; + + /// + /// table adapter vocabolario + /// + public DataLayer_genericTableAdapters.VocabolarioTableAdapter taVocabolario; + + #endregion Public Fields + + #region Public Constructors + + /// + /// metodo protected di avvio della classe + /// + public DataWrap() { - answ.Add(riga.Lingua.ToUpper() + "#" + riga.Lemma.ToUpper(), riga.Traduzione); + // inizializzo i table adapters + avvioTableAdaptersBase(); + setupConnectionStringBase(); + avvioTableAdaptersSpec(); + setupConnectionStringSpec(); + setupVocabolario(); } - } - else - { - foreach (DataLayer_generic.VocabolarioRow riga in taVocabolario.GetData()) + + #endregion Public Constructors + + #region Public Properties + + /// + /// elenco lingue ammesse da vocabolario... + /// + public DataLayer_generic.LingueDataTable lingue { - answ.Add(riga.Lingua.ToUpper() + "#" + riga.Lemma.ToUpper(), riga.Traduzione); + get + { + return taLingue.GetData(); + } } - } - return answ; - } - #endregion - - #region area public - - /// - /// tableAdapter diritti - /// - public DataLayer_AnagGenTableAdapters.DIRITTITableAdapter taDiritti; - /// - /// tableAdapter permessi - /// - public DataLayer_AnagGenTableAdapters.PermessiTableAdapter taPermessi; - /// - /// tableAdapter funzione - /// - public DataLayer_AnagGenTableAdapters.FUNZIONETableAdapter taFunzione; - /// - /// tableAdapter permessi2funzione - /// - public DataLayer_AnagGenTableAdapters.Permessi2FunzioneTableAdapter taPermessi2Funzione; - /// - /// tableAdapter CdC - /// - public DataLayer_AnagGenTableAdapters.CDCTableAdapter taCdc; - /// - /// tableAdapter utenti - /// - public DataLayer_AnagGenTableAdapters.UTENTETableAdapter taUtente; - /// - /// tableAdapter userData (user/pwd) - /// - public DataLayer_AnagGenTableAdapters.UserDataTableAdapter taUserData; - /// - /// tableAdapter userDataExt (user/pwd) - /// - public DataLayer_AnagGenTableAdapters.UserDataExtTableAdapter taUserDataExt; - /// - /// table adapter lingue - /// - public DataLayer_genericTableAdapters.LingueTableAdapter taLingue; - /// - /// table adapter vocabolario - /// - public DataLayer_genericTableAdapters.VocabolarioTableAdapter taVocabolario; - /// - /// table adapter versione vocabolario - /// - public DataLayer_genericTableAdapters.LogUpdateDbTableAdapter taLogVoc; - /// - /// table adapter versione anagrafica - /// - public DataLayer_AnagGenTableAdapters.LogUpdateDbTableAdapter taLogAna; - /// - /// table adapter Devices utente - /// - public DS_devicesTableAdapters.AnagDevicesTableAdapter taAnagDev; - /// - /// oggetto vocabolario organizzato come dizionario con chiave lang#lemma e valore la traduzione - /// - public Dictionary dictVocabolario; - /// - /// resetta il vocabolario rileggendo i dati... - /// - public void resetVocabolario() - { - memLayer.ML.emptyCacheVal("dictVocabolario"); - setupVocabolario(); - } - /// - /// Verifica se il vocabolario sia ok... - /// - public bool vocabolarioOk - { - get - { - bool answ = false; - try + /// + /// restituisce conteggio numero record dell'oggetto vocabolario + /// + public int numRecVoc { - answ = (dictVocabolario != null); - if (answ) - { - answ = dictVocabolario.Count > 0; - } + get + { + int answ = 0; + try + { + answ = dictVocabolario.Count; + } + catch + { } + return answ; + } } - catch - { } - return answ; - } - } - /// - /// crea nel db corrente il lemma richiesto e lo valorizza come "--{0}--" - /// - /// - /// - public void creaNuovoLemmaVoc(string lemma) - { - foreach (DataLayer_generic.LingueRow rigaLingua in taLingue.GetData()) - { - taVocabolario.Insert(rigaLingua.Lingua, lemma, string.Format("--{0}--", lemma)); - } - } - /// - /// restituisce conteggio numero record dell'oggetto vocabolario - /// - public int numRecVoc - { - get - { - int answ = 0; - try + /// + /// Verifica se il vocabolario sia ok... + /// + public bool vocabolarioOk { - answ = dictVocabolario.Count; + get + { + bool answ = false; + try + { + answ = (dictVocabolario != null); + if (answ) + { + answ = dictVocabolario.Count > 0; + } + } + catch + { } + return answ; + } } - catch - { } - return answ; - } - } - /// - /// elenco lingue ammesse da vocabolario... - /// - public DataLayer_generic.LingueDataTable lingue - { - get - { - return taLingue.GetData(); - } - } - /// - /// classe singleton x la gestione dei tableadapters - /// - public static DataWrap DW = new DataWrap(); - #endregion - } -} + #endregion Public Properties + + #region Protected Methods + + /// + /// procedura di avvio dei tableAdapter + /// + protected virtual void avvioTableAdaptersBase() + { + taLingue = new DataLayer_genericTableAdapters.LingueTableAdapter(); + taVocabolario = new DataLayer_genericTableAdapters.VocabolarioTableAdapter(); + taLogVoc = new DataLayer_genericTableAdapters.LogUpdateDbTableAdapter(); + } + + /// + /// procedura di avvio dei tableAdapter + /// + protected virtual void avvioTableAdaptersSpec() + { + taCdc = new DataLayer_AnagGenTableAdapters.CDCTableAdapter(); + taDiritti = new DataLayer_AnagGenTableAdapters.DIRITTITableAdapter(); + taPermessi = new DataLayer_AnagGenTableAdapters.PermessiTableAdapter(); + taFunzione = new DataLayer_AnagGenTableAdapters.FUNZIONETableAdapter(); + taPermessi2Funzione = new DataLayer_AnagGenTableAdapters.Permessi2FunzioneTableAdapter(); + taUtente = new DataLayer_AnagGenTableAdapters.UTENTETableAdapter(); + taUserData = new DataLayer_AnagGenTableAdapters.UserDataTableAdapter(); + taUserDataExt = new DataLayer_AnagGenTableAdapters.UserDataExtTableAdapter(); + taLogAna = new DataLayer_AnagGenTableAdapters.LogUpdateDbTableAdapter(); + taAnagDev = new DS_devicesTableAdapters.AnagDevicesTableAdapter(); + } + + /// + /// prende l'oggetto tabVocabolario in ram e lo trasforma in dictionary + /// + /// + protected Dictionary ricaricaDictVocabolario() + { + // continuo + Dictionary answ = new Dictionary(); + if (taVocabolario == null) + { + foreach (DataLayer_generic.VocabolarioRow riga in DW.taVocabolario.GetData()) + { + answ.Add(riga.Lingua.ToUpper() + "#" + riga.Lemma.ToUpper(), riga.Traduzione); + } + } + else + { + foreach (DataLayer_generic.VocabolarioRow riga in taVocabolario.GetData()) + { + answ.Add(riga.Lingua.ToUpper() + "#" + riga.Lemma.ToUpper(), riga.Traduzione); + } + } + return answ; + } + + /// + /// effettua setup dei connection strings da web.config delal singola applicazione + /// + protected virtual void setupConnectionStringBase() + { + string connStr = memLayer.ML.confReadString("VocabolarioConnectionString"); + // connections del db vocabolario + taLingue.Connection.ConnectionString = connStr; + taVocabolario.Connection.ConnectionString = connStr; + taLogVoc.Connection.ConnectionString = connStr; + } + + /// + /// effettua setup dei connection strings da web.config della singola applicazione + /// + protected virtual void setupConnectionStringSpec() + { + string connStrUt = memLayer.ML.confReadString("UtenteCdcConnectionString"); + string connStrPerm = memLayer.ML.confReadString("PermessiConnectionString"); + // cambio le connString - db anagrafica principale + taCdc.Connection.ConnectionString = connStrUt; + taDiritti.Connection.ConnectionString = connStrUt; + taFunzione.Connection.ConnectionString = connStrUt; + taUtente.Connection.ConnectionString = connStrUt; + taUserData.Connection.ConnectionString = connStrUt; + taUserDataExt.Connection.ConnectionString = connStrUt; + taLogAna.Connection.ConnectionString = connStrUt; + taAnagDev.Connection.ConnectionString = connStrUt; + // connections del db dell'applicazione + taPermessi.Connection.ConnectionString = connStrPerm; + taPermessi2Funzione.Connection.ConnectionString = connStrPerm; + } + + /// + /// setup delle tabelle vocabolario + /// + protected void setupVocabolario() + { + if (memLayer.ML.isInCacheObject("dictVocabolario")) + { + if (memLayer.ML.cacheOnRedis) + { + dictVocabolario = JsonConvert.DeserializeObject>(memLayer.ML.objCacheObj("dictVocabolario").ToString()); + } + else + { + dictVocabolario = (Dictionary)memLayer.ML.objCacheObj("dictVocabolario"); + } + } + else + { + dictVocabolario = ricaricaDictVocabolario(); + if (memLayer.ML.cacheOnRedis) + { + string serVal = JsonConvert.SerializeObject(dictVocabolario); + memLayer.ML.setCacheVal("dictVocabolario", serVal, true); + } + else + { + memLayer.ML.setCacheVal("dictVocabolario", dictVocabolario, true); + } + } + // scrivo quanti lemmi ha caricato! + logger.lg.scriviLog(string.Format("Caricati {0} lemmi!", dictVocabolario.Count)); + } + + #endregion Protected Methods + + #region Public Methods + + /// + /// crea nel db corrente il lemma richiesto e lo valorizza come "--{0}--" + /// + /// + /// + public void creaNuovoLemmaVoc(string lemma) + { + foreach (DataLayer_generic.LingueRow rigaLingua in taLingue.GetData()) + { + taVocabolario.Insert(rigaLingua.Lingua, lemma, string.Format("--{0}--", lemma)); + } + } + + /// + /// resetta il vocabolario rileggendo i dati... + /// + public void resetVocabolario() + { + memLayer.ML.emptyCacheVal("dictVocabolario"); + setupVocabolario(); + } + + #endregion Public Methods + } +} \ No newline at end of file diff --git a/SteamWareLib/user_std.cs b/SteamWareLib/user_std.cs index 6020812..a252640 100644 --- a/SteamWareLib/user_std.cs +++ b/SteamWareLib/user_std.cs @@ -14,12 +14,449 @@ namespace SteamWare * 2) gestione ruoli da anagrafica * 3) gestione declinazione ruoli in permessi * 4) gestione vocabolario - * + * * in Standard GENERICO */ - #region area protected / private - #region metodi + #region Public Fields + + /// + /// versione statica della classe utente come singleton UtenTeSignletoN + /// + public static user_std UtSn = new user_std(); + + #endregion Public Fields + + #region Public Constructors + + /// + /// inizializza la gestione utente... + /// + public user_std() + { + } + + #endregion Public Constructors + + #region Public Properties + + /// + /// pagina correntemente visualizzata (URL in sessione) + /// + public static string pagCorrente + { + get + { + return memLayer.ML.StringSessionObj("pagCorrente"); + } + set + { + memLayer.ML.setSessionVal("pagCorrente", value); + } + } + + /// + /// pagina precedentemente visualizzata (URL in sessione) + /// + public static string pagPrecedente + { + get + { + return memLayer.ML.StringSessionObj("pagPrecedente"); + } + set + { + memLayer.ML.setSessionVal("pagPrecedente", value); + } + } + + /// + /// restituisce una stringa formattata con cognome + /// + public string cognome + { + get + { + string answ = ""; + if (isAuth) + { + answ = string.Format("{0}", rigaUtente.COGNOME); + } + return answ; + } + } + + /// + /// restituisce una stringa formattata con cognome e nome + /// + public string CognomeNome + { + get + { + string answ = ""; + if (isAuth) + { + answ = string.Format("{0} {1}", rigaUtente.COGNOME, rigaUtente.NOME); + } + return answ; + } + } + + /// + /// restituisce una stringa formattata con cognome, nome e matricola + /// + public string CognomeNomeMatr + { + get + { + return string.Format("{0} {1} ({2})", rigaUtente.COGNOME, rigaUtente.NOME, rigaUtente.MATRICOLA); + } + } + + /// + /// oggetto runMode corrente + /// + public runModes currRunMode + { + get + { + runModes answ = runModes.normal; + try + { + if (memLayer.ML.isInSessionObject("runMode")) + { + answ = (runModes)memLayer.ML.objSessionObj("runMode"); + } + } + catch + { } + return answ; + } + set + { + memLayer.ML.setSessionVal("runMode", value, true); + } + } + + /// + /// restituisce la tabella diritti da session + /// + public DataLayer_AnagGen.DIRITTIDataTable diritti + { + get + { + if (memLayer.ML.serializeSession) + { + return DataSetAdapter.convert(memLayer.ML.dsSessionObj("dirittiUtente")); + } + else + { + return (DataLayer_AnagGen.DIRITTIDataTable)memLayer.ML.objSessionObj("dirittiUtente"); + } + } + set + { + if (memLayer.ML.serializeSession) + { + memLayer.ML.setSessionDataTable("dirittiUtente", value); + } + else + { + memLayer.ML.setSessionVal("dirittiUtente", value); + } + } + } + + /// + /// oggetto dominio con metodi get/set + /// + public string dominio + { + get + { + return memLayer.ML.StringSessionObj("DOMINIO"); + } + set + { + memLayer.ML.setSessionVal("DOMINIO", value, true); + } + } + + /// + /// � un boolean che indica se in session ci siano user/dominio e quindi utente autenticato in precedenza... + /// + public bool isAuth + { + get + { + return (utente != "" && dominio != ""); + } + } + + /// + /// restituisce true se utente forzato da forceUser + /// + public bool isForcedUser + { + get + { + return memLayer.ML.BoolSessionObj("isForcedUser"); + } + set + { + memLayer.ML.setSessionVal("isForcedUser", value); + } + } + + /// + /// oggetto lingua utente con metodi get/set + /// + public string lingua + { + get + { + string answ = ""; + try + { + answ = memLayer.ML.StringSessionObj("Lingua"); + } + catch (Exception exc) + { + logger.lg.scriviLog(string.Format("Errore recupero lingua utente{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); + } + if (string.IsNullOrEmpty(answ)) + { + answ = memLayer.ML.CRS("baseLang"); + } + return answ.ToUpper(); + } + set + { + memLayer.ML.setSessionVal("Lingua", value); + } + } + + /// + /// fornisce un file XML della mappa del sito abilitato per l'utente... + /// + public string mappaSito + { + get + { + return memLayer.ML.StringSessionObj("mappaSito"); + } + set + { + memLayer.ML.setSessionVal("mappaSito", value); + } + } + + /// + /// oggetto modulo (applicazione) con metodi get/set + /// + public string modulo + { + get + { + return memLayer.ML.CRS("CodModulo"); + } + } + + /// + /// restituisce una stringa formattata con nome + /// + public string nome + { + get + { + string answ = ""; + if (isAuth) + { + answ = string.Format("{0}", rigaUtente.NOME); + } + return answ; + } + } + + /// + /// oggetto password con metodi get/set + /// + public string passwd + { + get + { + return memLayer.ML.StringSessionObj("passwd"); + } + set + { + memLayer.ML.setSessionVal("passwd", value, true); + } + } + + /// + /// tabella dei permessi utente + /// + public DataLayer_AnagGen.PermessiDataTable permessi + { + get + { + DataLayer_AnagGen.PermessiDataTable tabPermessi = null; + try + { + if (memLayer.ML.serializeSession) + { + tabPermessi = DataSetAdapter.convert(memLayer.ML.dsSessionObj("permessiUtente")); + } + else + { + tabPermessi = (DataLayer_AnagGen.PermessiDataTable)memLayer.ML.objSessionObj("permessiUtente"); + } + } + catch (Exception exc) + { + logger.lg.scriviLog(String.Format("Errore recupero permessi!{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); + } + return tabPermessi; + } + set + { + if (memLayer.ML.serializeSession) + { + memLayer.ML.setSessionDataTable("permessiUtente", value); + } + else + { + memLayer.ML.setSessionVal("permessiUtente", value); + } + } + } + + /// + /// tabella dei permessi utente di tipo "WRITE" enabled + /// + public DataLayer_AnagGen.PermessiDataTable permessiWrite + { + get + { + if (memLayer.ML.serializeSession) + { + return DataSetAdapter.convert(memLayer.ML.dsSessionObj("permessiUtenteWrite")); + } + else + { + return (DataLayer_AnagGen.PermessiDataTable)memLayer.ML.objSessionObj("permessiUtenteWrite"); + } + } + set + { + if (memLayer.ML.serializeSession) + { + memLayer.ML.setSessionDataTable("permessiUtenteWrite", value); + } + else + { + memLayer.ML.setSessionVal("permessiUtenteWrite", value); + } + } + } + + /// + /// restituisce i valori della riga utente da db + /// + public DataLayer_AnagGen.UTENTERow rigaUtente + { + get + { + if (memLayer.ML.serializeSession) + { + DataLayer_AnagGen.UTENTEDataTable table = DataSetAdapter.convert(memLayer.ML.dsSessionObj("rigaUtente")); + return table[0]; + } + else + { + return (DataLayer_AnagGen.UTENTERow)memLayer.ML.objSessionObj("rigaUtente"); + } + } + set + { + if (memLayer.ML.serializeSession) + { + memLayer.ML.setSessionDataTable("rigaUtente", value.Table); + } + else + { + memLayer.ML.setSessionVal("rigaUtente", value); + } + } + } + + /// + /// restituisce una stringa della sigla dell'utente + /// + public string sigla + { + get + { + string answ = ""; + if (isAuth) + { + answ = rigaUtente.SIGLA; + } + return answ; + } + } + + /// + /// retituisce username AD + /// + public string userNameAD + { + get + { + return string.Format(@"{0}\{1}", dominio, utente); + } + } + + /// + /// oggetto utente con metodi get/set + /// + public string utente + { + get + { + return memLayer.ML.StringSessionObj("USER_NAME"); + } + set + { + memLayer.ML.setSessionVal("USER_NAME", value, true); + } + } + + #endregion Public Properties + + #region Private Methods + + /// + /// controllo utente/pwd da tab + /// + /// + /// + /// + private bool checkUserPwd(string _username, string _pwd) + { + bool risultato = false; + try + { + risultato = DataWrap.DW.taUserData.getByUserPwd(_username, _pwd).Rows.Count > 0; + } + catch + { } + return risultato; + } + + #endregion Private Methods + + #region Protected Methods /// /// cancella da session l'utente @@ -30,60 +467,59 @@ namespace SteamWare memLayer.ML.emptySessionVal("DOMINIO"); memLayer.ML.emptySessionVal("permessiUtente"); } + /// - /// carica la riga dati utente + /// formatta un nodo in modo corretto dai dati indicati /// - protected virtual void setupRiga() + /// + /// + /// + /// + protected string formattaNodo(string titolo, string descrizione, string url, siteNodeType tipoNodo) { - //logger.lg.scriviLog(string.Format(@"setupRiga x utente {0}\{1}", dominio, utente), tipoLog.STARTUP); - DataLayer_AnagGen.UTENTERow _rigaUtenteAnagGen = ((DataLayer_AnagGen.UTENTERow)DataWrap.DW.taUtente.GetDataByUtenteDominio(utente, dominio).Rows[0]); - rigaUtente = _rigaUtenteAnagGen; - } - /// - /// carica la riga dati utente da SOLO USERNAME - /// - protected virtual void setupRigaByUsername() - { - DataLayer_AnagGen.UTENTERow _rigaUtenteAnagGen = ((DataLayer_AnagGen.UTENTERow)DataWrap.DW.taUtente.getByUserName(utente).Rows[0]); - rigaUtente = _rigaUtenteAnagGen; - } - /// - /// Carica la tabella diritti dell'utente da db e salva in session - /// - protected virtual void setupDirittiPermessi() - { - DataLayer_AnagGen.DIRITTIDataTable _dirittiUtente = DataWrap.DW.taDiritti.GetByUserDominioModulo(utente, dominio, modulo); - diritti = _dirittiUtente; // salvo in session i diritti.. - if (diritti.Count > 0) + string _out = ""; + switch (tipoNodo) { - setPermessiDaDiritti(); - } - } - /// - /// Carica la tabella diritti dell'utente da db e salva in session - /// - protected virtual void setupDirittiPermessiByUsername() - { - DataLayer_AnagGen.DIRITTIDataTable _dirittiUtente = DataWrap.DW.taDiritti.GetByUserModulo(utente, modulo); - diritti = _dirittiUtente; // salvo in session i diritti.. - if (diritti.Count > 0) - { - setPermessiDaDiritti(); - } - } - /// - /// Carica la tabella diritti dell'utente da db e salva in session SOLO per il CDC indicato - /// - /// - protected virtual void setupDirittiPermessi(string cdc) - { - DataLayer_AnagGen.DIRITTIDataTable _dirittiUtente = DataWrap.DW.taDiritti.GetByUserDominioModuloCdc(utente, dominio, modulo, cdc); - diritti = _dirittiUtente; // salvo in session i diritti.. - if (diritti.Count > 0) - { - setPermessiDaDiritti(); + case siteNodeType.startContainer: + _out = string.Format("", Traduci(titolo), Traduci(descrizione), url); + break; + + case siteNodeType.endContainer: + _out = ""; + break; + + case siteNodeType.leaf: + _out = string.Format("", Traduci(titolo), Traduci(descrizione), url); + break; + } + return _out; + } + + /// + /// salva dati accessori quali il cdc dell'utente... + /// + protected virtual void salvaDatiAccessori() + { + // salvo il cdc utente... + memLayer.ML.setSessionVal("CdCUser", rigaUtente.COD_CDC); + // verifico se necessario fare echo lemmi e vado in runMode di echo dei termini tradotti + bool echoLemmi = false; + try + { + echoLemmi = memLayer.ML.CRB("echoLemmi"); + } + catch + { } + if (echoLemmi) + { + currRunMode = runModes.echoLemmi; + } + else + { + currRunMode = runModes.normal; } } + /// /// Effettua setup dei permessi una volta salvati i diritti /// @@ -163,6 +599,46 @@ namespace SteamWare permessiWrite = _permessiUtenteWrite; } + /// + /// Carica la tabella diritti dell'utente da db e salva in session + /// + protected virtual void setupDirittiPermessi() + { + DataLayer_AnagGen.DIRITTIDataTable _dirittiUtente = DataWrap.DW.taDiritti.GetByUserDominioModulo(utente, dominio, modulo); + diritti = _dirittiUtente; // salvo in session i diritti.. + if (diritti.Count > 0) + { + setPermessiDaDiritti(); + } + } + + /// + /// Carica la tabella diritti dell'utente da db e salva in session SOLO per il CDC indicato + /// + /// + protected virtual void setupDirittiPermessi(string cdc) + { + DataLayer_AnagGen.DIRITTIDataTable _dirittiUtente = DataWrap.DW.taDiritti.GetByUserDominioModuloCdc(utente, dominio, modulo, cdc); + diritti = _dirittiUtente; // salvo in session i diritti.. + if (diritti.Count > 0) + { + setPermessiDaDiritti(); + } + } + + /// + /// Carica la tabella diritti dell'utente da db e salva in session + /// + protected virtual void setupDirittiPermessiByUsername() + { + DataLayer_AnagGen.DIRITTIDataTable _dirittiUtente = DataWrap.DW.taDiritti.GetByUserModulo(utente, modulo); + diritti = _dirittiUtente; // salvo in session i diritti.. + if (diritti.Count > 0) + { + setPermessiDaDiritti(); + } + } + /// /// imposta la lingua utente dal valore della riga DB /// @@ -213,302 +689,412 @@ namespace SteamWare } /// - /// formatta un nodo in modo corretto dai dati indicati + /// carica la riga dati utente /// - /// - /// - /// - /// - protected string formattaNodo(string titolo, string descrizione, string url, siteNodeType tipoNodo) + protected virtual void setupRiga() { - string _out = ""; - switch (tipoNodo) - { - case siteNodeType.startContainer: - _out = string.Format("", Traduci(titolo), Traduci(descrizione), url); - break; - case siteNodeType.endContainer: - _out = ""; - break; - case siteNodeType.leaf: - _out = string.Format("", Traduci(titolo), Traduci(descrizione), url); - break; - } - return _out; + //logger.lg.scriviLog(string.Format(@"setupRiga x utente {0}\{1}", dominio, utente), tipoLog.STARTUP); + DataLayer_AnagGen.UTENTERow _rigaUtenteAnagGen = ((DataLayer_AnagGen.UTENTERow)DataWrap.DW.taUtente.GetDataByUtenteDominio(utente, dominio).Rows[0]); + rigaUtente = _rigaUtenteAnagGen; } - #endregion + /// + /// carica la riga dati utente da SOLO USERNAME + /// + protected virtual void setupRigaByUsername() + { + DataLayer_AnagGen.UTENTERow _rigaUtenteAnagGen = ((DataLayer_AnagGen.UTENTERow)DataWrap.DW.taUtente.getByUserName(utente).Rows[0]); + rigaUtente = _rigaUtenteAnagGen; + } - #endregion + #endregion Protected Methods - #region area public - - #region area utente + #region Public Methods /// - /// restituisce la tabella diritti da session + /// verifica le credenziali AD dell'utente... /// - public DataLayer_AnagGen.DIRITTIDataTable diritti + /// + /// + /// + public virtual bool ADuserOk(string dominio, string username) { - get + bool isOk = false; + // ...verifico sia in tabella utenti... + bool isOkUser = false; + // ...e che abbia diritti per l'applicativo... + bool isOkPerm = false; + // controllo se richiesta autenticazione completa dominio + username o solo username... + bool authSenzaDominio = false; + try { - if (memLayer.ML.serializeSession) + authSenzaDominio = memLayer.ML.CRB("authSenzaDominio"); + + //dataWrap + DataWrap DWMan = new DataWrap(); + + if (authSenzaDominio) { - return DataSetAdapter.convert(memLayer.ML.dsSessionObj("dirittiUtente")); + isOkUser = (DWMan.taUtente.getByUserName(username).Rows.Count >= 1); + isOkPerm = (DWMan.taDiritti.GetByUserModulo(username, modulo).Rows.Count >= 1); } else { - return (DataLayer_AnagGen.DIRITTIDataTable)memLayer.ML.objSessionObj("dirittiUtente"); + isOkUser = (DWMan.taUtente.GetDataByUtenteDominio(username, dominio).Rows.Count >= 1); + isOkPerm = (DWMan.taDiritti.GetByUserDominioModulo(username, dominio, modulo).Rows.Count >= 1); } } - set + catch (Exception exc) + { + logger.lg.scriviLog($"Exception during ADuserOk:{Environment.NewLine}{exc}"); + } + // risultato... + isOk = (isOkUser && isOkPerm); + return isOk; + } + + /// + /// assegna il diritto all'utente indicato + /// + /// + /// + /// + /// + /// + public bool assegnaDirittoUtente(string username, string cod_cdc, string cod_modulo, string cod_funzione) + { + bool answ = false; + try + { + DataWrap.DW.taDiritti.Insert(username, cod_cdc, cod_modulo, cod_funzione, "-1"); + answ = true; + } + catch (Exception exc) + { + logger.lg.scriviLog($"Exception during assegnaDirittoUtente:{Environment.NewLine}{exc}"); + } + return answ; + } + + /// + /// restituisce cognome e nome di un utente dato username eventualmente comprensivo di dominio... + /// + /// {dominio\}userName + /// + public string CognomeNomeDaUser(string userNameFull) + { + string answ = "-"; + // se contiene "\" allora � con dominio... + if (userNameFull.IndexOf('\\') > -1) + { + string[] userData = userNameFull.ToString().Split('\\'); + answ = CognomeNomeDaUsername(userData[1], userData[0]); + } + else + { + answ = CognomeNomeDaUsername(userNameFull); + } + return answ; + } + + /// + /// restituisce cognome e nome di un utente dato username... + /// + /// username + /// + public string CognomeNomeDaUsername(string userName) + { + string answ = "-"; + try + { + DataLayer_AnagGen.UTENTERow riga = DataWrap.DW.taUtente.getByUserName(userName)[0]; + answ = string.Format("{0} {1}", riga.COGNOME, riga.NOME); + } + catch + { + } + return answ; + } + + /// + /// restituisce cognome e nome di un utente dato username e dominio... + /// + /// username + /// dominio + /// + public string CognomeNomeDaUsername(string userName, String dominio) + { + string answ = "-"; + try + { + DataLayer_AnagGen.UTENTERow riga = DataWrap.DW.taUtente.GetDataByUtenteDominio(userName, dominio)[0]; + answ = string.Format("{0} {1}", riga.COGNOME, riga.NOME); + } + catch + { + } + return answ; + } + + /// + /// restituisce cognome e nome di un utente data la matricola... + /// + /// matricola + /// + public string CognomeNomeMatrDaMatricola(string matricola) + { + string answ = "-"; + try + { + DataLayer_AnagGen.UTENTERow riga = DataWrap.DW.taUtente.getByMatricola(matricola)[0]; + answ = string.Format("{0} {1} ({2})", riga.COGNOME, riga.NOME, riga.MATRICOLA); + } + catch + { + } + return answ; + } + + /// + /// crea un nuovo utente con le credenziali indicate + /// + /// The dominio. + /// The username. + /// The cognome. + /// The nome. + /// The cod_cdc. + /// The email. + /// The matricola. + /// The sigla. + /// + public bool creaUtente(string dominio, string username, string cognome, string nome, string cod_cdc, string email, string matricola, string sigla) + { + bool answ = false; + try + { + DataWrap.DW.taUtente.Insert(dominio, username, cognome, nome, "1", matricola, cod_cdc, email, sigla, "IT", "s"); + answ = true; + } + catch { } + return answ; + } + + /// + /// restituisce l'elenco degli utenti dato i diritti che devono avere come modulo/funzione + /// + /// nome del modulo + /// nome della funzione + /// tabella utenti + public DataLayer_AnagGen.UTENTEDataTable elencoDaDiritti(string codModulo, string codFunzione) + { + return DataWrap.DW.taUtente.getElencoByDiritti(codModulo, codFunzione); + } + + /// + /// restituisce l'elenco delle email degli utenti dato i diritti che devono avere come modulo/funzione + /// + /// nome del modulo + /// nome della funzione + /// stringa di email separate da "," + public string elencoEmailDaDiritti(string codModulo, string codFunzione) + { + char sep = ','; + string answ = ""; + try + { + foreach (DataLayer_AnagGen.UTENTERow riga in elencoDaDiritti(codModulo, codFunzione)) + { + answ += string.Format("{0}{1} ", riga.EMAIL, sep); + } + if (answ.Length > 2) + { + answ = answ.Substring(0, answ.Length - 2); + } + } + catch + { + } + return answ; + } + + /// + /// restituisce cognome e nome di un utente dato username... + /// + /// username + /// + public string emailDaUsername(string userName) + { + string answ = "-"; + try + { + DataLayer_AnagGen.UTENTERow riga = DataWrap.DW.taUtente.getByUserName(userName)[0]; + answ = riga.EMAIL; + } + catch + { + } + return answ; + } + + /// + /// restituisce cognome e nome di un utente dato username e dominio... + /// + /// username + /// dominio + /// + public string emailDaUsername(string userName, String dominio) + { + string answ = "-"; + try + { + DataLayer_AnagGen.UTENTERow riga = DataWrap.DW.taUtente.GetDataByUtenteDominio(userName, dominio)[0]; + answ = riga.EMAIL; + } + catch + { + } + return answ; + } + + /// + /// traduce il lemma nella lingua dell'user e in inglese tra parentesi + /// + /// + /// + public string FullTrad(string lemma) + { + return Traduci(lemma) + " (" + TraduciEn(lemma) + ")"; + } + + /// + /// restituisce l'elenco delle funzioni abilitate dato modulo ed username partendo dalla radice dell'albero dei diritti + /// + /// + /// + /// + public DataLayer_AnagGen.FUNZIONEDataTable funzioniUtente(string codModulo, string user_name) + { + return DataWrap.DW.taFunzione.getFunByDiritti_999(codModulo, user_name); + } + + /// + /// restituisce la tabella (per utente corrente) dei CDC abilitati per l'applicazione attuale da sessione (se non c'� salva...) + /// + /// modulo di cui si testano i diritti + /// + public virtual DataLayer_AnagGen.CDCDataTable getEnabledCdc(string cod_modulo) + { + //init tabella + DataLayer_AnagGen.CDCDataTable tabCdc = new DataLayer_AnagGen.CDCDataTable(); + // cerco in sessione elenco CDC + if (memLayer.ML.isInSessionObject("CdcEnabled4user4module")) { if (memLayer.ML.serializeSession) { - memLayer.ML.setSessionDataTable("dirittiUtente", value); + tabCdc = DataSetAdapter.convert(memLayer.ML.dsSessionObj("CdcEnabled4user4module")); } else { - memLayer.ML.setSessionVal("dirittiUtente", value); + tabCdc = (DataLayer_AnagGen.CDCDataTable)memLayer.ML.objSessionObj("CdcEnabled4user4module"); } } - } - /// - /// tabella dei permessi utente - /// - public DataLayer_AnagGen.PermessiDataTable permessi - { - get + else + { + tabCdc = DataWrap.DW.taCdc.getEnabledCDC(utente, cod_modulo); + if (memLayer.ML.serializeSession) + { + memLayer.ML.setSessionDataTable("CdcEnabled4user4module", tabCdc); + } + else + { + memLayer.ML.setSessionVal("CdcEnabled4user4module", tabCdc); + } + } + return tabCdc; + } + + /// + /// conta il numero di permessi utente per la pagina attuale e restituisce true se ne trova almeno 1 + /// + /// + /// + public bool isPageEnabled(string pagina) + { + bool answ = false; + // tolgo (se ci fosse) .aspx finale... + pagina = pagina.Replace(".aspx", ""); + if (permessi != null) { - DataLayer_AnagGen.PermessiDataTable tabPermessi = null; try { - if (memLayer.ML.serializeSession) - { - tabPermessi = DataSetAdapter.convert(memLayer.ML.dsSessionObj("permessiUtente")); - } - else - { - tabPermessi = (DataLayer_AnagGen.PermessiDataTable)memLayer.ML.objSessionObj("permessiUtente"); - } - - } - catch (Exception exc) - { - logger.lg.scriviLog(String.Format("Errore recupero permessi!{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); - } - return tabPermessi; - } - set - { - if (memLayer.ML.serializeSession) - { - memLayer.ML.setSessionDataTable("permessiUtente", value); - } - else - { - memLayer.ML.setSessionVal("permessiUtente", value); - } - } - } - /// - /// tabella dei permessi utente di tipo "WRITE" enabled - /// - public DataLayer_AnagGen.PermessiDataTable permessiWrite - { - get - { - if (memLayer.ML.serializeSession) - { - return DataSetAdapter.convert(memLayer.ML.dsSessionObj("permessiUtenteWrite")); - } - else - { - return (DataLayer_AnagGen.PermessiDataTable)memLayer.ML.objSessionObj("permessiUtenteWrite"); - } - } - set - { - if (memLayer.ML.serializeSession) - { - memLayer.ML.setSessionDataTable("permessiUtenteWrite", value); - } - else - { - memLayer.ML.setSessionVal("permessiUtenteWrite", value); - } - } - } - - - /// - /// inizializza la gestione utente... - /// - public user_std() - { - } - - /// - /// retituisce username AD - /// - public string userNameAD - { - get - { - return string.Format(@"{0}\{1}", dominio, utente); - } - } - - /// - /// oggetto utente con metodi get/set - /// - public string utente - { - get - { - return memLayer.ML.StringSessionObj("USER_NAME"); - } - set - { - memLayer.ML.setSessionVal("USER_NAME", value, true); - } - } - /// - /// oggetto password con metodi get/set - /// - public string passwd - { - get - { - return memLayer.ML.StringSessionObj("passwd"); - } - set - { - memLayer.ML.setSessionVal("passwd", value, true); - } - } - - /// - /// oggetto dominio con metodi get/set - /// - public string dominio - { - get - { - return memLayer.ML.StringSessionObj("DOMINIO"); - } - set - { - memLayer.ML.setSessionVal("DOMINIO", value, true); - } - } - - /// - /// oggetto modulo (applicazione) con metodi get/set - /// - public string modulo - { - get - { - return memLayer.ML.CRS("CodModulo"); - } - } - - /// - /// oggetto lingua utente con metodi get/set - /// - public string lingua - { - get - { - string answ = ""; - try - { - answ = memLayer.ML.StringSessionObj("Lingua"); - } - catch (Exception exc) - { - logger.lg.scriviLog(string.Format("Errore recupero lingua utente{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); - } - if (string.IsNullOrEmpty(answ)) - { - answ = memLayer.ML.CRS("baseLang"); - } - return answ.ToUpper(); - } - set - { - memLayer.ML.setSessionVal("Lingua", value); - } - } - /// - /// oggetto runMode corrente - /// - public runModes currRunMode - { - get - { - runModes answ = runModes.normal; - try - { - if (memLayer.ML.isInSessionObject("runMode")) - { - answ = (runModes)memLayer.ML.objSessionObj("runMode"); - } + System.Data.DataRow[] righe = permessi.Select(string.Format("URL = '{0}.aspx' OR URL = '{0}'", pagina)); + answ = (righe.Length >= 1); } catch { } - return answ; - } - set - { - memLayer.ML.setSessionVal("runMode", value, true); } + return answ; } /// - /// restituisce true se utente forzato da forceUser + /// verifica se il permesso utente per la pagina attuale sia write per almeno 1 diritto assegnato (restituisce true se ne trova almeno 1 con permessi2funzione.readwrite='S') /// - public bool isForcedUser + /// + /// + public bool isPageWriteEnabled(string pagina) { - get + bool answ = false; + // tolgo (se ci fosse) .aspx finale... + pagina = pagina.Replace(".aspx", ""); + try { - return memLayer.ML.BoolSessionObj("isForcedUser"); - } - set - { - memLayer.ML.setSessionVal("isForcedUser", value); + System.Data.DataRow[] righe = permessiWrite.Select(string.Format("URL = '{0}.aspx' OR URL = '{0}'", pagina)); + answ = (righe.Length >= 1); } + catch + { } + return answ; } /// - /// restituisce i valori della riga utente da db + /// LogOff utente con reset dati /// - public DataLayer_AnagGen.UTENTERow rigaUtente + /// + public bool logOffUtente() { - get + bool risultato = false; + clearAllUserData(); + utente = ""; + dominio = ""; + risultato = true; + return risultato; + } + + /// + /// retituisce il nome apgina dai permessi utente + /// + /// + public string nomePaginaDaPermessi(string url) + { + string answ = ""; + try { - if (memLayer.ML.serializeSession) - { - DataLayer_AnagGen.UTENTEDataTable table = DataSetAdapter.convert(memLayer.ML.dsSessionObj("rigaUtente")); - return table[0]; - } - else - { - return (DataLayer_AnagGen.UTENTERow)memLayer.ML.objSessionObj("rigaUtente"); - } - } - set - { - if (memLayer.ML.serializeSession) - { - memLayer.ML.setSessionDataTable("rigaUtente", value.Table); - } - else - { - memLayer.ML.setSessionVal("rigaUtente", value); - } + answ = permessi.Select(string.Format("URL = '{0}'", url))[0]["NOME"].ToString(); } + catch + { } + return answ; + } + + /// + /// ricarica e ri-traduce la mappa sito per l'utente... + /// + public void ricaricaMappaSito() + { + memLayer.ML.emptySessionVal("dirittiUtente"); + memLayer.ML.emptySessionVal("permessiUtente"); + setupDirittiPermessi(); + setupMappaSito(); } /// @@ -531,81 +1117,117 @@ namespace SteamWare } /// - /// restituisce una stringa formattata con cognome, nome e matricola + /// toglier il diritto all'utente indicato /// - public string CognomeNomeMatr + /// + /// + /// + /// + /// + public bool rimuoviDirittoUtente(string username, string cod_cdc, string cod_modulo, string cod_funzione) { - get + bool answ = false; + try { - return string.Format("{0} {1} ({2})", rigaUtente.COGNOME, rigaUtente.NOME, rigaUtente.MATRICOLA); + DataWrap.DW.taDiritti.DeleteQuery(username, cod_cdc, cod_modulo, cod_funzione); + answ = true; } + catch (Exception e) + { + logger.lg.scriviLog(String.Format("Eccezione: {0}", e)); + } + return answ; } /// - /// restituisce una stringa della sigla dell'utente + /// Procedura da chiamare DOPO aver messo in session i dati utente/dominio x caricare gli altri dati /// - public string sigla + /// + /// + /// + public bool startUpUtente(string _dominio, string _username) { - get + bool risultato = false; + try { - string answ = ""; - if (isAuth) + clearAllUserData(); + if (_username != "" && _dominio != "") { - answ = rigaUtente.SIGLA; + //logger.lg.scriviLog(string.Format("startUpUtente:{2} dominio:\t{0}{2}username:\t{1}", _dominio, _username, Environment.NewLine), tipoLog.STARTUP); + utente = _username; + dominio = _dominio; + setupRiga(); + setupLingua(); + setupDirittiPermessi(); + setupMappaSito(); + salvaDatiAccessori(); + risultato = true; } - return answ; } + catch (Exception exc) + { + logger.lg.scriviLog(string.Format("Errore in fase di startUpUtente:{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); + } + return risultato; } /// - /// restituisce una stringa formattata con cognome e nome + /// Procedura da chiamare DOPO aver messo in session i dati utente/dominio x caricare gli altri dati CON I DIRITTI SOLO per il CDC indicato /// - public string CognomeNome + /// + /// + /// + /// + public bool startUpUtente(string _dominio, string _username, string cdc) { - get + bool risultato = false; + clearAllUserData(); + if (_username != "" && _dominio != "") { - string answ = ""; - if (isAuth) - { - answ = string.Format("{0} {1}", rigaUtente.COGNOME, rigaUtente.NOME); - } - return answ; - } - } - /// - /// restituisce una stringa formattata con cognome - /// - public string cognome - { - get - { - string answ = ""; - if (isAuth) - { - answ = string.Format("{0}", rigaUtente.COGNOME); - } - return answ; - } - } - /// - /// restituisce una stringa formattata con nome - /// - public string nome - { - get - { - string answ = ""; - if (isAuth) - { - answ = string.Format("{0}", rigaUtente.NOME); - } - return answ; + utente = _username; + dominio = _dominio; + setupRiga(); + setupLingua(); + setupDirittiPermessi(cdc); + setupMappaSito(); + salvaDatiAccessori(); + risultato = true; } + return risultato; } - #endregion - - #region area vocabolario + /// + /// Procedura da chiamare DOPO aver messo in session i dati utente/dominio x caricare gli altri dati + /// + /// + /// + /// + public bool startUpUtentePwd(string _username, string _pwd) + { + bool risultato = false; + clearAllUserData(); + if (_username != "" && _pwd != "") + { + // controllo la pwd + if (checkUserPwd(_username, _pwd)) + { + dominio = memLayer.ML.CRS("defaultDomain"); // forzo a valore web.config per non incappare in errori successivi + utente = _username; + passwd = _pwd; + setupRigaByUsername(); + setupLingua(); + setupDirittiPermessiByUsername(); + setupMappaSito(); + salvaDatiAccessori(); + risultato = true; + } + else + { + risultato = false; + } + } + return risultato; + } /// /// traduce il lemma nella lingua dell'user corrente @@ -661,26 +1283,6 @@ namespace SteamWare return answ; } - /// - /// traduce il lemma in inglese - /// - /// - /// - public string TraduciEn(string lemma) - { - // lemma � invariante... .ToUpper()!!! - lemma = lemma.ToUpper(); - string answ = string.Format("_{0}_", lemma); - try - { - answ = DataWrap.DW.dictVocabolario["EN#" + lemma]; - } - catch - { - } - return answ; - } - /// /// traduce il lemma nella lingua richiesta /// @@ -703,172 +1305,25 @@ namespace SteamWare } /// - /// traduce il lemma nella lingua dell'user e in inglese tra parentesi + /// traduce il lemma in inglese /// /// /// - public string FullTrad(string lemma) + public string TraduciEn(string lemma) { - return Traduci(lemma) + " (" + TraduciEn(lemma) + ")"; - } - - #endregion - - /// - /// fornisce un file XML della mappa del sito abilitato per l'utente... - /// - public string mappaSito - { - get - { - return memLayer.ML.StringSessionObj("mappaSito"); - } - set - { - memLayer.ML.setSessionVal("mappaSito", value); - } - } - /// - /// LogOff utente con reset dati - /// - /// - public bool logOffUtente() - { - bool risultato = false; - clearAllUserData(); - utente = ""; - dominio = ""; - risultato = true; - return risultato; - } - /// - /// Procedura da chiamare DOPO aver messo in session i dati utente/dominio x caricare gli altri dati - /// - /// - /// - /// - public bool startUpUtente(string _dominio, string _username) - { - bool risultato = false; + // lemma � invariante... .ToUpper()!!! + lemma = lemma.ToUpper(); + string answ = string.Format("_{0}_", lemma); try { - clearAllUserData(); - if (_username != "" && _dominio != "") - { - //logger.lg.scriviLog(string.Format("startUpUtente:{2} dominio:\t{0}{2}username:\t{1}", _dominio, _username, Environment.NewLine), tipoLog.STARTUP); - utente = _username; - dominio = _dominio; - setupRiga(); - setupLingua(); - setupDirittiPermessi(); - setupMappaSito(); - salvaDatiAccessori(); - risultato = true; - } - } - catch (Exception exc) - { - logger.lg.scriviLog(string.Format("Errore in fase di startUpUtente:{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION); - } - return risultato; - } - /// - /// Procedura da chiamare DOPO aver messo in session i dati utente/dominio x caricare gli altri dati - /// - /// - /// - /// - public bool startUpUtentePwd(string _username, string _pwd) - { - bool risultato = false; - clearAllUserData(); - if (_username != "" && _pwd != "") - { - // controllo la pwd - if (checkUserPwd(_username, _pwd)) - { - dominio = memLayer.ML.CRS("defaultDomain"); // forzo a valore web.config per non incappare in errori successivi - utente = _username; - passwd = _pwd; - setupRigaByUsername(); - setupLingua(); - setupDirittiPermessiByUsername(); - setupMappaSito(); - salvaDatiAccessori(); - risultato = true; - } - else - { - risultato = false; - } - } - return risultato; - } - /// - /// controllo utente/pwd da tab - /// - /// - /// - /// - private bool checkUserPwd(string _username, string _pwd) - { - bool risultato = false; - try - { - risultato = DataWrap.DW.taUserData.getByUserPwd(_username, _pwd).Rows.Count > 0; + answ = DataWrap.DW.dictVocabolario["EN#" + lemma]; } catch - { } - return risultato; - } - /// - /// Procedura da chiamare DOPO aver messo in session i dati utente/dominio x caricare gli altri dati CON I DIRITTI SOLO per il CDC indicato - /// - /// - /// - /// - /// - public bool startUpUtente(string _dominio, string _username, string cdc) - { - bool risultato = false; - clearAllUserData(); - if (_username != "" && _dominio != "") - { - utente = _username; - dominio = _dominio; - setupRiga(); - setupLingua(); - setupDirittiPermessi(cdc); - setupMappaSito(); - salvaDatiAccessori(); - risultato = true; - } - return risultato; - } - /// - /// salva dati accessori quali il cdc dell'utente... - /// - protected virtual void salvaDatiAccessori() - { - // salvo il cdc utente... - memLayer.ML.setSessionVal("CdCUser", rigaUtente.COD_CDC); - // verifico se necessario fare echo lemmi e vado in runMode di echo dei termini tradotti - bool echoLemmi = false; - try - { - echoLemmi = memLayer.ML.CRB("echoLemmi"); - } - catch - { } - if (echoLemmi) - { - currRunMode = runModes.echoLemmi; - } - else - { - currRunMode = runModes.normal; - } + { + } + return answ; } + /// /// verifica nella tab diritti se l'utente abbia il right richiesto (come COD_FUNZIONE) e fornisce bool in risposta /// @@ -888,415 +1343,7 @@ namespace SteamWare { } return _answ; } - /// - /// verifica le credenziali AD dell'utente... - /// - /// - /// - /// - public virtual bool ADuserOk(string dominio, string username) - { - bool isOk = false; - // ...verifico sia in tabella utenti... - bool isOkUser = false; - // ...e che abbia diritti per l'applicativo... - bool isOkPerm = false; - // controllo se richiesta autenticazione completa dominio + username o solo username... - bool authSenzaDominio = false; - try - { - authSenzaDominio = memLayer.ML.CRB("authSenzaDominio"); - if (authSenzaDominio) - { - isOkUser = (DataWrap.DW.taUtente.getByUserName(username).Rows.Count >= 1); - isOkPerm = (DataWrap.DW.taDiritti.GetByUserModulo(username, modulo).Rows.Count >= 1); - } - else - { - isOkUser = (DataWrap.DW.taUtente.GetDataByUtenteDominio(username, dominio).Rows.Count >= 1); - isOkPerm = (DataWrap.DW.taDiritti.GetByUserDominioModulo(username, dominio, modulo).Rows.Count >= 1); - } - } - catch (Exception exc) - { - logger.lg.scriviLog($"Exception during ADuserOk:{Environment.NewLine}{exc}"); - } - // risultato... - isOk = (isOkUser && isOkPerm); - return isOk; - } - /// - /// � un boolean che indica se in session ci siano user/dominio e quindi utente autenticato in precedenza... - /// - public bool isAuth - { - get - { - return (utente != "" && dominio != ""); - } - } - /// - /// conta il numero di permessi utente per la pagina attuale e restituisce true se ne trova almeno 1 - /// - /// - /// - public bool isPageEnabled(string pagina) - { - bool answ = false; - // tolgo (se ci fosse) .aspx finale... - pagina = pagina.Replace(".aspx", ""); - if (permessi != null) - { - try - { - System.Data.DataRow[] righe = permessi.Select(string.Format("URL = '{0}.aspx' OR URL = '{0}'", pagina)); - answ = (righe.Length >= 1); - } - catch - { } - } - return answ; - } - /// - /// verifica se il permesso utente per la pagina attuale sia write per almeno 1 diritto assegnato (restituisce true se ne trova almeno 1 con permessi2funzione.readwrite='S') - /// - /// - /// - public bool isPageWriteEnabled(string pagina) - { - bool answ = false; - // tolgo (se ci fosse) .aspx finale... - pagina = pagina.Replace(".aspx", ""); - try - { - System.Data.DataRow[] righe = permessiWrite.Select(string.Format("URL = '{0}.aspx' OR URL = '{0}'", pagina)); - answ = (righe.Length >= 1); - } - catch - { } - return answ; - } - /// - /// ricarica e ri-traduce la mappa sito per l'utente... - /// - public void ricaricaMappaSito() - { - memLayer.ML.emptySessionVal("dirittiUtente"); - memLayer.ML.emptySessionVal("permessiUtente"); - setupDirittiPermessi(); - setupMappaSito(); - } - /// - /// retituisce il nome apgina dai permessi utente - /// - /// - public string nomePaginaDaPermessi(string url) - { - string answ = ""; - try - { - answ = permessi.Select(string.Format("URL = '{0}'", url))[0]["NOME"].ToString(); - } - catch - { } - return answ; - } - /// - /// restituisce cognome e nome di un utente dato username... - /// - /// username - /// - public string CognomeNomeDaUsername(string userName) - { - string answ = "-"; - try - { - DataLayer_AnagGen.UTENTERow riga = DataWrap.DW.taUtente.getByUserName(userName)[0]; - answ = string.Format("{0} {1}", riga.COGNOME, riga.NOME); - } - catch - { - } - return answ; - } - /// - /// restituisce cognome e nome di un utente data la matricola... - /// - /// matricola - /// - public string CognomeNomeMatrDaMatricola(string matricola) - { - string answ = "-"; - try - { - DataLayer_AnagGen.UTENTERow riga = DataWrap.DW.taUtente.getByMatricola(matricola)[0]; - answ = string.Format("{0} {1} ({2})", riga.COGNOME, riga.NOME, riga.MATRICOLA); - } - catch - { - } - return answ; - } - /// - /// restituisce cognome e nome di un utente dato username e dominio... - /// - /// username - /// dominio - /// - public string CognomeNomeDaUsername(string userName, String dominio) - { - string answ = "-"; - try - { - DataLayer_AnagGen.UTENTERow riga = DataWrap.DW.taUtente.GetDataByUtenteDominio(userName, dominio)[0]; - answ = string.Format("{0} {1}", riga.COGNOME, riga.NOME); - } - catch - { - } - return answ; - } - /// - /// restituisce cognome e nome di un utente dato username... - /// - /// username - /// - public string emailDaUsername(string userName) - { - string answ = "-"; - try - { - DataLayer_AnagGen.UTENTERow riga = DataWrap.DW.taUtente.getByUserName(userName)[0]; - answ = riga.EMAIL; - } - catch - { - } - return answ; - } - /// - /// restituisce cognome e nome di un utente dato username e dominio... - /// - /// username - /// dominio - /// - public string emailDaUsername(string userName, String dominio) - { - string answ = "-"; - try - { - DataLayer_AnagGen.UTENTERow riga = DataWrap.DW.taUtente.GetDataByUtenteDominio(userName, dominio)[0]; - answ = riga.EMAIL; - } - catch - { - } - return answ; - } - /// - /// restituisce cognome e nome di un utente dato username eventualmente comprensivo di dominio... - /// - /// {dominio\}userName - /// - public string CognomeNomeDaUser(string userNameFull) - { - string answ = "-"; - // se contiene "\" allora � con dominio... - if (userNameFull.IndexOf('\\') > -1) - { - string[] userData = userNameFull.ToString().Split('\\'); - answ = CognomeNomeDaUsername(userData[1], userData[0]); - } - else - { - answ = CognomeNomeDaUsername(userNameFull); - } - return answ; - } - /// - /// restituisce l'elenco delle funzioni abilitate dato modulo ed username partendo dalla radice dell'albero dei diritti - /// - /// - /// - /// - public DataLayer_AnagGen.FUNZIONEDataTable funzioniUtente(string codModulo, string user_name) - { - return DataWrap.DW.taFunzione.getFunByDiritti_999(codModulo, user_name); - } - /// - /// restituisce l'elenco degli utenti dato i diritti che devono avere come modulo/funzione - /// - /// nome del modulo - /// nome della funzione - /// tabella utenti - public DataLayer_AnagGen.UTENTEDataTable elencoDaDiritti(string codModulo, string codFunzione) - { - return DataWrap.DW.taUtente.getElencoByDiritti(codModulo, codFunzione); - } - /// - /// restituisce l'elenco delle email degli utenti dato i diritti che devono avere come modulo/funzione - /// - /// nome del modulo - /// nome della funzione - /// stringa di email separate da "," - public string elencoEmailDaDiritti(string codModulo, string codFunzione) - { - char sep = ','; - string answ = ""; - try - { - foreach (DataLayer_AnagGen.UTENTERow riga in elencoDaDiritti(codModulo, codFunzione)) - { - answ += string.Format("{0}{1} ", riga.EMAIL, sep); - } - if (answ.Length > 2) - { - answ = answ.Substring(0, answ.Length - 2); - } - } - catch - { - } - return answ; - } - /// - /// crea un nuovo utente con le credenziali indicate - /// - /// The dominio. - /// The username. - /// The cognome. - /// The nome. - /// The cod_cdc. - /// The email. - /// The matricola. - /// The sigla. - /// - public bool creaUtente(string dominio, string username, string cognome, string nome, string cod_cdc, string email, string matricola, string sigla) - { - bool answ = false; - try - { - DataWrap.DW.taUtente.Insert(dominio, username, cognome, nome, "1", matricola, cod_cdc, email, sigla, "IT", "s"); - answ = true; - } - catch { } - return answ; - } - /// - /// assegna il diritto all'utente indicato - /// - /// - /// - /// - /// - /// - public bool assegnaDirittoUtente(string username, string cod_cdc, string cod_modulo, string cod_funzione) - { - bool answ = false; - try - { - DataWrap.DW.taDiritti.Insert(username, cod_cdc, cod_modulo, cod_funzione, "-1"); - answ = true; - } - catch (Exception exc) - { - logger.lg.scriviLog($"Exception during assegnaDirittoUtente:{Environment.NewLine}{exc}"); - } - return answ; - } - /// - /// toglier il diritto all'utente indicato - /// - /// - /// - /// - /// - /// - public bool rimuoviDirittoUtente(string username, string cod_cdc, string cod_modulo, string cod_funzione) - { - bool answ = false; - try - { - DataWrap.DW.taDiritti.DeleteQuery(username, cod_cdc, cod_modulo, cod_funzione); - answ = true; - } - catch (Exception e) - { - logger.lg.scriviLog(String.Format("Eccezione: {0}", e)); - } - return answ; - } - /// - /// restituisce la tabella (per utente corrente) dei CDC abilitati per l'applicazione attuale da sessione (se non c'� salva...) - /// - /// modulo di cui si testano i diritti - /// - public virtual DataLayer_AnagGen.CDCDataTable getEnabledCdc(string cod_modulo) - { - //init tabella - DataLayer_AnagGen.CDCDataTable tabCdc = new DataLayer_AnagGen.CDCDataTable(); - // cerco in sessione elenco CDC - if (memLayer.ML.isInSessionObject("CdcEnabled4user4module")) - { - if (memLayer.ML.serializeSession) - { - tabCdc = DataSetAdapter.convert(memLayer.ML.dsSessionObj("CdcEnabled4user4module")); - } - else - { - tabCdc = (DataLayer_AnagGen.CDCDataTable)memLayer.ML.objSessionObj("CdcEnabled4user4module"); - } - } - else - { - tabCdc = DataWrap.DW.taCdc.getEnabledCDC(utente, cod_modulo); - if (memLayer.ML.serializeSession) - { - memLayer.ML.setSessionDataTable("CdcEnabled4user4module", tabCdc); - } - else - { - memLayer.ML.setSessionVal("CdcEnabled4user4module", tabCdc); - } - } - return tabCdc; - } - - #endregion - - /// - /// versione statica della classe utente come singleton UtenTeSignletoN - /// - public static user_std UtSn = new user_std(); - /// - /// pagina correntemente visualizzata (URL in sessione) - /// - public static string pagCorrente - { - get - { - return memLayer.ML.StringSessionObj("pagCorrente"); - } - set - { - memLayer.ML.setSessionVal("pagCorrente", value); - } - } - /// - /// pagina precedentemente visualizzata (URL in sessione) - /// - public static string pagPrecedente - { - get - { - return memLayer.ML.StringSessionObj("pagPrecedente"); - } - set - { - memLayer.ML.setSessionVal("pagPrecedente", value); - } - } + #endregion Public Methods } - -} +} \ No newline at end of file