private EasyUserProfile ToUserProfile(EasyUser user) { var manageUserClaim = AmbsenyManageUserClaims.None; var userClaimCollection = userManager.GetClaimsAsync(user).Result.Where(x => x.Type == AmbsenyClaimTypes.ManageUsers.ToString()); if (userClaimCollection.Any()) { var claimValue = userClaimCollection.First().Value; if (Enum.IsDefined(typeof(AmbsenyManageUserClaims), claimValue)) { manageUserClaim = (AmbsenyManageUserClaims)Enum.Parse(typeof(AmbsenyManageUserClaims), claimValue); } } return(new EasyUserProfile { Id = user.Id, ManageUserValue = manageUserClaim, Name = user.Name }); }
public async Task <IActionResult> Register(CreateEasyUser user) { //user usernormalizer dependency var normalizedName = user.Name.ToUpper(); var easyUser = new EasyUser { Name = user.Name, NormalizedName = normalizedName }; var creationResult = await userManager.CreateAsync(easyUser, user.Password); if (creationResult.Succeeded) { await signInManager.SignInAsync(easyUser, false); return(Redirect("/Home")); } else { //use name validation to output var errorMessage = creationResult.Errors.First().Description; ModelState.AddModelError(nameof(user.Name), errorMessage); } return(View(user)); }
private static void Seed(EasyUserDbContext dbContext, PasswordHasher <EasyUser> passwordHasher) { var admin = new EasyUser { Id = Guid.NewGuid().ToString(), NormalizedName = "admin".ToUpper(), Name = "admin" }; admin.PasswordHash = passwordHasher.HashPassword(admin, "admin"); var bob = new EasyUser { Id = Guid.NewGuid().ToString(), NormalizedName = "bob".ToUpper(), Name = "bob" }; bob.PasswordHash = passwordHasher.HashPassword(bob, "bob"); var alice = new EasyUser { Id = Guid.NewGuid().ToString(), NormalizedName = "alice".ToUpper(), Name = "alice", }; alice.PasswordHash = passwordHasher.HashPassword(alice, "alice"); dbContext.Users.AddRange(admin, alice, bob); var claims = new List <UserClaim> { new UserClaim { Id = Guid.NewGuid(), UserId = admin.Id, ClaimType = ClaimTypes.Sid, ClaimValue = admin.Id }, new UserClaim { Id = Guid.NewGuid(), UserId = admin.Id, ClaimType = AmbsenyClaimTypes.ManageUsers.ToString(), ClaimValue = AmbsenyManageUserClaims.Administrate.ToString() }, new UserClaim { Id = Guid.NewGuid(), UserId = bob.Id, ClaimType = ClaimTypes.Sid, ClaimValue = bob.Id }, new UserClaim { Id = Guid.NewGuid(), UserId = bob.Id, ClaimType = AmbsenyClaimTypes.ManageUsers.ToString(), ClaimValue = AmbsenyManageUserClaims.Review.ToString() }, new UserClaim { Id = Guid.NewGuid(), UserId = alice.Id, ClaimType = ClaimTypes.Sid, ClaimValue = alice.Id }, new UserClaim { Id = Guid.NewGuid(), UserId = alice.Id, ClaimType = AmbsenyClaimTypes.ManageUsers.ToString(), ClaimValue = AmbsenyManageUserClaims.Edit.ToString() } }; dbContext.UserClaims.AddRange(claims); dbContext.SaveChanges(); }