Esempio n. 1
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new HomemadeUser {
                    UserName = model.Username, Email = model.Email, ShoppingCart = new ShoppingCart()
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    SignInManager.UserManager.AddToRole(user.Id, "User");

                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Esempio n. 2
0
        public async Task <ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl)
        {
            if (User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("Index", "Manage"));
            }

            if (ModelState.IsValid)
            {
                // Get the information about the user from the external login provider
                var info = await AuthenticationManager.GetExternalLoginInfoAsync();

                if (info == null)
                {
                    return(View("ExternalLoginFailure"));
                }
                var user = new HomemadeUser {
                    UserName = model.Email, Email = model.Email
                };
                var result = await UserManager.CreateAsync(user);

                if (result.Succeeded)
                {
                    result = await UserManager.AddLoginAsync(user.Id, info.Login);

                    if (result.Succeeded)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                        return(RedirectToLocal(returnUrl));
                    }
                }
                AddErrors(result);
            }

            ViewBag.ReturnUrl = returnUrl;
            return(View(model));
        }
Esempio n. 3
0
        protected override void Seed(HomemadeDbContext context)
        {
            IList <Category> defaultCategories = new List <Category>();
            IList <Product>  defaultProducts   = new List <Product>();

            defaultCategories.Add(new Category()
            {
                Name = "Other"
            });
            defaultCategories.Add(new Category()
            {
                Name = "Breads"
            });
            defaultCategories.Add(new Category()
            {
                Name = "Sweets"
            });
            defaultCategories.Add(new Category()
            {
                Name = "Nuts"
            });
            defaultCategories.Add(new Category()
            {
                Name = "Drinks"
            });
            defaultCategories.Add(new Category()
            {
                Name = "Vegetables and Fruits"
            });
            defaultCategories.Add(new Category()
            {
                Name = "Meat and Fish"
            });

            defaultProducts.Add(new Product()
            {
                Name        = "Chicken Meat",
                Category    = defaultCategories[6],
                Description = "Chicken meant.....",
                Price       = 5,
                Date        = DateTime.Now
            });

            defaultProducts.Add(new Product()
            {
                Name        = "Apple",
                Category    = defaultCategories[5],
                Description = "Green delicious apples!",
                Price       = 1,
                Date        = DateTime.Now
            });

            defaultProducts.Add(new Product()
            {
                Name        = "Cashews",
                Category    = defaultCategories[3],
                Description = "Cashew nuts. Very healthy!",
                Price       = 2,
                Date        = DateTime.Now
            });

            defaultProducts.Add(new Product()
            {
                Name        = "Milka Chokolate",
                Category    = defaultCategories[2],
                Description = "This is absolutely no product that couse addiction...",
                Price       = 3,
                Date        = DateTime.Now
            });

            defaultProducts.Add(new Product()
            {
                Name        = "Normal Bread",
                Category    = defaultCategories[1],
                Description = "What is soup without bread?!",
                Price       = 1,
                Date        = DateTime.Now
            });

            foreach (Category category in defaultCategories)
            {
                context.Categories.Add(category);
            }

            foreach (Product product in defaultProducts)
            {
                context.Products.Add(product);
            }

            var roleStore   = new RoleStore <IdentityRole>(context);
            var rolemanager = new RoleManager <IdentityRole>(roleStore);

            if (!context.Roles.Any(r => r.Name == "Admin"))
            {
                var role = new IdentityRole {
                    Name = "Admin"
                };

                rolemanager.Create(role);
            }

            if (!context.Roles.Any(r => r.Name == "User"))
            {
                var role = new IdentityRole {
                    Name = "User"
                };

                rolemanager.Create(role);
            }

            if (!context.Users.Any(u => u.UserName == "admin"))
            {
                var    passwordHash = new PasswordHasher();
                string password     = passwordHash.HashPassword("admin");
                var    user         = new HomemadeUser
                {
                    UserName      = "******",
                    Email         = "*****@*****.**",
                    PasswordHash  = password,
                    SecurityStamp = Guid.NewGuid().ToString()
                };

                context.Users.Add(user);
                var cart = new ShoppingCart()
                {
                    Owner = user
                };
                context.ShoppingCarts.Add(cart);
                user.ShoppingCart = cart;
                context.SaveChanges();

                var userStore   = new UserStore <HomemadeUser>(context);
                var userManager = new UserManager <HomemadeUser>(userStore);
                userManager.AddToRole(user.Id, "Admin");
            }

            base.Seed(context);
        }
Esempio n. 4
0
 public void ChangeRole(HomemadeUser user, string role)
 {
     this.UnitOfWork.Users.ChangeRole(user, role);
 }