예제 #1
0
        public static void changeUserPassword(UsuarioAdministrador user)
        {
            OracleConnection con     = null;
            OracleCommand    command = null;
            string           query   = "";

            try
            {
                con = new OracleConnection(Constantes.DATA_SOURCE);
                con.Open();

                query   = "UPDATE usuario_admin SET clave = :p_nuevaClave WHERE nombre_usuario = :p_username";
                command = new OracleCommand(query, con);
                command.Parameters.Add(new OracleParameter("p_nuevaClave", user.clave));
                command.Parameters.Add(new OracleParameter("p_username", user.username));
                command.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw new Exception("Error desconocido, contacte al administrador");
            }
            finally
            {
                con.Close();
            }
        }
예제 #2
0
        public string ModificarAdministrador(int _idEmpresa, UsuarioAdministrador _usuario)
        {
            EmpresaController controladorEmpresa = new EmpresaController();
            var    empresa = controladorEmpresa.ObtenerEmpresa(_idEmpresa);
            string mensaje = "";

            if (empresa != null)
            {
                var optionsBuilder = new DbContextOptionsBuilder <MyContextEmpresa>();
                optionsBuilder.UseSqlServer(empresa.Conexion);

                using (var ctx = new MyContextEmpresa(optionsBuilder.Options))
                {
                    var admin = ctx.Administradores.Find(_usuario.ID);

                    if (admin != null)
                    {
                        admin.Nombre   = _usuario.Nombre;
                        admin.Apellido = _usuario.Apellido;
                        admin.Email    = _usuario.Email;
                        ctx.SaveChanges();
                        mensaje = "OK";
                    }
                    else
                    {
                        mensaje = "No existe el Administrador";
                    }
                }
            }
            else
            {
                mensaje = "No existe la Empresa";
            }
            return(mensaje);
        }
예제 #3
0
        protected void btnLogeo_Click(object sender, EventArgs e)
        {
            UsuarioAdministrador usuario = null;

            try
            {
                usuario          = new UsuarioAdministrador();
                usuario.username = txtUsermane.Text;
                usuario.clave    = txtPassword.Text;

                if (UsuarioAdministradorBLL.getInstance.validarUsuario(usuario))
                {
                    Session["administrador"] = usuario;
                    Response.Redirect("../Paginas/PanelAdministrador.aspx");
                }
                else
                {
                    UtilScript.executeJS("msgLoginError('Credenciales inválidas');", this.Page, 500);
                }
            }
            catch (Exception ex)
            {
                UtilScript.executeJS("msgLoginError('" + ex.Message + "');", this.Page, 500);;
            }
        }
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         usuario = new UsuarioAdministrador();
         usuario = (UsuarioAdministrador)(Session["administrador"]);
     }
 }
예제 #5
0
        public async Task ExecuteAsync()
        {
            var usuarioDb = _usuarioRepository.GetUsuarioByEmail("*****@*****.**");

            if (usuarioDb == null)
            {
                var tipoUsuarioDb   = _tipoUsuarioRepository.GetByDescricao(TipoUsuarioDefaultValuesAccess.GetValue(TipoUsuarioDefaultValues.Administrador));
                var statusUsuarioDb = _statusUsuarioRepository.GetByDescricao(StatusUsuarioDefaultValuesAcess.GetValue(StatusUsuarioDefaultValues.ContaAtiva));
                // Criação do usuário
                Usuario usuario = null;
                try
                {
                    string nome  = "Administrador Padrão";
                    string email = "*****@*****.**";
                    string senha = "admin12345";

                    // Gera o código HASH da senha
                    var senhaHash = new PasswordHasher <Usuario>().HashPassword(usuario, senha);

                    usuario = new Usuario(nome, email, senhaHash, tipoUsuarioDb.Id);
                }
                catch (Exception)
                {
                }

                // Cria o usuário no banco de dados
                var usuarioAdmDb = _usuarioRepository.Create(usuario);

                // Cria o 1° histórico do usuário
                HistoricoStatusUsuario historicoUsuario = null;
                try
                {
                    historicoUsuario = new HistoricoStatusUsuario(statusUsuarioDb.Id, usuarioAdmDb.Id);
                }
                catch (Exception)
                {
                }

                _historicoStatusUsuarioRepository.Create(historicoUsuario);

                // Criação do UsuarioAdministrador
                UsuarioAdministrador usuarioAdm = null;
                try
                {
                    usuarioAdm = new UsuarioAdministrador("123456", usuarioAdmDb.Id);
                }
                catch (Exception)
                {
                }

                // Cria o UsuarioAdministrador no banco de dados
                _usuarioAdministradorRepository.Create(usuarioAdm);

                // Salva as Alterações na DB
                await _usuarioAdministradorRepository.UnitOfWork.SaveDbChanges();
            }
        }
