Example #1
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                //var user = new WFPUser { UserName = model.UserName, Email = model.Email };
                //var UserManager = new UserManager<Data.Entities.WFPUser>(new UserStore<Data.Entities.WFPUser>(context));

                var appUser = new WFPUser
                {
                    Id        = Guid.NewGuid().ToString(),
                    CreatedAt = DateTime.Now,
                    UserName  = model.UserName,
                    Email     = model.Email,
                    Status    = (int)UserStatusEnum.Active,
                    UserType  = model.IsAdminUser ? (int)UserTypeEnum.Admin: (int)UserTypeEnum.Employee,
                };
                var result = UserManager.CreateAsync(appUser, model.Password);
                if (result.Result == IdentityResult.Success)
                {
                    return(RedirectToAction("Users", "Home"));
                }
                AddErrors(result.Result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public ActionResult SaveUser(CompanyUsersVm model)
        {
            try
            {
                var user = UserManager.FindById(model.Id.ToString());
                switch (model.ActionToTake)
                {
                case "lock":
                    if (user.Status == (int)UserStatusEnum.Active)
                    {
                        user.Status            = (int)UserStatusEnum.Locked;
                        user.LockoutEndDateUtc = new DateTime(9999, 12, 30);
                        bool a = UserManager.IsLockedOut(user.Id);
                    }
                    else if (user.Status == (int)UserStatusEnum.Locked)
                    {
                        user.Status            = (int)UserStatusEnum.Active;
                        user.LockoutEndDateUtc = null;
                        bool a = UserManager.IsLockedOut(user.Id);
                    }
                    break;

                case "password":
                    if (!string.IsNullOrEmpty(model.Password))
                    {
                        string         resetToken           = UserManager.GeneratePasswordResetToken(user.Id);
                        IdentityResult passwordChangeResult = UserManager.ResetPassword(user.Id, resetToken, model.Password);
                        if (passwordChangeResult != IdentityResult.Success)
                        {
                            throw new Exception(passwordChangeResult.Errors.FirstOrDefault());
                        }
                    }
                    break;

                case "create":
                    var newUser = new WFPUser()
                    {
                        Id        = Guid.NewGuid().ToString(),
                        CreatedAt = DateTime.Now,
                        UserName  = model.Name.Trim(),
                        Email     = model.Name.Trim() + "@wfp.org",
                        FirstName = model.FirstName,
                        LastName  = model.LastName,
                    };
                    var result = UserManager.CreateAsync(newUser, model.Password);
                    if (result.Result != IdentityResult.Success)
                    {
                        throw new Exception("There is an error while creating user." + result.Result.Errors.FirstOrDefault());
                    }
                    break;

                case "delete":
                    UserManager.Delete(user);
                    break;
                }
                Db.SaveChanges();
                return(Json(new JsonResponse()
                {
                    IsSucess = true
                }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(new JsonResponse()
                {
                    IsSucess = false, ErrorMessage = ex.Message
                },
                            JsonRequestBehavior.AllowGet));
            }
        }
Example #3
0
        public static void Seed(WFPICTContext context)
        {
            // Permissions
            foreach (var permission in SecurityConstants.ClaimsAll)
            {
                context.Claims.Add(new AspNetClaims()
                {
                    Id        = Guid.NewGuid(),
                    CreatedAt = DateTime.Now,
                    ClaimType = permission.Contains(PermissionType.Order.ToLower())
                        ? PermissionType.Order
                        : PermissionType.Permission,
                    ClaimValue = permission
                });
            }
            context.SaveChanges();

            // Roles
            var RoleManager = new RoleManager <WFPRole>(new RoleStore <WFPRole>(context));

            if (!RoleManager.RoleExists(SecurityConstants.RoleAdmin))
            {
                RoleManager.Create(new WFPRole(SecurityConstants.RoleAdmin, false, false, "Admin Role"));
                AddClaims(context, RoleManager, SecurityConstants.RoleAdmin, SecurityConstants.ClaimsAdmin);
            }

            if (!RoleManager.RoleExists(SecurityConstants.RoleEmployee))
            {
                RoleManager.Create(new WFPRole(SecurityConstants.RoleEmployee, false, false, "Employee Role"));
                AddClaims(context, RoleManager, SecurityConstants.RoleEmployee, SecurityConstants.ClaimsAdmin);
            }

            if (!RoleManager.RoleExists(SecurityConstants.RolePrivate))
            {
                RoleManager.Create(new WFPRole(SecurityConstants.RolePrivate, false, false, "Private Role"));
                AddClaims(context, RoleManager, SecurityConstants.RolePrivate, SecurityConstants.ClaimsDefault);
            }

            if (!RoleManager.RoleExists(SecurityConstants.RoleDealer))
            {
                RoleManager.Create(new WFPRole(SecurityConstants.RoleDealer, false, false, "Dealer Role"));
                AddClaims(context, RoleManager, SecurityConstants.RoleDealer, SecurityConstants.ClaimsDefault);
            }

            if (!RoleManager.RoleExists(SecurityConstants.RoleManufacturer))
            {
                RoleManager.Create(new WFPRole(SecurityConstants.RoleManufacturer, false, false, "Manufacturer Role"));
                AddClaims(context, RoleManager, SecurityConstants.RoleManufacturer, SecurityConstants.ClaimsDefault);
            }

            var UserManager = new UserManager <WFPUser>(new UserStore <WFPUser>(context));

            var alreadyAdminUser = UserManager.FindByName(SecurityConstants.UserAdmin);

            if (alreadyAdminUser == null)
            {
                var adminUser = new WFPUser()
                {
                    Id        = Guid.NewGuid().ToString(),
                    UserName  = SecurityConstants.UserAdmin,
                    Email     = "*****@*****.**",
                    FirstName = "Admin",
                    LastName  = "User",
                    CreatedAt = DateTime.Now
                };
                var result = UserManager.CreateAsync(adminUser, SecurityConstants.UserAdminPassword);
                if (result.Result == IdentityResult.Success)
                {
                    var result1 = UserManager.AddToRole(adminUser.Id, SecurityConstants.RoleAdmin);
                }
            }

            var alreadyTestUser = UserManager.FindByName(SecurityConstants.TestEmployeeUser);

            if (alreadyTestUser == null)
            {
                var user = new WFPUser()
                {
                    Id        = Guid.NewGuid().ToString(),
                    UserName  = SecurityConstants.TestEmployeeUser,
                    Email     = "*****@*****.**",
                    FirstName = "Test",
                    LastName  = "User",
                    CreatedAt = DateTime.Now
                };
                var result = UserManager.CreateAsync(user, SecurityConstants.UserAdminPassword);
                if (result.Result == IdentityResult.Success)
                {
                    var result1 = UserManager.AddToRole(user.Id, SecurityConstants.RolePrivate);
                }
            }
        }