public static bool VerificarUsuario(Constructor_Usuario cd)
        {
            bool retorno = false;

            try
            {
                string       query1    = "SELECT * FROM tbusuario WHERE BINARY usuario = ?usercomp";
                MySqlCommand cmdselect = new MySqlCommand(query1, Conexion_Config.ObtenerConexion());
                cmdselect.Parameters.Add(new MySqlParameter("usercomp", cd.usuario));
                retorno = Convert.ToBoolean(cmdselect.ExecuteScalar());
                if (retorno == true)
                {
                    MessageBox.Show("El usuario que desea recuperar ha sido verificado", "Proceso completado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("El usuario que desea recuperar no ha sido encontrado, Verifique los datos ingresados", "Proceso no completado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Opss! Ha ocurrido un fallo en la conexion" + ex, "Error Critico", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(retorno);
            }
        }
        public static bool VerificarAdmin(Constructor_Usuario cc)
        {
            bool retorno = false;

            try
            {
                int          tipoUsuario = 2;
                string       query1      = "SELECT * FROM tbusuario WHERE BINARY usuario = ?usercomp AND  BINARY clave = ?encripClave AND id_tipousuario = ?tipoUser";
                MySqlCommand cmdselect   = new MySqlCommand(query1, Conexion_Config.ObtenerConexion());
                cmdselect.Parameters.Add(new MySqlParameter("usercomp", cc.usuario));
                cmdselect.Parameters.Add(new MySqlParameter("encripClave", cc.clave));
                cmdselect.Parameters.Add(new MySqlParameter("tipoUser", tipoUsuario));
                retorno = Convert.ToBoolean(cmdselect.ExecuteScalar());
                if (retorno == true)
                {
                    MessageBox.Show("Su usuario Administrador ha sido verificado", "Proceso completado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("Su usuario no ha sido encontrado, Verifique los datos ingresados", "Proceso no completado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lo sentimos ha ocurrido un error con la conexion" + ex, "Error Critico", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(retorno);
            }
        }
Пример #3
0
        private void BtnValidarCredenciales_Click(object sender, EventArgs e)
        {
            if (ControlRecuCorreo.VerficarCredenciales(txtUsuarioRecuperar.Text, txtEmail.Text) == true)
            {
                Random rmd = new Random();
                int    a   = rmd.Next(0, 10);
                int    b   = rmd.Next(0, 10);
                int    c   = rmd.Next(0, 10);
                int    d   = rmd.Next(0, 10);
                int    r   = rmd.Next(0, 10);
                int    f   = rmd.Next(0, 10);

                string codigo = a.ToString() + b.ToString() + c.ToString() + d.ToString() + r.ToString() + f.ToString();

                ConstructorEmpresa_Controlador mail = new ConstructorEmpresa_Controlador();
                string sending                   = Constructor_RecuCorreo.correo;
                Constructor_Usuario recu         = new Constructor_Usuario();
                string email                     = txtEmail.Text;
                System.Net.Mail.MailMessage mssg = new System.Net.Mail.MailMessage();
                mssg.To.Add(email);
                mssg.Subject         = "Nuevo código de recuperación de contraseña";
                mssg.SubjectEncoding = System.Text.Encoding.UTF8;

                mssg.Body         = "Su código de recuperación de contraseña es " + codigo + " por favor, inicie sesión con su usuario y el código asignado.";
                mssg.BodyEncoding = Encoding.UTF8;
                mssg.IsBodyHtml   = true;
                mssg.From         = new System.Net.Mail.MailAddress(sending);

                System.Net.Mail.SmtpClient cliente = new System.Net.Mail.SmtpClient();

                cliente.Credentials = new System.Net.NetworkCredential(sending, "SaboresITR2019");
                cliente.Host        = "smtp.gmail.com";
                cliente.Port        = 587;
                cliente.EnableSsl   = true;
                try
                {
                    if (ControlRecuCorreo.ActualizarContra(Constructor_Usuario.id_usuario, Validaciones.md5(codigo)) == true)
                    {
                        cliente.Send(mssg);
                        txtCodigo.Enabled              = true;
                        BtnVerificarCodigo.Enabled     = true;
                        txtUsuarioRecuperar.Enabled    = false;
                        txtEmail.Enabled               = false;
                        BtnValidarCredenciales.Enabled = false;
                        MessageBox.Show("Código de verificación enviado exitosamente, ahora ingrese el código de verificación", "Datos enviados exitosamente", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }
 private void BtnActualizar_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("¿Desea actualizar los datos del usuario?", "Confirmación de actualización", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
     {
         Constructor_Usuario actualizacion = new Constructor_Usuario();
         Constructor_Usuario.id_usuario = int.Parse(txtId.Text);
         actualizacion.nombres          = txtNombres.Text;
         actualizacion.apellidos        = txtApellidos.Text;
         if (radCarne.Checked == true)
         {
             radDui.Checked = false;
             maskDui.Clear();
             actualizacion.documento = txtCarne.Text;
         }
         else if (radDui.Checked == true)
         {
             radCarne.Checked = false;
             txtCarne.Clear();
             actualizacion.documento = maskDui.Text;
         }
         actualizacion.nacimiento = dtNacimiento.Text;
         actualizacion.email      = txtCorreo.Text;
         int intentos = 0;
         actualizacion.intentos        = intentos;
         actualizacion.id_empresa      = Convert.ToInt16(cmbEmpresa.SelectedValue);
         actualizacion.id_estado       = Convert.ToInt16(cmbEstado.SelectedValue);
         actualizacion.id_tipo_usuario = Convert.ToInt16(cmbTipoUsuario.SelectedValue);
         MemoryStream ms = new MemoryStream();
         pbFoto.Image.Save(ms, ImageFormat.Jpeg);
         byte[] aByte   = ms.ToArray();
         string decoded = Convert.ToBase64String(aByte);
         actualizacion.imagen = decoded;
         int verificar_proceso = ControlUsuarios_Modelo.Actualizar_Usuario(actualizacion);
         if (verificar_proceso >= 1)
         {
             Mostrar_Usuarios();
             LimpiarCampos();
             activarBotones();
         }
         else
         {
             MessageBox.Show("Los datos no pudieron ser actualizados, intentelo nuevamente", "Proceso fallido", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
     }
 }
        public static int Ingresar_Usuario(Constructor_Usuario cpri)
        {
            int retorno = 0;

            try
            {
                string       query     = "SELECT * FROM tbusuario WHERE usuario = ?usuario OR documento = ?documento";
                MySqlCommand cmdselect = new MySqlCommand(query, Conexion_Config.ObtenerConexion());
                cmdselect.Parameters.Add(new MySqlParameter("usuario", cpri.usuario));
                cmdselect.Parameters.Add(new MySqlParameter("documento", cpri.documento));
                retorno = Convert.ToInt16(cmdselect.ExecuteNonQuery());
                if (retorno >= 1)
                {
                    MessageBox.Show("El usuario o el documento que desea registrar ya se encuentra en la base de datos, verifique sus datos.", "Error de datos", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    retorno = 0;
                }
                else
                {
                    MySqlCommand cmdinsert = new MySqlCommand(string.Format("INSERT INTO tbusuario (usuario, clave, nombres, apellidos, documento, nacimiento, email, intentos, id_empresa, id_estado, id_tipousuario, foto) VALUES ('" + cpri.usuario + "','" + cpri.clave + "','" + cpri.nombres + "','" + cpri.apellidos + "','" + cpri.documento + "','" + cpri.nacimiento + "','" + cpri.email + "','" + cpri.intentos + "','" + cpri.id_empresa + "','" + cpri.id_estado + "','" + cpri.id_tipo_usuario + "','" + cpri.imagen + "')"), Conexion_Config.ObtenerConexion());
                    retorno = Convert.ToInt16(cmdinsert.ExecuteNonQuery());
                    if (retorno >= 1)
                    {
                        MessageBox.Show("Usuario agregado exitosamente.", "Proceso completado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("El usuario que desea ingresar no pudo ser registrado.", "Error de ingreso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        retorno = 0;
                    }
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ha ocurrido un error en la inserción de un nuevo usuario, verifique su conexión a internet, si el problema persiste consulte al administrador." + ex.Message, "Error critico", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(retorno);
            }
            finally
            {
                Conexion_Config.ObtenerConexion().Close();
            }
        }
        public static int Actualizar_Usuario(Constructor_Usuario act)
        {
            int retorno = 0;

            try
            {
                MySqlCommand cmdupdate = new MySqlCommand(string.Format("UPDATE tbusuario SET nombres = '" + act.nombres + "', apellidos = '" + act.apellidos + "', documento = '" + act.documento + "', nacimiento = '" + act.nacimiento + "', email = '" + act.email + "', intentos  ='" + act.intentos + "', id_empresa = '" + act.id_empresa + "', id_estado = '" + act.id_estado + "', id_tipousuario = '" + act.id_tipo_usuario + "', foto = '" + act.imagen + "' WHERE id_usuario = '" + Constructor_Usuario.id_usuario + "'"), Conexion_Config.ObtenerConexion());
                retorno = Convert.ToInt16(cmdupdate.ExecuteNonQuery());
                if (retorno >= 1)
                {
                    MessageBox.Show("Los datos han sido actualizados correctamente", "Datos actualizados", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ha ocurrido un error durante la actualización de datos del usuario, revise su conexión a internet y si el error persiste consulte con el administrador. " + ex.Message, "Error de actualización", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(retorno);
            }
        }
        public static bool ActualizarConstraseña(Constructor_Usuario act)
        {
            bool retorno = false;

            try
            {
                MySqlCommand cmdact = new MySqlCommand(string.Format("UPDATE tbusuario SET clave = '{0}' WHERE usuario = '{1}'", act.clave, act.usuario), Conexion_Config.ObtenerConexion());
                retorno = Convert.ToBoolean(cmdact.ExecuteNonQuery());
                if (retorno == true)
                {
                    MessageBox.Show("Contraseña actualizada correctamente", "Proceso completado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("No se pudo cambiar la Contraseña, Vuelva a intentarlo", "Proceso no completado", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Oops! Ha ocurrido un error, revise su conexion a internet" + ex, "Error critico", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(retorno);
            }
        }
        void Agregar_Usuario()
        {
            DateTime hoy = DateTime.Today;

            if (string.IsNullOrWhiteSpace(txtUsuario.Text) ||
                string.IsNullOrWhiteSpace(txtNombres.Text) ||
                string.IsNullOrWhiteSpace(txtApellidos.Text) ||
                string.IsNullOrWhiteSpace(txtCorreo.Text) ||
                string.IsNullOrWhiteSpace(dtNacimiento.Text))
            {
                MessageBox.Show("No se puede almacenar la información debido que algunos campos estan vacíos.", "Campos vacíos", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (dtNacimiento.Value.Date >= hoy)
            {
                MessageBox.Show("La fecha de nacimiento proporcionada no puede ser igual o mayor a la fecha actual.", "Error en fecha de nacimiento", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (maskDui.Text.Trim() == "-" && txtCarne.Text.Trim() == "")
            {
                MessageBox.Show("Brinde un documento de identificación, recuerde que puede proporcionar su numero de DUI o número de carné en caso de ser un estudiante.", "Documento faltante", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (dtNacimiento.Value.AddYears(18) > hoy && maskDui.Text.Trim() != "-")
            {
                MessageBox.Show("Usted ha proporcionado un numero de dui siendo menor de edad, verifique que los datos sean correctos", "Fecha de nacimiento incorrecta", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (pbFoto.Image == null)
            {
                MessageBox.Show("Debes cargar una fotografia en el perfil del usuario.", "Datos faltantes", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                Constructor_Usuario reg = new Constructor_Usuario();
                reg.usuario = txtUsuario.Text;
                string clave = Validaciones.md5(txtUsuario.Text + "primeruso");
                //MessageBox.Show(clave);
                reg.clave     = clave;
                reg.nombres   = txtNombres.Text;
                reg.apellidos = txtApellidos.Text;
                if (radCarne.Checked == true)
                {
                    radDui.Checked = false;
                    maskDui.Clear();
                    reg.documento = txtCarne.Text;
                }
                else if (radDui.Checked == true)
                {
                    radCarne.Checked = false;
                    txtCarne.Clear();
                    reg.documento = maskDui.Text;
                }
                reg.nacimiento      = dtNacimiento.Text;
                reg.email           = txtCorreo.Text;
                reg.intentos        = 0;
                reg.id_empresa      = Convert.ToInt16(cmbEmpresa.SelectedValue);
                reg.id_estado       = Convert.ToInt16(cmbEstado.SelectedValue);
                reg.id_tipo_usuario = Convert.ToInt16(cmbTipoUsuario.SelectedValue);
                MemoryStream ms = new MemoryStream();
                pbFoto.Image.Save(ms, ImageFormat.Jpeg);
                byte[] aByte   = ms.ToArray();
                string decoded = Convert.ToBase64String(aByte);
                reg.imagen = decoded;
                int datos = ControlUsuarios_Modelo.Ingresar_Usuario(reg);
                if (datos >= 1)
                {
                    LimpiarCampos();
                }
            }
        }
        void Registrar_Usuario()
        {
            DateTime hoy = DateTime.Today;

            if (txtNombres.Text.Trim() == "" ||
                txtApellidos.Text.Trim() == "" ||
                maskDui.Text.Trim() == "" && txtCarne.Text.Trim() == "" ||
                txtUsuario.Text.Trim() == "" ||
                txtEmail.Text == "" ||
                txtClave.Text.Trim() == "" ||
                txtConfClave.Text.Trim() == "")
            {
                MessageBox.Show("Algunos campos están vacíos.", "Datos faltantes", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (pbFoto.Image == null)
            {
                MessageBox.Show("Ha faltado cargar una foto al perfil del nuevo usuario", "Foto faltante", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (txtClave.Text != txtConfClave.Text)
            {
                MessageBox.Show("Las claves no coinciden, vuelva a ingresarlas", "Claves no coinciden", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                txtClave.Clear();
                txtConfClave.Clear();
            }
            else if (Convert.ToInt16(cmbPregunta1.SelectedValue) == Convert.ToInt16(cmbPregunta2.SelectedValue) ||
                     Convert.ToInt16(cmbPregunta1.SelectedValue) == Convert.ToInt16(cmbPregunta3.SelectedValue) ||
                     Convert.ToInt16(cmbPregunta1.SelectedValue) == Convert.ToInt16(cmbPregunta4.SelectedValue) ||
                     Convert.ToInt16(cmbPregunta2.SelectedValue) == Convert.ToInt16(cmbPregunta3.SelectedValue) ||
                     Convert.ToInt16(cmbPregunta2.SelectedValue) == Convert.ToInt16(cmbPregunta4.SelectedValue) ||
                     Convert.ToInt16(cmbPregunta3.SelectedValue) == Convert.ToInt16(cmbPregunta4.SelectedValue))
            {
                MessageBox.Show("Verique que ha seleccionado y respondido a preguntas diferentes, no esta permitido responder dos veces a la misma pregunta.", "Verificación de pregunta", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (dtNacimiento.Value.Date >= hoy)
            {
                MessageBox.Show("Verifique la fecha seleccionada, ya que es igual o pertenece a una fecha futura", "Error en fecha de nacimiento", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                Constructor_Usuario user = new Constructor_Usuario();
                user.usuario   = txtUsuario.Text;
                user.clave     = Validaciones.md5(txtConfClave.Text);
                user.nombres   = txtNombres.Text;
                user.apellidos = txtApellidos.Text;
                if (radCarne.Checked == true)
                {
                    user.documento = txtCarne.Text;
                }
                else if (radDui.Checked == true)
                {
                    user.documento = maskDui.Text;
                }
                user.nacimiento      = dtNacimiento.Text;
                user.email           = txtEmail.Text;
                user.intentos        = 0;
                user.id_empresa      = Convert.ToInt16(cmbEmpresa.SelectedValue);
                user.id_estado       = Convert.ToInt16(cmbEstado.SelectedValue);
                user.id_tipo_usuario = Convert.ToInt16(cmbTipoUsuario.SelectedValue);
                MemoryStream ms = new MemoryStream();
                pbFoto.Image.Save(ms, ImageFormat.Jpeg);
                byte[] aByte   = ms.ToArray();
                string encoded = Convert.ToBase64String(aByte);
                user.imagen = encoded;
                int datos = ControlUsuarios_Modelo.Ingresar_Usuario(user);
                if (datos >= 1)
                {
                    ControlUsuarios_Modelo.Buscar_usuario(txtUsuario.Text);
                    txtId.Text = Constructor_Usuario.id_usuario.ToString();
                    Constructor_Respuestas res = new Constructor_Respuestas();
                    for (int i = 0; i < 4; i++)
                    {
                        switch (i)
                        {
                        case 0:
                            res.respuesta   = Validaciones.md5(txtRespuesta1.Text);
                            res.id_pregunta = Convert.ToInt16(cmbPregunta1.SelectedValue);
                            int res1 = ControlUsuarios_Modelo.Ingresar_Respuesta(res, Convert.ToInt16(txtId.Text));
                            break;

                        case 1:
                            res.respuesta   = Validaciones.md5(txtRespuesta2.Text);
                            res.id_pregunta = Convert.ToInt16(cmbPregunta2.SelectedValue);
                            int res2 = ControlUsuarios_Modelo.Ingresar_Respuesta(res, Convert.ToInt16(txtId.Text));
                            break;

                        case 2:
                            res.respuesta   = Validaciones.md5(txtRespuesta3.Text);
                            res.id_pregunta = Convert.ToInt16(cmbPregunta3.SelectedValue);
                            int res3 = ControlUsuarios_Modelo.Ingresar_Respuesta(res, Convert.ToInt16(txtId.Text));
                            break;

                        case 3:
                            res.respuesta   = Validaciones.md5(txtRespuesta4.Text);
                            res.id_pregunta = Convert.ToInt16(cmbPregunta4.SelectedValue);
                            int res4 = ControlUsuarios_Modelo.Ingresar_Respuesta(res, Convert.ToInt16(txtId.Text));
                            break;

                        default:
                            break;
                        }
                    }
                    MessageBox.Show("Hemos finalizado con la configuración inicial, en este momento te mostrare el Inicio de Sesión para que escribas las credenciales del usuario que acabas de crear.", "Proceso finalizado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    FrmLogin log = new FrmLogin();
                    log.Show();
                    this.Close();
                }
            }
        }