/// <summary> /// Reperimento dei dati per la gestione della password in amministrazione /// </summary> /// <returns></returns> public static PasswordConfigurations GetPasswordConfigurations(int idAmministrazione) { PasswordConfigurations config = null; if (idAmministrazione > 0) { using (DBProvider dbProvider = new DBProvider()) { DocsPaUtils.Query queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("PASSWORD_CONFIG_GET_DATA"); queryDef.setParam("idAmministrazione", " = " + idAmministrazione.ToString()); string commandText = queryDef.getSQL(); //Debugger.Write(commandText); logger.Debug(commandText); using (IDataReader reader = dbProvider.ExecuteReader(commandText)) { if (reader.Read()) { config = new PasswordConfigurations(reader); } } } } return(config); }
/// <summary> /// Impostazione di tutte le password come scadute per un'amministrazione /// </summary> /// <param name="amministrazione"></param> public static void ForzaScadenzaPassword(DocsPaVO.amministrazione.InfoAmministrazione amministrazione) { try { // 1. Creazione contesto transazionale per singola amministrazione using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { // 2. Tutte le password per l'amministrazione vengono impostate come scadute // 2a. Modifica delle configurazioni per la gestione delle password: // vengono rimossi i vincoli formali di validità PasswordConfigurations pwdConfig = DocsPaPwdServices.AdminPasswordConfigServices.GetPasswordConfigurations(Convert.ToInt32(amministrazione.IDAmm)); pwdConfig.SpecialCharacters = null; pwdConfig.MinLength = 0; pwdConfig.ExpirationEnabled = true; // Viene abilitata la scadenza password pwdConfig.ValidityDays = 30; DocsPaPwdServices.AdminPasswordConfigServices.SavePasswordConfigurations(pwdConfig); DocsPaPwdServices.AdminPasswordConfigServices.ExpireAllPassword(Convert.ToInt32(amministrazione.IDAmm)); // 3. Completamento della transazione transactionContext.Complete(); Log.GetInstance(amministrazione).Write(string.Format("Tutte le password per l'amministrazione con codice '{0}' sono state impostate come scadute. I giorni di validità delle password sono '{1}'", amministrazione.Codice, pwdConfig.ValidityDays.ToString()), false); } } catch (Exception ex) { // Operazione annullata Log.GetInstance(amministrazione).Write(ex.Message, true); } finally { Log.GetInstance(amministrazione).Flush(); } }
/// <summary> /// /// </summary> /// <param name="idAmministrazione"></param> /// <returns></returns> public PasswordConfigurations GetPasswordConfigurations(DocsPaVO.utente.InfoUtente infoUtente, int idAmministrazione) { // Inizializzazione oggetto configurations PasswordConfigurations pwdConfigurations = new PasswordConfigurations(); pwdConfigurations.IdAmministrazione = idAmministrazione; pwdConfigurations.ExpirationEnabled = false; pwdConfigurations.ValidityDays = 0; pwdConfigurations.MinLength = 0; pwdConfigurations.SpecialCharacters = new char[0]; return(pwdConfigurations); }
/// <summary> /// Impostazione della data di creazione della password /// per tutti gli utenti dell'amministrazione. /// <remarks> /// Regole per l'impostazione: /// - l'aggiornamento viene effettuato solamente se il valore /// per i giorni di validità è stato modificato /// - se il numero di giorni impostato è 0, la scadenza /// password è stata disabilitata, quindi per tutti gli utenti /// verrà rimossa la data di creazione /// - se il numero di giorni precedente a quello attuale era 0, /// verrà aggiornata per tutti gli utenti la data di creazione /// </remarks> /// </summary> /// <param name="provider"></param> /// <param name="configurations"></param> /// <param name="oldConfigurations"></param> /// <returns></returns> private static void SetCreationDateAllUser(DBProvider dbProvider, PasswordConfigurations configurations, PasswordConfigurations oldConfigurations) { if (oldConfigurations.ValidityDays != configurations.ValidityDays) { if (configurations.ValidityDays == 0) { SetCreationDateAllUser(dbProvider, configurations.IdAmministrazione, false); } else if (oldConfigurations.ValidityDays == 0) { SetCreationDateAllUser(dbProvider, configurations.IdAmministrazione, true); } } }
//MEV utenti multi-amministrazione /// <summary> /// Reperimento dei dati per la gestione della password in amministrazione /// </summary> /// <param name="userId"></param> /// <returns></returns> internal static PasswordConfigurations GetPasswordConfigurations(string userId, string codAmm) { PasswordConfigurations config = null; using (DBProvider dbProvider = new DBProvider()) { DocsPaUtils.Query queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("PASSWORD_CONFIG_GET_DATA_FROM_USER_ID_BY_AMM"); queryDef.setParam("userId", userId); queryDef.setParam("codAmm", codAmm); string commandText = queryDef.getSQL(); logger.Debug(commandText); using (IDataReader reader = dbProvider.ExecuteReader(commandText)) { if (reader.Read()) { config = new PasswordConfigurations(reader); } } } return(config); }
/// <summary> /// Save dei dati per la gestione delle password in amministrazione /// </summary> /// <param name="configurations"></param> /// <returns></returns> public static bool SavePasswordConfigurations(PasswordConfigurations configurations) { bool saved = false; using (DBProvider dbProvider = new DBProvider()) { dbProvider.BeginTransaction(); // Reperimento configurazioni precedenti PasswordConfigurations oldConfigurations = GetPasswordConfigurations(configurations.IdAmministrazione); DocsPaUtils.Query queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("PASSWORD_CONFIG_SET_DATA"); if (configurations.ExpirationEnabled) { queryDef.setParam("enablePasswordExpiration", "1"); queryDef.setParam("passwordExpirationDays", configurations.ValidityDays.ToString()); } else { queryDef.setParam("enablePasswordExpiration", "NULL"); queryDef.setParam("passwordExpirationDays", "NULL"); } if (configurations.MinLength > 0) { queryDef.setParam("passwordMinLength", configurations.MinLength.ToString()); } else { queryDef.setParam("passwordMinLength", "NULL"); } if (configurations.SpecialCharacters != null && configurations.SpecialCharacters.Length > 0) { queryDef.setParam("passwordSpecialChars", string.Format("'{0}'", new string(configurations.SpecialCharacters).Replace("'", "''"))); } else { queryDef.setParam("passwordSpecialChars", "NULL"); } if (configurations.IdAmministrazione == -1) { // System administrator queryDef.setParam("idAmministrazione", " IS NULL"); } else { queryDef.setParam("idAmministrazione", " = " + configurations.IdAmministrazione.ToString()); } string commandText = queryDef.getSQL(); //Debugger.Write(commandText); logger.Debug(commandText); int rowsAffected; if (!dbProvider.ExecuteNonQuery(commandText, out rowsAffected)) { throw new ApplicationException(string.Format("Errore nell'aggiornamento delle configurazioni delle password. ID Amministrazione: {0}", configurations.IdAmministrazione.ToString())); } saved = (rowsAffected == 1); // Se il numero di giorni di validità è cambiato // per ogni utente dell'amministrazione // viene aggiornata la data di creazione della password if (saved) { SetCreationDateAllUser(dbProvider, configurations, oldConfigurations); } dbProvider.CommitTransaction(); } return(saved); }
/// <summary> /// Save dei dati per la gestione delle password in amministrazione /// </summary> /// <param name="configurations"></param> /// <returns></returns> public static bool SavePasswordConfigurations(PasswordConfigurations configurations) { return(DocsPaDB.Query_DocsPAWS.AdminPasswordConfig.SavePasswordConfigurations(configurations)); }
/// <summary> /// Save dei dati per la gestione delle password in amministrazione /// </summary> /// <param name="infoUtente"></param> /// <param name="configurations"></param> /// <returns></returns> public static bool SavePasswordConfigurations(DocsPaVO.utente.InfoUtente infoUtente, PasswordConfigurations configurations) { DocsPaDocumentale.Documentale.AdminPasswordConfig pwdConfig = new DocsPaDocumentale.Documentale.AdminPasswordConfig(); return(pwdConfig.SavePasswordConfigurations(infoUtente, configurations)); }