Exemple #1
0
        public async Task Seed()
        {
            if (await _context.Users.CountAsync() == 0)
            {
                var user = new MdmsUser
                {
                    UserName   = "******",
                    Email      = "*****@*****.**",
                    FirstName  = "Root",
                    LastName   = "Root",
                    BaseSalary = 0,
                    AdditionalOnHourPayment = 0,
                    SecurityStamp           = Guid.NewGuid().ToString(),
                    Name = "Root-Root"
                };

                var rootRole = _context.Roles.FirstOrDefault(x => x.Name == "Root");

                if (rootRole == null)
                {
                    _context.Roles.Add(new IdentityRole()
                    {
                        Name = "Root", NormalizedName = "ROOT"
                    });
                    _context.SaveChanges();
                }

                await _userManager.CreateAsync(user, "root");

                await _userManager.AddToRoleAsync(user, "Root");
            }
        }
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl = "~/Identity/Account/Login";
            if (ModelState.IsValid)
            {
                var isAdmin = _userManager.Users.Count() == 1;
                var user    = new MdmsUser {
                    UserName     = Input.Username,
                    Email        = Input.Email,
                    IsAuthorized = false,
                    FirstName    = Input.FirstName,
                    LastName     = Input.LastName,
                    Name         = Input.FirstName + "-" + Input.LastName
                };

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

                if (result.Succeeded)
                {
                    if (isAdmin)
                    {
                        await _userManager.AddToRoleAsync(user, "Admin");

                        await _userManager.AddToRoleAsync(user, "User");

                        await _userManager.AddToRoleAsync(user, "Guest");

                        user.IsAuthorized = true;
                        await _userManager.UpdateAsync(user);
                    }
                    else
                    {
                        await _userManager.AddToRoleAsync(user, "Guest");
                    }

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