예제 #6
0
        public IActionResult Create([FromBody] UsuarioAdministrador usuarioadministrador)
        {
            if (usuarioadministrador == null)
            {
                return(BadRequest());
            }

            _usuarioAdministradorRepository.Add(usuarioadministrador);

            return(CreatedAtRoute("GetUsuarioAdministrador", new { id = usuarioadministrador.IdusuarioAdm }, usuarioadministrador));
        }
 public void changePassword(UsuarioAdministrador usuario, string claveActual, string claveConfirm)
 {
     validateChangePassword(usuario, claveActual, claveConfirm);
     if (UsuarioAdministradorDAL.validatePasswordUser(usuario, claveActual))
     {
         UsuarioAdministradorDAL.changeUserPassword(usuario);
     }
     else
     {
         throw new Exception("La clave actual es inválida");
     }
 }
 public IActionResult Post([FromQuery] int idEmpresa, [FromBody] UsuarioAdministrador usuario)
 {
     try
     {
         bl.EmpresaController controlador = new bl.EmpresaController();
         controlador.AgregarAdministrador(idEmpresa, usuario);
         return(Ok(new { result = true, message = "Administrador creado correctamente" }));
     }
     catch (Exception ex)
     {
         return(Ok(new { result = false, message = ex.Message }));
     }
 }
        public bool validarUsuario(UsuarioAdministrador usuario)
        {
            if (usuario.username.Equals(""))
            {
                throw new ValidacionException("Campo rut es requerido");
            }

            if (usuario.clave.Equals(""))
            {
                throw new ValidacionException("Campo contraseña es requerido");
            }

            return(UsuarioAdministradorDAL.validateUser(usuario));
        }
        private void validateChangePassword(UsuarioAdministrador usuario, string claveActual, string claveConfirm)
        {
            if (usuario.clave == "")
            {
                throw new ValidacionException("Campo contraseña es requerido");
            }

            if (claveActual == "")
            {
                throw new Exception("Debe ingresar su clave actual");
            }

            if (usuario.clave != claveConfirm)
            {
                throw new ValidacionException("La clave de confirmación no coinciden");
            }
        }
 public IActionResult ModificarAdministrador(int idEmpresa, [FromBody] UsuarioAdministrador usuario)
 {
     bl.EmpresaController controladorEmpresa = new bl.EmpresaController();
     try
     {
         var mensaje = controladorEmpresa.ModificarAdministrador(idEmpresa, usuario);
         if (mensaje == "OK")
         {
             return(Ok(new { result = true, message = "Se modifico correctamente." }));
         }
         else
         {
             return(Ok(new { result = false, message = mensaje }));
         }
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.StackTrace));
     }
 }
예제 #12
0
        /// <summary>
        /// Consulta la base de datos en base a los datos ingresados
        /// </summary>
        /// <param name="usuario"></param>
        /// <returns></returns>
        public static bool validateUser(UsuarioAdministrador usuario)
        {
            OracleConnection con           = null;
            OracleCommand    command       = null;
            OracleDataReader reader        = null;
            string           query         = "";
            bool             existeUsuario = false;

            try
            {
                con = new OracleConnection(Constantes.DATA_SOURCE);
                con.Open();

                query   = "SELECT nombre_usuario, clave FROM usuario_admin WHERE nombre_usuario = :p_username AND clave = :p_clave";
                command = new OracleCommand(query, con);
                command.Parameters.Add(new OracleParameter("p_username", usuario.username));
                command.Parameters.Add(new OracleParameter("p_clave", usuario.clave));

                reader = command.ExecuteReader();

                //Si hay filas
                if (reader.HasRows)
                {
                    //Si logra leer
                    if (reader.Read())
                    {
                        existeUsuario = true;
                    }
                }
            }
            catch (Exception)
            {
                throw new Exception("Error desconocido, contacte al administrador");
            }
            finally
            {
                con.Close();
            }

            return(existeUsuario);
        }
예제 #13
0
        public void AgregarAdministrador(int _idEmpresa, UsuarioAdministrador _usuario)
        {
            EmpresaController controladorEmpresa = new EmpresaController();
            var empresa = controladorEmpresa.ObtenerEmpresa(_idEmpresa);

            var optionsBuilder = new DbContextOptionsBuilder <MyContextEmpresa>();

            optionsBuilder.UseSqlServer(empresa.Conexion);

            using (var ctx = new MyContextEmpresa(optionsBuilder.Options))
            {
                using (var sha256 = SHA256.Create())
                {
                    var hashedBytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(_usuario.Password));
                    var hash        = BitConverter.ToString(hashedBytes).Replace("-", "").ToLower();
                    _usuario.Password = hash;
                }
                ctx.Administradores.Add(_usuario);
                ctx.SaveChanges();
            }
        }
