예제 #1
0
        public ActionResult Delete()
        {
            var userStore   = new UserStore <IdentityUser>(new IdentityEntityContext());
            var userManager = new UserManager <IdentityUser>(userStore);

            var userId       = User.Identity.GetUserId();
            var identityUser = userManager.FindById(userId);

            var logins = identityUser.Logins;

            foreach (var login in logins)
            {
                userManager.RemoveLogin(login.UserId, new UserLoginInfo(login.LoginProvider, login.ProviderKey));
            }

            IdentityResult result  = userManager.Delete(identityUser);
            Usuario        usuario = apl.SelecionarById(userId);

            if (result.Succeeded)
            {
                Pessoa pessoa = usuario.Pessoa;

                apl.Deletar(pessoa, usuario);
                return(RedirectToAction("Logoff"));
            }
            else
            {
                PessoaUsuarioViewModel viewModel = Mapper.Map <Usuario, PessoaUsuarioViewModel>(usuario);
                ModelState.AddModelError("erro_identity", "Não foi possivel apagar a conta");
                return(View("Perfil", viewModel));
            }
        }
예제 #2
0
        public ActionResult SignUp([Bind(Include = "Login,Senha,Nome,CPF,DataNasc")] PessoaUsuarioViewModel viewModel)
        {
            if (User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (ModelState.IsValid)
            {
                var userStore   = new UserStore <IdentityUser>(new IdentityEntityContext());
                var userManager = new UserManager <IdentityUser>(userStore);

                //Serve para permitir caracteres especiais no email
                //Na verdade é no username, mas como vamos o email como username... vai ter que permitir de qualquer forma
                var userValidator = new UserValidator <IdentityUser>(userManager)
                {
                    AllowOnlyAlphanumericUserNames = false
                };
                userManager.UserValidator = userValidator;

                var identityUser = new IdentityUser
                {
                    Email    = viewModel.Login,
                    UserName = viewModel.Login
                };

                IdentityResult result = userManager.Create(identityUser, viewModel.Senha);

                if (result.Succeeded)
                {
                    // TODO Enviar confirmação para o email
                    Login(identityUser, userManager, false);

                    viewModel.Id = identityUser.Id;

                    //TODO Criptografar a senha
                    Usuario usuario = Mapper.Map <PessoaUsuarioViewModel, Usuario>(viewModel);
                    Pessoa  pessoa  = Mapper.Map <PessoaUsuarioViewModel, Pessoa>(viewModel);
                    pessoa.CPF           = pessoa.CPF.Replace(".", "").Replace("-", "");
                    usuario.DataCadastro = DateTime.Today;

                    apl.Inserir(pessoa, usuario);

                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    ModelState.AddModelError("erro_identity", "Não é possivel fazer o cadastro com essas informações");
                }
            }

            return(View(viewModel));
        }
예제 #3
0
        public ActionResult Perfil()
        {
            // TODO Pedir confirmação se deseja apagar ou salvar as alterações

            string  userId  = User.Identity.GetUserId();
            Usuario usuario = apl.SelecionarById(userId);

            if (usuario == null)
            {
                return(HttpNotFound());
            }

            PessoaUsuarioViewModel viewModel = Mapper.Map <Usuario, PessoaUsuarioViewModel>(usuario);

            return(View(viewModel));
        }
예제 #4
0
        public ActionResult Perfil([Bind(Include = "Login,Senha,Nome,CPF,DataNasc")] PessoaUsuarioViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                viewModel.Id = User.Identity.GetUserId();

                Usuario usuario = Mapper.Map <PessoaUsuarioViewModel, Usuario>(viewModel);
                Pessoa  pessoa  = Mapper.Map <PessoaUsuarioViewModel, Pessoa>(viewModel);
                pessoa.CPF = pessoa.CPF.Replace(".", "").Replace("-", "");

                apl.Alterar(pessoa, usuario);
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                ModelState.AddModelError("erro_identity", "Não foi possivel salvar");
                return(View(viewModel));
            }
        }