Ejemplo n.º 1
0
        public async Task Invoke(HttpContext httpContext, IServiceProvider serviceProvider, SignInManager <GiftSystemUser> signInManager)
        {
            var roleManager = serviceProvider.GetService <RoleManager <IdentityRole> >();

            bool adminRoleExists = await roleManager.RoleExistsAsync("Admin");

            if (!adminRoleExists)
            {
                await roleManager.CreateAsync(new IdentityRole("Admin"));
            }

            bool userRoleExists = await roleManager.RoleExistsAsync("User");

            if (!userRoleExists)
            {
                await roleManager.CreateAsync(new IdentityRole("User"));
            }

            if (!signInManager.UserManager.Users.Any())
            {
                GiftSystemUser user = new GiftSystemUser
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    PhoneNumber = "0898412588"
                };

                await signInManager.UserManager.CreateAsync(user, "123");

                await signInManager.UserManager.AddToRoleAsync(user, "Admin");
            }

            await this.next(httpContext);
        }
Ejemplo n.º 2
0
        public async Task <Result> RegisterUser(string email, string password, string rePassword, string phoneNumber)
        {
            if (string.IsNullOrEmpty(email))
            {
                return(new Result(string.Format(FieldIsRequiredMessage, email), false));
            }

            if (string.IsNullOrEmpty(password))
            {
                return(new Result(string.Format(FieldIsRequiredMessage, password), false));
            }

            if (string.IsNullOrEmpty(rePassword))
            {
                return(new Result(string.Format(FieldIsRequiredMessage, rePassword), false));
            }

            if (password != rePassword)
            {
                return(new Result(PassowrdsDoNotMatchMessage, false));
            }

            if (string.IsNullOrEmpty(phoneNumber))
            {
                return(new Result(string.Format(FieldIsRequiredMessage, phoneNumber), false));
            }

            var user = new GiftSystemUser
            {
                UserName    = email,
                Email       = email,
                PhoneNumber = phoneNumber
            };

            var result = await this.usersRepository.CreateUser(user, password);

            if (!result.Succeeded)
            {
                return(new Result(RegisterFailedMessage, false));
            }
            await this.usersRepository.AsignUserToRole(user);

            await this.usersRepository.SignInUser(user);

            return(new Result(RegisteredSuccessfullyMessage, true));
        }
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl = "/Identity/Account/Login";

            if (ModelState.IsValid)
            {
                var isRoot = !_userManager.Users.Any();   //TODO: add admin area; first seed the DB with the roles; inject roleManager

                var user = new GiftSystemUser
                {
                    PhoneNumber = Input.PhoneNumber,
                    UserName    = Input.Username,
                    Email       = Input.Email
                };

                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    if (isRoot)
                    {
                        await _userManager.AddToRoleAsync(user, "Admin");
                    }
                    else
                    {
                        await _userManager.AddToRoleAsync(user, "User");
                    }

                    return(Redirect(returnUrl));
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            return(Page());
        }
Ejemplo n.º 4
0
 public async Task AsignUserToRole(GiftSystemUser user)
 {
     await this.signInManager.UserManager.AddToRoleAsync(user, "User");
 }
Ejemplo n.º 5
0
 public async Task SignInUser(GiftSystemUser user)
 {
     await this.signInManager.SignInAsync(user, isPersistent : true);
 }
Ejemplo n.º 6
0
        public async Task <IdentityResult> CreateUser(GiftSystemUser user, string password)
        {
            var result = await this.signInManager.UserManager.CreateAsync(user, password);

            return(result);
        }
Ejemplo n.º 7
0
 public async Task UpdateUser(GiftSystemUser user)
 {
     this.db.Users.Update(user);
     await this.db.SaveChangesAsync();
 }