Example #1
0
        public ResultBM UpdateUser(UserBM userBm, bool updatePassword = false)
        {
            UserDAL             userDal = new UserDAL();
            DigitVerificatorBLL dvBll   = new DigitVerificatorBLL();
            ResultBM            digitUpdated;
            ResultBM            validation;
            UserDTO             userDto;

            try
            {
                validation = IsValid(userBm);
                if (validation.IsValid())
                {
                    if (updatePassword)
                    {
                        userBm.Password = SecurityHelper.Encrypt(userBm.Password);
                    }
                    string digit = dvBll.CreateDigit(userBm);
                    userDto = new UserDTO(userBm.Id, userBm.Name, userBm.Active, userBm.LanguageId, userBm.PermissionId, userBm.Password, digit);
                    userDal.UpdateUser(userDto);

                    //Corregir: se asume que es solo para el usuario
                    //Ver qué ocurre ante fallo
                    digitUpdated = dvBll.UpdateVerticallDigit();

                    if (digitUpdated.IsValid())
                    {
                        return(new ResultBM(ResultBM.Type.OK, "Usuario con id " + userBm.Id + " actualizado correctamente."));
                    }
                    else
                    {
                        return(digitUpdated);
                    }
                }
                else
                {
                    return(validation);
                }
            }
            catch (Exception exception)
            {
                return(new ResultBM(ResultBM.Type.EXCEPTION, SessionHelper.GetTranslation("UPDATING_ERROR") + " " + exception.Message, exception));
            }
        }
Example #2
0
        /// <summary>
        /// Crea un usuario.
        /// </summary>
        /// <param name="userBm"></param>
        /// <returns></returns>
        public ResultBM SaveUser(UserBM userBm)
        {
            UserDAL             userDal = new UserDAL();
            DigitVerificatorBLL dvBll   = new DigitVerificatorBLL();
            UserDTO             userDto;
            ResultBM            digitUpdated;
            ResultBM            validation;

            try
            {
                validation = IsValid(userBm, true);
                if (validation.IsValid())
                {
                    userBm.Password = SecurityHelper.Encrypt(userBm.Password);
                    userBm.Hdv      = dvBll.CreateDigit(userBm);
                    userDto         = new UserDTO(userBm.Name, userBm.Active, userBm.LanguageId, userBm.PermissionId, userBm.Password, userBm.Hdv);
                    userDal.SaveUser(userDto);

                    digitUpdated = dvBll.UpdateVerticallDigit();

                    if (digitUpdated.IsValid())
                    {
                        return(new ResultBM(ResultBM.Type.OK, "Usuario creado: " + userDto.name, new UserBM(userDto)));
                    }
                    else
                    {
                        return(digitUpdated);
                    }
                }
                else
                {
                    return(validation);
                }
            }
            catch (Exception exception)
            {
                return(new ResultBM(ResultBM.Type.EXCEPTION, SessionHelper.GetTranslation("SAVING_ERROR") + " " + exception.Message, exception));
            }
        }
Example #3
0
        public ResultBM DeleteUser(int userId)
        {
            try
            {
                DigitVerificatorBLL dvBll   = new DigitVerificatorBLL();
                UserDAL             userDal = new UserDAL();
                userDal.DeleteUser(userId);

                ResultBM result = dvBll.UpdateVerticallDigit();
                if (result.IsValid())
                {
                    return(new ResultBM(ResultBM.Type.OK, "Usuario con id " + userId + " ha sido eliminado satisfactoriamente."));
                }
                else
                {
                    return(new ResultBM(ResultBM.Type.FAIL, SessionHelper.GetTranslation("UPDATING_ERROR") + " (INTEGRITY)"));
                }
            }
            catch (Exception exception)
            {
                return(new ResultBM(ResultBM.Type.EXCEPTION, SessionHelper.GetTranslation("DELETING_ERROR") + " " + exception.Message, exception));
            }
        }
Example #4
0
        public ResultBM LogIn(string user, string password)
        {
            UserBLL userBll = new UserBLL();
            UserBM  userBm;

            LanguageBLL languageBll = new LanguageBLL();
            LanguageBM  languageBm;

            ProfileBLL profileBll = new ProfileBLL();
            ProfileBM  profileBm;

            DigitVerificatorBLL dvBll = new DigitVerificatorBLL();

            ResultBM result;

            try
            {
                //1. Validación input
                result = IsValid(user, password);

                if (result.IsValid())
                {
                    //2. Validación usuario
                    result = userBll.GetUser(user, password);

                    if (result.IsValid())
                    {
                        log.AddLogInfo("Autenticando", "Usuario " + user + " encontrado en la base de datos.", this);
                        userBm = result.GetValue <UserBM>();

                        //3. Recuperación de permisos
                        profileBm = profileBll.GetProfile(userBm.PermissionId).GetValue() as ProfileBM;

                        //4. Recuperación de idioma
                        languageBm = languageBll.GetLanguage(userBm.LanguageId);

                        //5. Armado de sesión
                        SessionHelper.StartSession(userBm, profileBm, languageBm);
                        log.AddLogDebug("Creando sesión", "Sesion para el usuario " + user + " creada.", this);

                        //6 Chequeo de consistencia horizontal
                        result = dvBll.IsHorizontallyConsistent(userBm);

                        if (!result.IsValid())
                        {
                            log.AddLogCritical("Dígito horizontal", "Falló la verificación horizontal al momento de chequear los datos del usuario " + user + ".", this);
                            //Sólo un admin puede continuar no es suficiente con que pueda restaurar
                            result = new ResultBM(ResultBM.Type.CORRUPTED_DATABASE, result.description, null, profileBm.HasPermission("GE999"));
                        }
                        else
                        {
                            //4.2 Chequeo de vertical
                            result = dvBll.IsVerticallyConsistent();

                            if (!result.IsValid())
                            {
                                log.AddLogCritical("Dígito vertical", "Falló la verificación vertical al momento de loguear al usuario " + user + ".", this);
                                //Sólo un admin puede continuar no es suficiente con que pueda restaurar
                                result = new ResultBM(ResultBM.Type.CORRUPTED_DATABASE, result.description, null, profileBm.HasPermission("GE999"));
                            }
                            else
                            {
                                log.AddLogInfo("Logueo", "El usuario " + user + " se ha logueado exitosamente.", this);
                                result = new ResultBM(ResultBM.Type.OK, "Inicio de sesión exitoso para el usuario " + user);
                            }
                        }
                    }
                    else
                    {
                        log.AddLogInfo("Autenticando", "Usuario " + user + " no ha sido encontrado en la base de datos.", this);
                    }
                }
            }
            catch (Exception exception)
            {
                result = new ResultBM(ResultBM.Type.EXCEPTION, exception.Message, exception, false);
            }

            return(result);
        }