Esempio n. 1
0
        /// <summary>
        /// Envía un mail para informarle al usuario que inició el proceso de cambio de contraseña.
        /// acorde.
        /// </summary>
        /// <param name="mail"></param>
        public bool ResetPasswordRequest(string mail)
        {
            if (!IsValidForRecover(mail))
            {
                return(false);
            }

            UserMapper mapper = new UserMapper();
            User       user   = mapper.Get(mail);

            if (user == null)
            {
                // Si no se encuentra, no se informa para ofuscar posibles ataques
                string errorDescription = "No se ha encontrado usuario " + mail + ".";
                log.AddLogCritical("ResetPassword", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.NULL, errorDescription));
            }
            else
            {
                string activationHash = SecurityHelper.Encrypt(user.Mail + user.Lastupdate.Minute) + user.Id;
                MailerHelper.SendResetPassword(user, activationHash);
            }

            return(true);
        }
Esempio n. 2
0
        /// <summary>
        /// Fuerza el cambio de password de un usuario, anulando la contraseña actual.
        /// </summary>
        /// <param name="userId"></param>
        public void ResetPasswordRequest(int userId)
        {
            UserMapper mapper = new UserMapper();
            User       user   = mapper.Get(userId);

            if (user == null)
            {
                // Si no se encuentra, no se informa para ofuscar posibles ataques
                string errorDescription = "No se ha encontrado usuario con id " + userId + ".";
                log.AddLogCritical("ResetPassword", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.NULL, errorDescription));
            }
            else
            {
                //Se asigna un password cualquiera para invalidar el acceso
                user.Password = DateTime.Now.Ticks.ToString();

                // TODO - controlar errores
                Edit(user);

                //Se recupera porque a veces hay problemas con el hash
                user = Get(userId);

                string activationHash = SecurityHelper.Encrypt(user.Mail + user.Lastupdate.Minute) + user.Id;
                MailerHelper.SendResetPasswordByAdmin(user, activationHash);
            }
        }
Esempio n. 3
0
        public bool SendRecovery(string userName)
        {
            UserMapper userMapper = new UserMapper();
            User       user       = userMapper.Get(userName);

            if (user == null)
            {
                AddError(new ResultBE(ResultBE.Type.NULL, "Usuario no existe: " + userName));
                return(false);
            }
            else
            {
                string recoveryHash = SecurityHelper.Encrypt(user.Mail + user.Lastupdate.Minute);

                //TODO - Confeccionar plantillas para el envío de mail
                MailerHelper.Send(
                    "Buenas! " + user.Name + "!",
                    "Parece que te has olvidado la contraseña... o al menos esos nos has dicho." +
                    Environment.NewLine +
                    "Para cambiar tu password, accedé a la siguiente url: http://localhost:50551/recovery_action.aspx?r=" + recoveryHash + user.Id,
                    new string[] { user.Mail }
                    );

                return(true);
            }
        }
        public async Task <IActionResult> SendConfirmed([FromForm] EmailRequest request)
        {
            var emailTemplate = await _context.EmailTemplate
                                .FirstOrDefaultAsync(m => m.Id == request.Template.Id);

            if (emailTemplate == null)
            {
                return(NotFound());
            }
            try
            {
                if (await MailerHelper.SendBulkEmailsAsync(emailTemplate, request.UploadFile))
                {
                    return(RedirectToAction(nameof(Index), new { result = "Emails sent successfully." }));
                }
                else
                {
                    return(RedirectToAction(nameof(Index), new { result = "Recipient is required in the csv" }));
                }
            }
            catch (Exception ex)
            {
                return(RedirectToAction(nameof(Index), new { result = "An error occurred." + ex.Message }));
            }
        }
Esempio n. 5
0
        public bool Suscribe(NewsAddressee newsAddressee)
        {
            if (!IsValid(newsAddressee))
            {
                return(false);
            }

            //chequear existencia del correo
            NewsAddresseeMapper mapper    = new NewsAddresseeMapper();
            NewsAddressee       existence = mapper.Get(newsAddressee.Email);

            if (existence != null)
            {
                string errorDescription = "El suscriptor ya existe.";
                log.AddLogWarn("Save", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription));
                return(false);
            }

            newsAddressee.Active = true;
            newsAddressee.Singup = DateTime.Now;

            if (!mapper.Save(newsAddressee))
            {
                string errorDescription = "No se ha podido guardar el suscriptor.";
                log.AddLogCritical("Save", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription));
                return(false);
            }

            MailerHelper.SendNewsletterWelcome(newsAddressee);
            return(true);
        }
