Beispiel #1
0
        public async Task <ActionResult> CreateNew([FromBody] UserCreateApiViewModel user)
        {
            var newUser = new MoatGateIdentityUser();

            user.UserName = user.UserName ?? user.Email;
            Mapper.Map(user, newUser);
            var result = await _userManager.CreateAsync(newUser, user.Password);

            if (!result.Succeeded)
            {
                return(StatusCode(500, result.Errors.Select(e => e.Description)));
            }

            if (user.Roles.Any())
            {
                var roleResult = await _userManager.AddToRolesAsync(newUser, user.Roles);

                if (!roleResult.Succeeded)
                {
                    return(StatusCode(500, result.Errors.Select(e => e.Description)));
                }
            }

            return(Ok(new { Message = $"User {user.UserName} created successfully" }));
        }
Beispiel #2
0
        public EdiProfileViewModel(MoatGateIdentityUser user, IEnumerable <Claim> claims)
        {
            Id          = user.Id;
            Email       = user.Email;
            PhoneNumber = user.PhoneNumber;

            var propertiesTypes = typeof(EdiProfileViewModel).GetProperties();

            foreach (var c in claims)
            {
                var prop = propertiesTypes.Where(p => ((JwtClaimNameAttribute)p.GetCustomAttributes(true).Where(a => a as JwtClaimNameAttribute != null).SingleOrDefault())?.ClaimName == c.Type).SingleOrDefault();
                if (prop != null && !string.IsNullOrEmpty(c.Value))
                {
                    if (prop.PropertyType == typeof(DateTime?))
                    {
                        prop.SetValue(this, DateTime.Parse(c.Value));
                    }
                    else if (prop.PropertyType == typeof(bool))
                    {
                        prop.SetValue(this, bool.Parse(c.Value));
                    }
                    else
                    {
                        if (prop.SetMethod != null)
                        {
                            prop.SetValue(this, c.Value);
                        }
                    }
                }
            }
        }
Beispiel #3
0
        public async static Task Seed(UserManager <MoatGateIdentityUser> userManager, RoleManager <MoatGateIdentityRole> roleManager, MoatGateIdentityDbContext context)
        {
            if (!context.Roles.Any())
            {
                await roleManager.CreateAsync(new MoatGateIdentityRole()
                {
                    Name = "IdentityAdmin"
                });
            }

            if (!context.Users.Any())
            {
                var user = new MoatGateIdentityUser
                {
                    UserName      = "******",
                    Email         = "*****@*****.**",
                    SecurityStamp = Guid.NewGuid().ToString()
                };

                await userManager.CreateAsync(user, "10qp!)QP");

                await userManager.AddToRoleAsync(user, "IdentityAdmin");
            }
        }
Beispiel #4
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            IdentityResult result = null;

            var newUser = new MoatGateIdentityUser();

            Mapper.Map(MoatGateIdentityUser, newUser);
            result = await _userManager.CreateAsync(newUser, MoatGateIdentityUser.Password);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(error.Code, error.Description);
                }
                return(Page());
            }

            var roleResult = await _userManager.AddToRolesAsync(newUser, MoatGateIdentityUser.RoleChecks.Where(r => r.Value).Select(r => r.Key));

            if (!roleResult.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(error.Code, error.Description);
                }
                return(RedirectToPage("Edit", new { errors = "roles" }));
            }

            return(RedirectToPage("./List"));
        }