Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
        /// <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);
        }
Ejemplo n.º 7
0
        /// <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);
        }
Ejemplo n.º 8
0
        /// <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";
                    }
                }
            }
        }
Ejemplo n.º 9
0
        /// <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));
                }
            }
        }