예제 #14
0
        public static bool validatePasswordUser(UsuarioAdministrador user, string currentPassword)
        {
            OracleConnection con     = null;
            OracleCommand    command = null;
            OracleDataReader reader  = null;
            string           query   = "";
            bool             isValid = false;

            try
            {
                con = new OracleConnection(Constantes.DATA_SOURCE);
                con.Open();

                query   = "SELECT clave FROM usuario_admin WHERE nombre_usuario = :p_username AND clave =:p_clave";
                command = new OracleCommand(query, con);
                command.Parameters.Add(new OracleParameter("p_username", user.username));
                command.Parameters.Add(new OracleParameter("p_clave", currentPassword));

                reader = command.ExecuteReader();

                if (reader.HasRows)
                {
                    if (reader.Read())
                    {
                        isValid = true;
                    }
                }
            }
            catch (Exception)
            {
                throw new Exception("Error desconocido, contacte al administrador");
            }
            finally
            {
                con.Close();
            }

            return(isValid);
        }
        protected void btnCambiarClave_Click(object sender, EventArgs e)
        {
            UsuarioAdministrador usuario = null;
            string claveActual           = "";
            string claveConfirm          = "";

            try
            {
                usuario          = new UsuarioAdministrador();
                usuario.username = usuarioAdmin.username;
                usuario.clave    = txtNuevClave.Text;
                claveActual      = txtClaveActual.Text;
                claveConfirm     = txtNuevaClaveConfirm.Text;
                UsuarioAdministradorBLL.getInstance.changePassword(usuario, claveActual, claveConfirm);

                UtilScript.executeJS("msgRespuesta('Contraseña cambiada con éxito','success');", this.Page, 500);
            }
            catch (Exception ex)
            {
                UtilScript.executeJS("msgRespuesta('" + ex.Message + "','error');", this.Page, 500);
            }
        }
예제 #16
0
 public void Update(UsuarioAdministrador usuarioadministrador)
 {
     _context.usuarioadministrador.Update(usuarioadministrador);
     _context.SaveChanges();
 }
예제 #17
0
 public void Add(UsuarioAdministrador usuarioadministrador)
 {
     _context.usuarioadministrador.Add(usuarioadministrador);
     _context.SaveChanges();
 }
        public async Task <IActionResult> CriarUsuarioAdministrador(CriarUsuarioAdministradorInput input)
        {
            // Verifica se existe um usuário com mesmo email cadastrado no sistema
            var usuarioDb = _usuarioRepository.GetUsuarioByEmail(input.Email);

            if (usuarioDb != null)
            {
                return(StatusCode(400, "Já existe um usuário cadastrado com este email."));
            }

            // Verifica se existe um aluno cadastrado com mesmo email
            var alunoDb = _alunoRepository.BuscarPorEmail(input.Email);

            if (alunoDb != null)
            {
                return(StatusCode(400, $"Já existe um aluno cadastrado com email [{input.Email}] no sistema."));
            }

            var tipoAdmDb       = _tipoUsuarioRepository.GetByDescricao(TipoUsuarioDefaultValuesAccess.GetValue(TipoUsuarioDefaultValues.Administrador));
            var statusUsuarioDb = _statusUsuarioRepository.GetByDescricao(StatusUsuarioDefaultValuesAcess.GetValue(StatusUsuarioDefaultValues.ContaAtiva));

            // Cria o usuário
            Usuario usuario = null;

            try
            {
                // Gera Hash da senha
                var senhaHash = new PasswordHasher <Usuario>().HashPassword(usuario, input.Senha);

                usuario = new Usuario(input.Nome, input.Email, senhaHash, tipoAdmDb.Id);
            }
            catch (Exception)
            {
                return(StatusCode(500, "Houve um erro interno ao criar o usuário."));
            }

            usuarioDb = _usuarioRepository.Create(usuario);

            // Cria o 1° histórico do usuário
            HistoricoStatusUsuario historicoUsuario = null;

            try
            {
                historicoUsuario = new HistoricoStatusUsuario(statusUsuarioDb.Id, usuarioDb.Id);
            }
            catch (Exception)
            {
                return(StatusCode(500, "Houve um erro interno ao criar o histórico do usuário."));
            }

            _historicoStatusUsuarioRepository.Create(historicoUsuario);

            // Cria o usuário administrador
            UsuarioAdministrador usuarioAdm = null;

            try
            {
                usuarioAdm = new UsuarioAdministrador(input.Nif, usuarioDb.Id);
            }
            catch (Exception)
            {
                return(StatusCode(500, "Houve um erro interno ao vincular o usuário à um perfil de Administrador."));
            }

            _usuarioAdministradorRepository.Create(usuarioAdm);

            await _usuarioAdministradorRepository.UnitOfWork.SaveDbChanges();

            return(StatusCode(200, $"Usuário [{usuarioDb.Email}] com perfil de {tipoAdmDb.Descricao} criado com sucesso!"));
        }