/// <summary> /// Modifica password utente /// </summary> /// <param name="newPassword"/></param> /// <param name="utente"></param> ///// <returns></returns> public DocsPaVO.Validations.ValidationResultInfo ChangeUserPwd(DocsPaVO.utente.UserLogin user, string oldPassword) { DocsPaVO.Validations.ValidationResultInfo result = new DocsPaVO.Validations.ValidationResultInfo(); DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti(); if (!utenti.CambiaPassword(user, oldPassword)) { result.BrokenRules.Add(new DocsPaVO.Validations.BrokenRule("ChangePassword_ERROR", "Errore nella modifica della password per il documentale FILENET", DocsPaVO.Validations.BrokenRule.BrokenRuleLevelEnum.Error)); } if (result.BrokenRules.Count == 0) { // gestione specifica per Filenet--------------------------------------------------------- string oldPwd = utenti.GetPasswordUserFilenet(user.UserName); if (!this.ChangeUserFilenetPassword(user.UserName, oldPwd, user.UserName, user.IdAmministrazione)) { result.BrokenRules.Add(new DocsPaVO.Validations.BrokenRule("ChangePassword_ERROR", "Errore nella modifica della password per il documentale FILENET", DocsPaVO.Validations.BrokenRule.BrokenRuleLevelEnum.Error)); } } result.Value = (result.BrokenRules.Count == 0); return(result); }
/// <summary> /// Modifica password utente /// </summary> /// <param name="newPassword"/></param> /// <param name="utente"></param> ///// <returns></returns> public DocsPaVO.Validations.ValidationResultInfo ChangeUserPwd(DocsPaVO.utente.UserLogin user, string oldPassword) { DocsPaVO.Validations.ValidationResultInfo result = null; AdminPasswordConfig pwdConfig = new AdminPasswordConfig(); if (pwdConfig.IsSupportedPasswordConfig()) { // Se è abilitata la gestione configurazioni password int idAmministrazione = 0; if (!string.IsNullOrEmpty(user.IdAmministrazione)) { idAmministrazione = Convert.ToInt32(user.IdAmministrazione); } result = DocsPaPwdServices.UserPasswordServices.SetPassword(user.UserName, user.Password, false); } else { result = new DocsPaVO.Validations.ValidationResultInfo(); DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti(); if (!utenti.CambiaPassword(user, oldPassword)) { result.BrokenRules.Add(new DocsPaVO.Validations.BrokenRule("ChangePassword_ERROR", "Errore nella modifica della password per il documentale ETDOCS", DocsPaVO.Validations.BrokenRule.BrokenRuleLevelEnum.Error)); } result.Value = (result.BrokenRules.Count == 0); } return(result); }
/// <summary> /// /// </summary> /// <param name="infoUtente"></param> /// <param name="status"></param> private static void UndoCheckOut(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.CheckInOut.CheckOutStatus status) { DocsPaVO.Validations.ValidationResultInfo result = BusinessLogic.CheckInOut.CheckInOutServices.UndoCheckOut(status, infoUtente); if (!result.Value) { // Errore nell'undocheckout del documento, viene effettuato un nuovo tentativo result = BusinessLogic.CheckInOut.CheckInOutServices.UndoCheckOut(status, infoUtente); } // Rimozione documento da tabella di conversione logger.Debug("Eliminazione documento da DocRichiestaConversionePdf"); BusinessLogic.Documenti.DocManager.delDocRichiestaConversionePdf(status.IDDocument); }
/// <summary> /// Modifica password utente /// </summary> /// <param name="newPassword"/></param> /// <param name="utente"></param> ///// <returns></returns> public DocsPaVO.Validations.ValidationResultInfo ChangeUserPwd(DocsPaVO.utente.UserLogin user, string oldPassword) { DocsPaVO.Validations.ValidationResultInfo result = new DocsPaVO.Validations.ValidationResultInfo(); DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti(); if (!utenti.CambiaPassword(user, oldPassword)) { result.BrokenRules.Add(new DocsPaVO.Validations.BrokenRule("ChangePassword_ERROR", "Errore nella modifica della password per il documentale HUMMINGBIRD", DocsPaVO.Validations.BrokenRule.BrokenRuleLevelEnum.Error)); } result.Value = (result.BrokenRules.Count == 0); return(result); }
/// <summary> /// Modifica password utente /// </summary> /// <param name="newPassword"/></param> /// <param name="utente"></param> ///// <returns></returns> public DocsPaVO.Validations.ValidationResultInfo ChangeUserPwd(DocsPaVO.utente.UserLogin user, string oldPassword) { DocsPaVO.Validations.ValidationResultInfo result = null; using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { result = this.UserManagerETDOCS.ChangeUserPwd(user, oldPassword); if (result.Value) { transactionContext.Complete(); } } return(result); }
/// <summary> /// Modifica della password per l'utente /// </summary> /// <param name="newPassword"></param> /// <param name="user"></param> /// <returns></returns> public static DocsPaVO.Validations.ValidationResultInfo ChangePassword(DocsPaVO.utente.UserLogin user, string oldPassword) { DocsPaDocumentale.Documentale.UserManager userManager = new DocsPaDocumentale.Documentale.UserManager(); DocsPaVO.Validations.ValidationResultInfo result = userManager.ChangeUserPwd(user, oldPassword); // Se l'esito è positivo... if (result.Value == true) { UserLog.UserLog.WriteLog(user.UserName, "0", "0", user.IdAmministrazione, "MODUSER", "0", string.Format("Password dell'utente {0} modificata dall'utente stesso", user.UserName), DocsPaVO.Logger.CodAzione.Esito.OK, null); } return(result); }
/// <summary> /// /// </summary> /// <param name="infoUtente"></param> /// <param name="status"></param> /// <param name="content"></param> /// <param name="checkInComment"></param> private static bool CheckIn(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.CheckInOut.CheckOutStatus status, byte[] content, string checkInComment) { DocsPaVO.Validations.ValidationResultInfo result = BusinessLogic.CheckInOut.CheckInOutServices.CheckIn(status, infoUtente, content, checkInComment); // Rimozione documento da tabella di conversione logger.Debug("Eliminazione documento da DocRichiestaConversionePdf"); BusinessLogic.Documenti.DocManager.delDocRichiestaConversionePdf(status.IDDocument); DocsPaDB.Query_DocsPAWS.CheckInOut checkInOutDb = new DocsPaDB.Query_DocsPAWS.CheckInOut(); // Reperimento dell'ultima versione del documento FileRequest fileRequest = checkInOutDb.GetFileRequest(status.IDDocument); BusinessLogic.Documenti.FileManager.processFileInformation(fileRequest, infoUtente); return(result.Value); }
/// <summary> /// Aggiornamento dei dati della password di tipo amministratore per l'utente /// </summary> /// <param name="esito"></param> /// <param name="utente"></param> protected void UpdatePasswordData(EsitoOperazione esito, OrgUtente utente) { AdminPasswordConfig pwdConfig = new AdminPasswordConfig(); if (pwdConfig.IsSupportedPasswordConfig()) { int idAmministrazione = Convert.ToInt32(utente.IDAmministrazione); if (!string.IsNullOrEmpty(utente.Password)) { // Se l'inserimento dell'utente è andato a buon fine, // viene inserita la password di tipo amministratore // (solo se supportata la configurazione password) DocsPaVO.Validations.ValidationResultInfo ret = DocsPaPwdServices.UserPasswordServices.SetPassword(idAmministrazione, utente.UserId, utente.Password, true); if (!ret.Value) { esito.Codice = 9; esito.Descrizione = ret.BrokenRules[0].ToString(); } } if (esito.Codice == 0) { try { // Aggiornamento valore per flag "Nessuna scadenza password" DocsPaPwdServices.UserPasswordServices.SetPasswordNeverExpireOption(utente.NessunaScadenzaPassword, utente.UserId); } catch { esito.Codice = 9; esito.Descrizione = "Errore nella modifica dei dati della password"; } } } }
/// <summary> /// /// </summary> /// <param name="infoUtente"></param> /// <param name="idAmministrazione"></param> /// <param name="dominio"></param> /// <param name="docspaUsers"></param> /// <param name="ldapUsers"></param> /// <param name="responseItems"></param> private static void AddOrUpdateUsers(InfoUtente infoUtente, string idAmministrazione, string dominio, Dictionary <string, OrgUtente> docspaUsers, Dictionary <string, LdapUser> ldapUsers, List <LdapSyncronizationResponseItem> responseItems) { logger.Debug("inserimento nuovi utenti o update già presenti se ricevuti da LDAP metodo AddOrUpdateUsers "); foreach (KeyValuePair <string, LdapUser> pair in ldapUsers) { string idSync = pair.Key; string validationMessage; // Validazione utente ldap per l'aggiornamento if (ValidateLdapUser(pair.Value, out validationMessage)) { // Verifica presenza utente in altre amministrazioni docspa if (ExistUserDocsPa(docspaUsers, idAmministrazione, pair.Value.UserID)) { // L'utente in ldap è già presente in docspa ma in un'amministrazione // diversa da quella corrente, pertanto non può essere né inserito né modificato // qualora abbia già effettuato delle attività responseItems.Add(CreateResponseItem(pair.Value.UserID, LdapSyncronizationResultEnum.Error, "Utente già presente in un'altra amministrazione")); } else { if (docspaUsers.ContainsKey(idSync)) { // Se l'utente è già presente in docspa ma le informazioni relative // all’utente sono cambiate rispetto all'ultima sincronizzazione i campi // in docspa saranno aggiornati con quelli estratti da ldap OrgUtente orgUser = docspaUsers[idSync]; if (orgUser.Amministratore == "0" && orgUser.SincronizzaLdap) { // Sono esclusi dalla lista tutti gli utenti superamministratori e // gli utenti per cui è abilitata la sincronizzazione ldap if (UpdateUserIfDirty(orgUser, pair.Value)) { logger.Debug("update già presenti se ricevuti da LDAP metodo AddOrUpdateUsers userid: " + orgUser.UserId); EsitoOperazione result = BusinessLogic.Amministrazione.OrganigrammaManager.AmmModUtente(infoUtente, orgUser); if (result.Codice == 0) { responseItems.Add(CreateResponseItem(pair.Value.UserID, LdapSyncronizationResultEnum.Updated, string.Empty)); } else { responseItems.Add(CreateResponseItem(pair.Value.UserID, LdapSyncronizationResultEnum.Error, result.Descrizione)); } } } } else { OrgUtente newUser = CreateUser(pair.Value, idAmministrazione, dominio); // Se l'utente non è presente in docspa, sarà inserito come nuovo utente attivo. logger.Debug("inserimento già presenti se ricevuti da LDAP metodo AddOrUpdateUsers userid: " + newUser.UserId); EsitoOperazione result = BusinessLogic.Amministrazione.OrganigrammaManager.AmmInsNuovoUtente(infoUtente, newUser); if (result.Codice == 0) { if (string.IsNullOrEmpty(newUser.Dominio)) { // Autenticazione standard tramite password, che viene definita come amministratoro scaduta DocsPaVO.Validations.ValidationResultInfo passResult = DocsPaPwdServices.UserPasswordServices.SetPassword(newUser.UserId, newUser.Password, true, true); if (!passResult.Value) { if (passResult.BrokenRules.Count > 0) { DocsPaVO.Validations.BrokenRule br = (DocsPaVO.Validations.BrokenRule)passResult.BrokenRules[0]; responseItems.Add(CreateResponseItem(pair.Value.UserID, LdapSyncronizationResultEnum.Error, br.Description)); } } } responseItems.Add(CreateResponseItem(pair.Value.UserID, LdapSyncronizationResultEnum.Inserted, string.Empty)); } else if (result.Codice == 1) { responseItems.Add(CreateResponseItem(pair.Value.UserID, LdapSyncronizationResultEnum.Error, "Utente già presente in un'altra amministrazione")); } else if (result.Codice == 2) { responseItems.Add(CreateResponseItem(pair.Value.UserID, LdapSyncronizationResultEnum.Error, "Codice rubrica già presente")); } else { responseItems.Add(CreateResponseItem(pair.Value.UserID, LdapSyncronizationResultEnum.Error, result.Descrizione)); } } } } else { responseItems.Add(CreateResponseItem(pair.Value.UserID, LdapSyncronizationResultEnum.Error, validationMessage)); } } }