private async Task AuthorizeChildAndWishlistForFamilyUser(Child child, Wishlist wishlist)
        {
            var familyUser = await _db.Users.Where(
                u => u.Claims.Any(c => c.ClaimType == "Family" && c.ClaimValue == child.FamilyId.ToString())
                ).FirstAsync();

            using (var userStore = new UserStore <WishlistUser>(_db))
                using (var userManager = new WishlistUserManager(userStore)) {
                    await userManager.AddClaimAsync(familyUser.Id, new Claim("Child", child.Id.ToString()));

                    await userManager.AddClaimAsync(familyUser.Id, new Claim("Wishlist", wishlist.Id.ToString()));

                    if (User.Identity.GetUserId() == familyUser.Id)
                    {
                        var claimsIdenity = (ClaimsIdentity)User.Identity;
                        claimsIdenity.AddClaim(new Claim("Child", child.Id.ToString()));
                        claimsIdenity.AddClaim(new Claim("Wishlist", wishlist.Id.ToString()));
                        HttpContext.GetOwinContext().Authentication.SignIn(claimsIdenity);
                    }
                }
        }
        private async Task <FamilyCredentials> CreateFamilyAccount(Family family)
        {
            var username = await GenerateFamilyUsername(family.ParentLastName);

            var password    = GenerateRandomPassword(8);
            var userStore   = new UserStore <WishlistUser>(_db);
            var userManager = new WishlistUserManager(userStore);
            await userManager.CreateAsync(new WishlistUser {
                UserName    = username,
                Email       = family.Email,
                PhoneNumber = family.Phone
            }, password);

            var createdUser = await userManager.FindByNameAsync(username);

            await userManager.AddToRoleAsync(createdUser.Id, "Family");

            await userManager.AddClaimAsync(createdUser.Id, new Claim("Family", family.Id.ToString()));

            return(new FamilyCredentials {
                Username = username,
                Password = password
            });
        }
Example #3
0
        private async Task AuthorizeDonorForUser(WishlistUser user, int donorId, WishlistUserManager manager)
        {
            await manager.AddToRoleAsync(user.Id, "Donor");

            await manager.AddClaimAsync(user.Id, new Claim("Donor", donorId.ToString()));
        }
 private async Task AuthorizeDonorForUser(WishlistUser user, int donorId, WishlistUserManager manager) {
     await manager.AddToRoleAsync(user.Id, "Donor");
     await manager.AddClaimAsync(user.Id, new Claim("Donor", donorId.ToString()));
 }
        private async Task<FamilyCredentials> CreateFamilyAccount(Family family) {
            var username = await GenerateFamilyUsername(family.ParentLastName);
            var password = GenerateRandomPassword(8);
            var userStore = new UserStore<WishlistUser>(_db);
            var userManager = new WishlistUserManager(userStore);
            await userManager.CreateAsync(new WishlistUser {
                UserName = username,
                Email = family.Email,
                PhoneNumber = family.Phone
            }, password);

            var createdUser = await userManager.FindByNameAsync(username);
            await userManager.AddToRoleAsync(createdUser.Id, "Family");
            await userManager.AddClaimAsync(createdUser.Id, new Claim("Family", family.Id.ToString()));

            return new FamilyCredentials {
                Username = username,
                Password = password
            };
        }
        private async Task AuthorizeChildAndWishlistForFamilyUser(Child child, Wishlist wishlist) {
            var familyUser = await _db.Users.Where(
                u => u.Claims.Any(c => c.ClaimType == "Family" && c.ClaimValue == child.FamilyId.ToString())
                ).FirstAsync();

            using (var userStore = new UserStore<WishlistUser>(_db))
            using (var userManager = new WishlistUserManager(userStore)) {
                await userManager.AddClaimAsync(familyUser.Id, new Claim("Child", child.Id.ToString()));
                await userManager.AddClaimAsync(familyUser.Id, new Claim("Wishlist", wishlist.Id.ToString()));

                if (User.Identity.GetUserId() == familyUser.Id) {
                    var claimsIdenity = (ClaimsIdentity) User.Identity;
                    claimsIdenity.AddClaim(new Claim("Child", child.Id.ToString()));
                    claimsIdenity.AddClaim(new Claim("Wishlist", wishlist.Id.ToString()));
                    HttpContext.GetOwinContext().Authentication.SignIn(claimsIdenity);
                }
            }
        }