Example #1
0
        public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            // This doesn't count login failures towards account lockout
            // To enable password failures to trigger account lockout, change to shouldLockout: true

            var user = db.Users.FirstOrDefault(x => x.UserName == model.UserName);

            if (user != null && !user.Deleted)
            {
                var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false);
                switch (result)
                {
                    case SignInStatus.Success:
                        return RedirectToAction("AtAGlance", "Home", new { name = User.Identity.Name });
                    case SignInStatus.LockedOut:
                        return View("Lockout");
                    case SignInStatus.RequiresVerification:
                        return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
                    case SignInStatus.Failure:
                    default:
                        ModelState.AddModelError("", "Invalid login attempt.");
                        return View(model);
                }
            }

            else
            {
                return View(model);
            }
        }
Example #2
0
        public ActionResult RegisterAndAdd(int invitationId, Guid guid)
        {
            Invitation invitation = db.Invitations.FirstOrDefault(x => x.Id == invitationId);
            Household householdToJoin = db.Households.FirstOrDefault(x => x.Id == invitation.HouseholdId);
            ApplicationUser invitedUser = db.Users.FirstOrDefault(x => x.Email == invitation.ToEmail);

            if (invitation.JoinCode == guid)
            {
                if (invitedUser != null)
                {
                    invitedUser.Households.Add(householdToJoin);
                    LoginViewModel loginModel = new LoginViewModel();
                    TempData["Message"] = "You have been successfully added to " + householdToJoin.HouseholdName +
                        ". Please login to continue.";
                    db.SaveChanges();
                    return RedirectToAction("Login", "Account");
                }
                else
                {
                    RegisterViewModel model = new RegisterViewModel();
                    model.Email = invitation.ToEmail;
                    model.HouseholdName = "Default";

                    ViewBag.HouseholdId = invitation.HouseholdId;
                    ViewBag.InvitationId = invitationId;
                    ViewBag.JoinCode = guid;
                    return View(model);
                }

            }
            throw new HttpException(401, "Unauthorized access");
        }