Esempio n. 6
0
        /// <summary>
        /// Creates a user for backoffice.
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public bool Save(User user, bool assignWebRol = false)
        {
            RoleManager roleManager = new RoleManager();
            UserMapper  mapper      = new UserMapper();

            if (!IsValidForSave(user))
            {
                return(false);
            }

            // Existencia del user name
            if (mapper.Get(user.Mail) != null)
            {
                string errorDescription = "El usuario ya existe.";
                log.AddLogWarn("SaveForWeb", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.ALREADY_EXISTS, errorDescription));
                return(false);
            }

            /*
             *          // Existencia del correo electrónico
             *          if (mapper.GetByMail(user.Mail))
             *          {
             *              string errorDescription = "El mail se encuentra en uso.";
             *              log.AddLogWarn("SaveForWeb", errorDescription, this);
             *              AddError(new ResultBE(ResultBE.Type.ALREADY_EXISTS, errorDescription));
             *              return false;
             *          }
             */
            user.Lastupdate = DateTime.Now;
            user.Locked     = true;
            user.Active     = false;

            // Asignar permisos de usuario web (recién cuando se loguea)
            if (mapper.Save(user))
            {
                if (assignWebRol)
                {
                    user.Roles = roleManager.GetForWebUser();
                    roleManager.SaveRoleForUser(user);
                }

                //se recupera de nuevo el usuario porque hay discrepancia entre la fecha de la base y la del sistema
                user = mapper.Get(user.Id);
                string activationHash = SecurityHelper.Encrypt(user.Mail + user.Lastupdate.Minute) + user.Id;
                MailerHelper.SendWelcomeMail(user, activationHash);
            }
            else
            {
                string errorDescription = "El mail se encuentra en uso.";
                log.AddLogCritical("SaveForWeb", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription));
                return(false);
            }

            return(true);
        }
Esempio n. 7
0
        /// <summary>
        /// Realiza el reseteo solicitado por el usuario desde la sección profile o apartado correspondiente.
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public bool RestPassword(User user)
        {
            bool success = Edit(user);

            if (success)
            {
                MailerHelper.SendResetPasswordConfirmation(user);
            }
            return(success);
        }
Esempio n. 8
0
        public ActionResult ResetPassword(string email)
        {
            var ar     = new AgenziaRepository();
            var agency = ar.GetByEmail(email);

            if (agency != null)
            {
                CryptoHelper cryptoHelper = new CryptoHelper();
                var          random       = new Random();
                var          password     = random.Next().ToString();
                agency.Password = cryptoHelper.CryptPassword(password);
                ar.Save(agency);
                var mailerHelper = new MailerHelper();
                var text         = string.Format("Gentile {0} la tua nuova password di Parti Comodo è: {1}", agency.Nome, password);
                mailerHelper.SendMail(email, text);
            }
            var viewModel = new RegisterViewModel();

            return(View("Register", viewModel));
        }
Esempio n. 9
0
        public ActionResult SendMailingList(DateTime dataApprovazione)
        {
            var vr     = new ViaggioRepository();
            var viaggi = vr.GetApproved().Where(c => c.DataApprovazione >= dataApprovazione);

            if (viaggi.Count() > 0)
            {
                var ar      = new AgenziaRepository();
                var agenzie = ar.GetAllAgenzie(100, 0);
                if (agenzie.Count > 0)
                {
                    var mh       = new MailerHelper();
                    var mlh      = new MailingListHelper();
                    var mailText = mlh.GetMailingList(viaggi.ToList());
                    foreach (var agenzia in agenzie)
                    {
                        mh.SendMail(agenzia.Email, mailText);
                    }
                }
            }
            return(RedirectToAction("AdminDashBoard", "Dashboard"));
        }
Esempio n. 10
0
 public void SendMail()
 {
     MailerHelper.Send("Esta es una prueba", "La prueba de la verdad.", new string[] { "*****@*****.**" });
 }
Esempio n. 11
0
 public ApiControllerEx()
 {
     mailer = new MailerHelper();
 }
Esempio n. 12
0
 static void Main(string[] args)
 {
     MailerHelper.Send();
 }