internal void ConfirmacaoEmail(int id, string senha) { var usuario = dbUsuario.BuscarPorId(id); if (usuario.SenhaReset != null) { var senhaDescript = cripto.Decrypt(usuario.SenhaReset); if (senhaDescript == senha) { if (usuario.Senha == usuario.SenhaReset)//Significa que é usuário novo, e deve ativar ele no cadastro { usuario.Ativo = true; } else //Senão é um usuário querendo recuperar a senha, não deve mudar o status ativo do usuário { usuario.Senha = usuario.SenhaReset; } usuario.SenhaReset = ""; var uServer = new UsuarioServer(); uServer.Atualizar(usuario, true); } else { throw new Exception("Código de autenticação não é valido"); } } }
internal void RecuperarSenha(Usuario usuario, string url) { if (usuario.Ativo) { var senha = GeraSenhaAleatoria(); usuario.SenhaReset = cripto.Encrypt(senha); var uServer = new UsuarioServer(); usuario = uServer.Atualizar(usuario, true); url += $"/Login/ConfirmacaoEmail?id={usuario.Id}&s={senha}"; var textEmail = ($@" Foi solicitado a retificação de senha para o seu usuário no sistema SCIR - IFSC, para confirmar a retificação de senha deve entrar no link abaixo <br> {url} <br><br> E a sua senha após entrar no link anterior provisória é: <br>{senha} <br><br>Após efetuar o login é aconselhavel trocar a sua senha no sistema imediatamente!"); EnvioEmail.SendMailGeneric(usuario, textEmail, "Conta de Usuário SCIR - IFSC"); } }
internal void CriarUsuarioAutoCadastro(string email, string url) { if (!ValidateUtils.IsValidEmail(email)) { throw new Exception("e-mail informado não é válido"); } var indiceArroba = email.IndexOf("@"); var dominio = email.Substring(indiceArroba + 1); var usuario = email.Substring(0, indiceArroba); var papel = PapelDao.PapelUsuario.UsuarioNaoAutenticado; if (dominio.ToLower() == "aluno.ifsc.edu.br") { papel = PapelDao.PapelUsuario.Discente; } else if (dominio.ToLower() == "ifsc.edu.br") { papel = PapelDao.PapelUsuario.Servidor; } if (papel != PapelDao.PapelUsuario.UsuarioNaoAutenticado) { var senha = GeraSenhaAleatoria(); var novoUsuario = new Usuario { Nome = usuario, Email = email, Ativo = false, PapelId = (int)papel, Senha = senha, SenhaReset = cripto.Encrypt(senha) }; var uServer = new UsuarioServer(); novoUsuario = uServer.Novo(novoUsuario); url += $"/Login/ConfirmacaoEmail?id={novoUsuario.Id}&s={senha}"; var textEmail = ($@"Seja Bem-Vindo ao SCIR-IFSC <br><br> Foi criado o seu usuário e senha, para acessar deve entrar no link a baixo para ativar a sua conta<br> {url} <br><br> E a sua senha após entrar no link anterior provisória é: <br>{senha} <br><br>Após efetuar o login é aconselhavel trocar a sua senha no sistema imediatamente!"); EnvioEmail.SendMailGeneric(novoUsuario, textEmail, "Conta de Usuário SCIR - IFSC"); } else { throw new Exception("Deve informar o seu e-mail fornecido pela instituição de ensino!"); } }
public string AlterarSenha(Usuario usuario, string novaSenha, string confirmacaoSenha) { var autenticado = Autentica(usuario.Email, usuario.Senha); if (autenticado != PapelDao.PapelUsuario.UsuarioNaoAutenticado) { if (novaSenha.Equals(confirmacaoSenha)) { usuario = BuscarEmailCadastrado(usuario.Email); usuario.Senha = novaSenha; var uServer = new UsuarioServer(); usuario = uServer.Atualizar(usuario); return("Senha alterada com sucesso!"); } return("Erro nova senha e a confirmação não são as mesmas"); } return("A senha atual não confere com a cadastrada"); }
public ConsisteUtils ConsisteEncaminhar(Requerimento requerimento, Usuario usuario) { var UsuarioServer = new UsuarioServer(); var consiste = new ConsisteUtils(); var pesquisa = dbRequerimento.GetRequerimentoId(requerimento); var usuarioDestino = UsuarioServer.GetEntidade(requerimento.UsuarioAtendenteId); if (pesquisa == null) { consiste.Add("Não foi encontrado o registro para atualização", ConsisteUtils.Tipo.Inconsistencia); return(consiste); } if (requerimento.StatusRequerimentoId == 0) { consiste.Add("Status Requerimento é de preenchimento obrigatório.", ConsisteUtils.Tipo.Inconsistencia); } if (requerimento.UsuarioAtendenteId == 0) { consiste.Add("O próximo usuário é de preenchimento obrigatório.", ConsisteUtils.Tipo.Inconsistencia); } if (pesquisa.UsuarioAtendenteId != usuario.Id && usuario.PapelId != (int)PapelDao.PapelUsuario.Administrador) { consiste.Add("Usuário não tem permissão de efetuar o encaminhamento do requerimento", ConsisteUtils.Tipo.Inconsistencia); } if (!usuarioDestino.Ativo) { consiste.Add("Usuário de destino não está ativo para receber o requerimento", ConsisteUtils.Tipo.Inconsistencia); } if (usuarioDestino.PapelId == (int)PapelDao.PapelUsuario.Discente && usuarioDestino.Id != pesquisa.UsuarioRequerenteId) { consiste.Add("Não é permitido encaminhar o requerimento para outro discente que não seja o requerente", ConsisteUtils.Tipo.Inconsistencia); } return(consiste); }