private static async Task <bool> AdminAlreadyExists(UserManager <ApplicationUser> userManager, AdminAccountOptions adminAccountOptions) { var existingAdminUser = await userManager.FindByNameAsync(adminAccountOptions.UserName); return(existingAdminUser is null ? false : true); }
private static async Task CreateAdminAccount(UserManager <ApplicationUser> userManager, AdminAccountOptions adminAccountOptions) { var adminUser = new ApplicationUser { UserName = adminAccountOptions.UserName, Email = adminAccountOptions.Email }; await userManager.CreateAsync(adminUser, adminAccountOptions.Password); await userManager.AddToRoleAsync(adminUser, Roles.Admin); }
/// <summary> /// Constructor. Performs migration and data seed. /// </summary> /// <param name="userManager">User manager.</param> /// <param name="roleManager">Role manager.</param> /// <param name="dbContext">Database context.</param> /// <param name="environment">Environment.</param> /// <param name="adminOptions">Admin options.</param> public DatabaseInitializer( UserManager <User> userManager, RoleManager <Role> roleManager, ApplicationDbContext dbContext, IHostingEnvironment environment, IOptions <AdminAccountOptions> adminOptions) { this.userManager = userManager; this.dbContext = dbContext; this.environment = environment; this.roleManager = roleManager; this.adminOptions = adminOptions.Value; }
/// <summary> /// Creates real admin user in DB. /// </summary> /// <param name="userManager">User manager.</param> /// <param name="adminCredentials">Admin credentials.</param> public static async Task SeedRealAdminUserAsync(AdminAccountOptions adminCredentials, UserManager <User> userManager) { if (!await userManager.Users.AnyAsync()) { var adminUser = new User { FirstName = "Admin", LastName = "Admin", UserName = adminCredentials.Email, Email = adminCredentials.Password, }; await userManager.CreateAsync(adminUser, AdminPassword); await userManager.AddToRoleAsync(adminUser, UserRoles.Admin.ToString()); } }