public IHttpActionResult InativarUsuario(object modelusuario) { dynamic ususario = JsonConvert.DeserializeObject(modelusuario.ToString()); string ID = ususario.ID; int ID_ADMIN = Convert.ToInt32(ususario.ID_ADMIN); int id = Convert.ToInt32(ID); if (id > 0) { Usuario user = _dbContext.Usuario.FirstOrDefault(c => c.ID_USUARIO == id); user.FLAG_ATIVO = false; UsuarioLog ulog = new UsuarioLog(); ulog.ID_USUARIO = ID_ADMIN; ulog.ID_USUARIO_ALTERADO = id; ulog.DATA_LOG = DateTime.Now; ulog.DESCRICAO_LOG = string.Format("O usuário '{0}' foi inativado pelo administrador '{1}'.", user.NOME_COMPLETO, ususario.NOME_ADMIN); _dbContext.UsuarioLog.Add(ulog); _dbContext.SaveChanges(); return(Ok("Usuário Inativo")); } return(BadRequest(ModelState)); }
public IHttpActionResult ResetarSenhaUsuario(object modelusuario) { dynamic ususario = JsonConvert.DeserializeObject(modelusuario.ToString()); string CPF = ususario.CPF; string ID = ususario.ID; int ID_ADMIN = Convert.ToInt32(ususario.ID_ADMIN); //Criando o SALT RandomNumberGenerator rng = RandomNumberGenerator.Create(); byte[] number = new byte[32]; rng.GetBytes(number); string pass_salt = Convert.ToBase64String(number); //Criando o hash da primeira senha (CPF) do novo usuário crypt = SHA256Managed.Create(); string senha = "depa123"; if (!String.IsNullOrWhiteSpace(CPF)) { senha = CPF; } string pass = senha; byte[] passbytes = Encoding.UTF8.GetBytes(pass_salt + pass); byte[] hash = crypt.ComputeHash(passbytes); int id = Convert.ToInt32(ID); if (id > 0) { Usuario user = _dbContext.Usuario.FirstOrDefault(c => c.ID_USUARIO == id && c.FLAG_ATIVO); user.SALT = pass_salt; user.SENHA = Convert.ToBase64String(hash); UsuarioLog ulog = new UsuarioLog(); ulog.ID_USUARIO = ID_ADMIN; ulog.ID_USUARIO_ALTERADO = id; ulog.DATA_LOG = DateTime.Now; ulog.DESCRICAO_LOG = string.Format("O usuário '{0}' teve a sua senha resetada pelo administrador '{1}'.", user.NOME_COMPLETO, ususario.NOME_ADMIN); _dbContext.UsuarioLog.Add(ulog); _dbContext.SaveChanges(); return(Ok("Senha Alterada com Sucesso")); } return(BadRequest(ModelState)); }
public void agregarUsuario(UsuarioLoginModel newUsuario) { var nuevoUsuario = new UsuarioLog(); nuevoUsuario.NombreUser = newUsuario.nombreUsuario; nuevoUsuario.EmailUser = newUsuario.emailUsuario; string salt = EncryptSC.crearSalt(5); nuevoUsuario.PasswordUser = salt + EncryptSC.GetSHA256(newUsuario.passwordUsuario); dbContext.UsuarioLogs.Add(nuevoUsuario); dbContext.SaveChanges(); }
public IHttpActionResult Logout() { int idUsuario = Convert.ToInt32(_authenticationManager.User.Identity.Name); Usuario user = _dbContext.Usuario.FirstOrDefault(x => x.ID_USUARIO == idUsuario); UsuarioLog ulog = new UsuarioLog(); ulog.ID_USUARIO = user.ID_USUARIO; ulog.DATA_LOG = DateTime.Now; ulog.DESCRICAO_LOG = string.Format("O atendente '{0}' realizou o logout do sistema de atendimento do DEPA.", user.NOME_COMPLETO); _dbContext.UsuarioLog.Add(ulog); _dbContext.SaveChanges(); _authenticationManager.SignOut(CookieAuthenticationDefaults.AuthenticationType); return(Ok()); }
public IHttpActionResult ResetarSenha(RegistroUsuarioViewModel model) { if (model == null) { ModelState.AddModelError("", "Error"); return(BadRequest(ModelState)); } if (model.Senha != "") { //Criando o SALT RandomNumberGenerator rng = RandomNumberGenerator.Create(); byte[] number = new byte[32]; rng.GetBytes(number); string pass_salt = Convert.ToBase64String(number); //Criando o hash da primeira senha (CPF) do novo usuário crypt = SHA256Managed.Create(); string senha = model.NovaSenha; string pass = senha; byte[] passbytes = Encoding.UTF8.GetBytes(pass_salt + pass); byte[] hash = crypt.ComputeHash(passbytes); int id = Convert.ToInt16(_authenticationManager.User.Identity.Name); if (id > 0) { Usuario user = _dbContext.Usuario.FirstOrDefault(c => c.ID_USUARIO == id); user.SENHA = Convert.ToBase64String(hash); user.SALT = pass_salt; UsuarioLog ulog = new UsuarioLog(); ulog.ID_USUARIO = id; ulog.DATA_LOG = DateTime.Now; ulog.DESCRICAO_LOG = string.Format("O usuário '{0}' alterou a sua senha.", user.NOME_COMPLETO); _dbContext.UsuarioLog.Add(ulog); _dbContext.SaveChanges(); return(Ok()); } } return(Ok("Senha Alterada com Sucesso")); }
public static void userLoginHistory(String usuario) { try { using (DbConnection db = new OracleContext().getConnection()) { UsuarioLog usuarioLog = new UsuarioLog(); usuarioLog.usuario = usuario; usuarioLog.fecha = DateTime.Now; db.Query <UsuarioLog>("INSERT INTO USUARIO_LOG VALUES (:usuario, :fecha)", usuarioLog); } } catch (Exception e) { CLogger.write("2", "UsuarioDAO", e); } }
// Salva logs relacionados ao usuário do atendimento public IHttpActionResult salvarLogUsuario(int idUsuario, int idUsuarioAlterado, string descricao) { try { UsuarioLog log = new UsuarioLog(); log.ID_USUARIO = idUsuario; log.ID_USUARIO_ALTERADO = idUsuarioAlterado > 0 ? idUsuarioAlterado : (int?)null; log.DATA_LOG = DateTime.Now; log.DESCRICAO_LOG = descricao; _dbContext.UsuarioLog.Add(log); _dbContext.SaveChanges(); return(Ok()); } catch (Exception ex) { StringBuilder error = new StringBuilder(); error.AppendLine("Um erro ocorreu ao salvar o log de usuário:") .AppendLine(ex.ToString()); LogErrorModel log = new Models.LogErrorModel(Request, error.ToString()); PreenchimentoLog exc = new PreenchimentoLog() { DATA_LOG = log.data, NAVEGADOR = log.browser, IP_CADASTRO = log.ip, DESCRICAO_LOG = log.log, }; _dbContext.PreenchimentoLog.Add(exc); _dbContext.SaveChanges(); ModelState.AddModelError("", ex); return(BadRequest(ModelState)); } }
public IHttpActionResult CriarUsuario(RegistroUsuarioViewModel modelo) { ModelState.Remove("modelo.Senha"); ModelState.Remove("modelo.NovaSenha"); ModelState.Remove("modelo.ConfirmaNovaSenha"); //Validando o registro if (modelo == null) { ModelState.AddModelError("", "Error"); return(BadRequest(ModelState)); } //Verifica o tipo de registro do Usuário (não está sendo mais usado) if (!modelo.TipoUsuario) { ModelState.Remove("modelo.usuarioRG"); ModelState.Remove("modelo.usuarioCPF"); ModelState.Remove("modelo.usuarioEmail"); } //Verificando se o modelo é válido if (!ModelState.IsValid) { return(BadRequest("Preencha os campos obrigatorios marcados com * ")); } //Verifica Login int qtd = _dbContext.Usuario.Count(x => x.LOGIN == modelo.usuarioLogin); if (qtd > 0 && modelo.usuarioID == 0) { return(BadRequest("Login já cadastrado")); } //Verifica CPF int cpf = _dbContext.Usuario.Count(x => x.CPF == modelo.usuarioCPF); if (cpf > 0 && modelo.usuarioID == 0) { return(BadRequest("CPF já cadastrado")); } // Recupera o ID do usuário que está cadastrando ou alterando um usuário int idAdmin = Convert.ToInt32(_authenticationManager.User.Identity.Name); Usuario admin = _dbContext.Usuario.FirstOrDefault(x => x.ID_USUARIO == idAdmin && x.FLAG_ATIVO); //Novo usuário if (modelo.usuarioID == 0) { //Criando o SALT RandomNumberGenerator rng = RandomNumberGenerator.Create(); byte[] number = new byte[32]; rng.GetBytes(number); string pass_salt = Convert.ToBase64String(number); //Criando o hash da primeira senha (CPF) do novo usuário crypt = SHA256Managed.Create(); string senha = "depa123"; if (!String.IsNullOrWhiteSpace(modelo.usuarioCPF)) { senha = modelo.usuarioCPF; } string pass = senha; byte[] passbytes = Encoding.UTF8.GetBytes(pass_salt + pass); byte[] hash = crypt.ComputeHash(passbytes); Usuario novo = new Usuario() { ID_USUARIO = modelo.usuarioID, LOGIN = modelo.usuarioLogin, NOME_COMPLETO = modelo.usuarioNome, EMAIL = modelo.usuarioEmail, CPF = modelo.usuarioCPF, RG = modelo.usuarioRG, RG_UF = modelo.usuarioRG_UF, ID_GRUPO = modelo.GrupoId, DATA_ALTERADO = DateTime.Now, DATA_CADASTRO = DateTime.Now, FLAG_ATIVO = true, PRIMEIRO_ACESSO = true, SALT = pass_salt, SENHA = Convert.ToBase64String(hash), }; _dbContext.Usuario.Add(novo); UsuarioLog ulog = new UsuarioLog(); ulog.ID_USUARIO = idAdmin; ulog.DATA_LOG = DateTime.Now; ulog.DESCRICAO_LOG = string.Format("O administrador '{0}' realizou o cadastro de um novo usuário.", admin.NOME_COMPLETO); _dbContext.UsuarioLog.Add(ulog); _dbContext.SaveChanges(); // Verifica se o retorno do usuário salvo está OK if (novo.ID_USUARIO > 0) { // Verifica se existem unidades selecionadas para o usuário if (modelo.Orgaos != null && modelo.Orgaos.Count > 0) { UsuarioOrgaos orgao; // Grava as informações na tabela de relacionamento foreach (int id in modelo.Orgaos) { orgao = new UsuarioOrgaos(); orgao.ID_USUARIO = novo.ID_USUARIO; orgao.ID_ORGAO = id; orgao.FLAG_ATIVO = true; _dbContext.UsuarioOrgaos.Add(orgao); } //Salva as informações _dbContext.SaveChanges(); } } return(Ok("Usuário cadastrado com sucesso!")); } //Editando usuário if (modelo.usuarioID > 0) { //Recuperando o usuário Usuario user = _dbContext.Usuario.FirstOrDefault(c => c.ID_USUARIO == modelo.usuarioID); user.NOME_COMPLETO = modelo.usuarioNome; user.EMAIL = modelo.usuarioEmail; user.CPF = modelo.usuarioCPF; user.RG = modelo.usuarioRG; user.RG_UF = modelo.usuarioRG_UF; user.ID_GRUPO = modelo.GrupoId; user.DATA_ALTERADO = DateTime.Now; //Verificando a lista de orgãos para alteração List <UsuarioOrgaos> orgaos = _dbContext.UsuarioOrgaos.Where(o => o.ID_USUARIO == modelo.usuarioID).ToList(); //Desativando os orgãos cadastrados no banco que não foram selecionados e estão ativos foreach (UsuarioOrgaos uo in orgaos.Where(x => !modelo.Orgaos.Any(o => o == x.ID_ORGAO) && x.FLAG_ATIVO)) { uo.FLAG_ATIVO = false; } //Ativando os orgãos que existem no banco e estão inativos foreach (UsuarioOrgaos uo in orgaos.Where(x => modelo.Orgaos.Any(o => o == x.ID_ORGAO) && !x.FLAG_ATIVO)) { uo.FLAG_ATIVO = true; } //Registra os novos orgãos marcados que não estão no banco UsuarioOrgaos novo; foreach (int id in modelo.Orgaos.Where(x => !orgaos.Any(o => o.ID_ORGAO == x)).ToList()) { novo = new UsuarioOrgaos(); novo.ID_USUARIO = modelo.usuarioID; novo.ID_ORGAO = id; novo.FLAG_ATIVO = true; _dbContext.UsuarioOrgaos.Add(novo); } //Gerando registro de log UsuarioLog ulog = new UsuarioLog(); ulog.ID_USUARIO = idAdmin; ulog.ID_USUARIO_ALTERADO = modelo.usuarioID; ulog.DATA_LOG = DateTime.Now; ulog.DESCRICAO_LOG = string.Format("O administrador '{0}' alterou o cadastro do usuário '{1}'.", admin.NOME_COMPLETO, user.NOME_COMPLETO); _dbContext.UsuarioLog.Add(ulog); //Salvando as informações em banco _dbContext.SaveChanges(); return(Ok("Usuário alterado com sucesso!")); } return(BadRequest(ModelState)); }
public IHttpActionResult CreateUsuario(RegistroUsuarioViewModel model) { // Recupera o ID do usuário que está cadastrando ou alterando um usuário int idAdmin = Convert.ToInt32(_authenticationManager.User.Identity.Name); Usuario admin = _dbContext.Usuario.FirstOrDefault(x => x.ID_USUARIO == idAdmin && x.FLAG_ATIVO); //Criando o SALT RandomNumberGenerator rng = RandomNumberGenerator.Create(); byte[] number = new byte[32]; rng.GetBytes(number); string pass_salt = Convert.ToBase64String(number); //Criando o hash da primeira senha (CPF) do novo usuário crypt = SHA256Managed.Create(); string senha = "depa123"; if (!String.IsNullOrWhiteSpace(model.usuarioCPF)) { senha = model.usuarioCPF; } string pass = senha; byte[] passbytes = Encoding.UTF8.GetBytes(pass_salt + pass); byte[] hash = crypt.ComputeHash(passbytes); //Passando as informações de senha e salt para o usuário // novo.SENHA = Convert.ToBase64String(hash); //novo.SALT = pass_salt; if (model == null) { ModelState.AddModelError("", "Error"); return(BadRequest(ModelState)); } if (!model.TipoUsuario) { ModelState.Remove("model.usuarioRG"); ModelState.Remove("model.usuarioCPF"); ModelState.Remove("model.usuarioEmail"); ModelState.Remove("model.Senha"); ModelState.Remove("model.NovaSenha"); ModelState.Remove("model.ConfirmaNovaSenha"); } else { ModelState.Remove("model.Senha"); ModelState.Remove("model.NovaSenha"); ModelState.Remove("model.ConfirmaNovaSenha"); } if (!ModelState.IsValid) { // return BadRequest(ModelState); return(BadRequest("Preencha os campos obrigatorios marcados com * ")); } int qtd = _dbContext.Usuario.Count(x => x.LOGIN == model.usuarioLogin); int cpf = _dbContext.Usuario.Count(x => x.CPF == model.usuarioCPF); if (cpf > 0 && model.usuarioID == 0) { return(BadRequest("CPF já cadastrado")); } if (qtd == 0 && model.usuarioID == 0) { _dbContext.Usuario.Add(new Usuario() { ID_USUARIO = model.usuarioID, LOGIN = model.usuarioLogin, NOME_COMPLETO = model.usuarioNome, EMAIL = model.usuarioEmail, CPF = model.usuarioCPF, RG = model.usuarioRG, RG_UF = model.usuarioRG_UF, ID_GRUPO = model.GrupoId, ID_ORGAO = model.OrgaoId, DATA_ALTERADO = DateTime.Now, DATA_CADASTRO = DateTime.Now, FLAG_ATIVO = true, PRIMEIRO_ACESSO = true, SALT = pass_salt, SENHA = Convert.ToBase64String(hash), }); UsuarioLog ulog = new UsuarioLog(); ulog.ID_USUARIO = idAdmin; ulog.DATA_LOG = DateTime.Now; ulog.DESCRICAO_LOG = string.Format("O administrador '{0}' realizou o cadastro de um novo usuário.", admin.NOME_COMPLETO); _dbContext.UsuarioLog.Add(ulog); _dbContext.SaveChanges(); return(Ok("Usuário cadastrado com sucesso!")); } else if (model.usuarioID == 0) { return(BadRequest("Login já cadastrado")); } if (model.usuarioID > 0) { Usuario user = _dbContext.Usuario.FirstOrDefault(c => c.ID_USUARIO == model.usuarioID); user.NOME_COMPLETO = model.usuarioNome; user.EMAIL = model.usuarioEmail; user.CPF = model.usuarioCPF; user.RG = model.usuarioRG; user.RG_UF = model.usuarioRG_UF; user.ID_GRUPO = model.GrupoId; user.ID_ORGAO = model.OrgaoId; user.DATA_ALTERADO = DateTime.Now; UsuarioLog ulog = new UsuarioLog(); ulog.ID_USUARIO = idAdmin; ulog.DATA_LOG = DateTime.Now; ulog.DESCRICAO_LOG = string.Format("O administrador '{0}' alterou o cadastro do usuário '{1}'.", admin.NOME_COMPLETO, user.NOME_COMPLETO); _dbContext.UsuarioLog.Add(ulog); _dbContext.SaveChanges(); return(Ok("Usuário alterado com sucesso!")); } return(BadRequest(ModelState)); }
public IHttpActionResult Logar(RegistroUsuarioViewModel model) { //Criando o hash da primeira senha (CPF) do novo usuário crypt = SHA256Managed.Create(); Usuario user = _dbContext.Usuario.FirstOrDefault(c => c.LOGIN == model.usuarioLogin && c.FLAG_ATIVO); if (user != null) { string pass = model.Senha; byte[] passbytes = Encoding.UTF8.GetBytes(user.SALT + pass); byte[] hash = crypt.ComputeHash(passbytes); if (Convert.ToBase64String(hash) == user.SENHA) { UsuarioLog ulog = new UsuarioLog(); ulog.ID_USUARIO = user.ID_USUARIO; ulog.DATA_LOG = DateTime.Now; ulog.DESCRICAO_LOG = string.Format("O atendente '{0}' realizou o login no sistema de atendimento do DEPA.", user.NOME_COMPLETO); _dbContext.UsuarioLog.Add(ulog); _dbContext.SaveChanges(); UsuarioModel userModel = new UsuarioModel() { ID_USUARIO = user.ID_USUARIO, ID_GRUPO = user.ID_GRUPO, ID_ORGAO = user.ID_ORGAO.HasValue ? user.ID_ORGAO.Value : (int?)null, LOGIN = user.LOGIN, NOME = user.NOME_COMPLETO, EMAIL = user.EMAIL, GRUPO = user.Grupo.DESCRICAO_GRUPO, ORGAO = user.ID_ORGAO.HasValue ? _dbContext.Orgao.FirstOrDefault(o => o.ID_ORGAO == user.ID_ORGAO.Value).NOME_ORGAO : string.Empty, FLAG_CIVIL = new List <int>() { 1, 2, 4, 6 }.Any(i => i == user.ID_GRUPO), FLAG_MILITAR = new List <int>() { 3, 5, 7 }.Any(i => i == user.ID_GRUPO), FLAG_ACESSO = user.PRIMEIRO_ACESSO }; var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationType); identity.AddClaim(new Claim(ClaimTypes.Name, user.ID_USUARIO.ToString())); identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, user.LOGIN)); identity.AddClaim(new Claim(ClaimTypes.Role, user.Grupo.DESCRICAO_GRUPO)); if (user.ID_ORGAO.HasValue) { identity.AddClaim(new Claim("Orgao", user.ID_ORGAO.Value.ToString())); } _authenticationManager.SignOut(CookieAuthenticationDefaults.AuthenticationType); _authenticationManager.SignIn(identity); return(Ok(userModel)); } else { return(BadRequest("Usuário ou senha incorretos")); } } else { return(BadRequest("Usuário ou senha incorretos")); } }