Beispiel #1
0
        public async Task <IActionResult> Recuperar([FromRoute] String email)
        {
            var lista = await cmd.Find <Persona>("Email", email.ToLower());

            if (lista.Count <= 0)
            {
                return(BadRequest());
            }
            var p     = lista[0];
            var u     = (await cmd.Find <Usuario>("Rut", p.Rut))[0];
            var m     = Mensajes.RecuperarClave;
            var reset = new ClaveReset
            {
                Codigo      = Tools.CodigoAleatorio(p.Rut, 20),
                Fecha       = DateTime.Now,
                Vencimiento = DateTime.Now.AddDays(1),
                Canjeado    = '0',
                Username    = u.Username
            };

            cmd.Insert(reset);
            String salt = Tools.EncriptarUrlCompatible(u.Username + reset.Codigo);

            m.AgregarDestinatario(p.Email, p.Nombres + " " + p.Apellidos);
            m.ConfigurarMensaje("username", u.Username);
            m.ConfigurarMensaje("codigo", reset.Codigo);
            m.ConfigurarMensaje("salt", salt);
            m.ConfigurarMensaje("fecha", reset.Fecha.ToShortDateString() + " " + reset.Fecha.ToShortTimeString());
            ClienteSmtp.Enviar(m);
            return(Ok());
        }
Beispiel #2
0
        public IActionResult EnviarCorreo([FromRoute] String correo)
        {//ESTE METODO ESTA CONFIGURADO PARA SER DE PRUEBAS, CORREGIR MAS ADELANTE
            var m = Mensajes.RecuperarClave;

            m.AgregarDestinatario(correo);
            m.ConfigurarAsunto("rol", "admin");
            m.ConfigurarMensaje("rol", "admin");
            m.ConfigurarMensaje("usuario", "jacuna");
            m.ConfigurarMensaje("codigo", "AvWiiSmiyEsYhovHTyMC");
            m.ConfigurarMensaje("salt", Tools.EncriptarUrlCompatible("jacuna" + "AvWiiSmiyEsYhovHTyMC"));
            m.ConfigurarMensaje("fecha", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString());
            var r = ClienteSmtp.Enviar(m);

            return(Ok(new { Correo = correo, Resultado = r }));
        }
        public async Task <IActionResult> Post([FromBody] PersonaUsuario creador, [FromHeader(Name = "User-Agent")] String userAgent)
        {
            if (!ConexionOracle.Activa)
            {
                ConexionOracle.Open();
                if (!ConexionOracle.Activa)
                {
                    return(StatusCode(504, ConexionOracle.NoConResponse));
                }
            }
            try
            {
                Usuario usuario = creador.Usuario;
                Persona persona = creador.Persona;
                usuario.Username = usuario.Username.ToLower();
                if (!userAgent.Equals("TurismoRealDesktop"))
                {
                    usuario.Id_rol = 5;
                    usuario.Clave  = Tools.Encriptar(usuario.Clave);
                }
                else
                {
                    usuario.Clave = Tools.Encriptar(Tools.CodigoAleatorio(persona.Rut));
                }
                usuario.Activo    = '1';
                usuario.Frecuente = '0';
                usuario.Rut       = persona.Rut;
                if (userAgent.Equals("TurismoRealDesktop"))
                {
                    usuario.Activo = '0';
                    usuario.Clave  = Tools.Encriptar(Tools.CodigoAleatorio(usuario.Username));
                    var reset = new ClaveReset
                    {
                        Codigo      = Tools.CodigoAleatorio(persona.Rut, 20),
                        Fecha       = DateTime.Now,
                        Vencimiento = DateTime.Now.AddMonths(1),
                        Canjeado    = '0',
                        Username    = usuario.Username
                    };
                    if (await cmd.Insert(reset))
                    {
                        if (await cmd.Insert(persona, false))
                        {
                            if (await cmd.Insert(usuario, false))
                            {
                                var rol = await cmd.Get <Rol>(usuario.Id_rol);

                                String salt = Tools.EncriptarUrlCompatible(usuario.Username + reset.Codigo);
                                var    m    = Mensajes.ActivacionCuenta;
                                m.AgregarDestinatario(persona.Email, persona.Nombres + " " + persona.Apellidos);
                                m.ConfigurarAsunto("rol", rol.Nombre);
                                m.ConfigurarMensaje("rol", rol.Nombre);
                                m.ConfigurarMensaje("usuario", usuario.Username);
                                m.ConfigurarMensaje("codigo", reset.Codigo);
                                m.ConfigurarMensaje("salt", salt);
                                ClienteSmtp.Enviar(m);
                                return(Ok());
                            }
                            await cmd.Delete(usuario);
                        }
                        await cmd.Delete(persona);
                    }
                }
                else if (await cmd.Insert(persona, false))
                {
                    if (await cmd.Insert(usuario, false))
                    {
                        return(Ok(Tools.GenerarToken(usuario, persona)));
                    }
                    await cmd.Delete(persona);
                }
                return(BadRequest());
            }
            catch (Exception e)
            {
                var a = new
                {
                    Error = new
                    {
                        Mensaje = e.Message,
                        Inner   = e.InnerException,
                        Fuente  = e.Source
                    }
                };
                return(StatusCode(400, a));
            }
        }