public void CreateRoles(IServiceProvider serviceProvider) { var roleManager = serviceProvider.GetRequiredService <RoleManager <AuthorizationRole> >(); var userManager = serviceProvider.GetRequiredService <UserManager <AuthentificationUser> >(); Task <IdentityResult> roleResult; string email = "*****@*****.**"; string[] roles = { "Admin", "AirlineAdmin", "User", "RentACarAdmin" }; //Check that there is an Administrator role and create if not foreach (var a in roles) { Task <bool> hasAdminRole = roleManager.RoleExistsAsync(a); hasAdminRole.Wait(); if (!hasAdminRole.Result) { roleResult = roleManager.CreateAsync(new AuthorizationRole(a)); roleResult.Wait(); } } //Check if the admin user exists and create it if not //Add to the Administrator role Task <AuthentificationUser> testUser = userManager.FindByEmailAsync(email); testUser.Wait(); if (testUser.Result == null) { var admin = new AuthentificationUser(); admin.IsPasswordOk = true; admin.Email = email; admin.UserName = "******"; Task <IdentityResult> newUser = userManager.CreateAsync(admin, "Admin@123"); newUser.Wait(); if (newUser.Result.Succeeded) { Task <IdentityResult> newUserRole = userManager.AddToRoleAsync(admin, "Admin"); newUserRole.Wait(); } } }
public async Task <AirlineAdminResponse> Add(AirlineAdminAdd admin) { var newAdmin = new BookingAppBackend.Model.Users.AirlineAdmin(); var user = new AuthentificationUser(); user.UserName = admin.Username; newAdmin.Username = admin.Username; user.Email = admin.Email; newAdmin.Name = admin.Name; newAdmin.LastName = admin.LastName; newAdmin.PhoneNumber = admin.PhoneNumber; newAdmin.City = admin.City; newAdmin.AirlineID = admin.AirlineID; if (await manager.FindByNameAsync(admin.Username) == null) { var ok = await manager.CreateAsync(user, admin.Password); if (ok.Succeeded) { ok = await manager.AddToRoleAsync(user, "AirlineAdmin"); if (ok.Succeeded) { var temp = await repo.AddAirlineAdminAsync(newAdmin); if (temp.Success) { await unitOfWork.CompleteAsync(); } return(temp); } else { return(new AirlineAdminResponse(ok.Errors.First().Description)); } } else { return(new AirlineAdminResponse(ok.Errors.First().Description)); } } else { return(new AirlineAdminResponse("User with given username already exists")); } }
public async Task <Admin> AddGeneralAdmin(AdminAddParameters parameters) { var newAdmin = new BookingAppBackend.Model.Users.Admin(); var user = new AuthentificationUser(); user.UserName = parameters.Username; newAdmin.Username = parameters.Username; user.Email = parameters.Email; newAdmin.Name = parameters.Name; newAdmin.LastName = parameters.LastName; newAdmin.PhoneNumber = parameters.PhoneNumber; newAdmin.City = parameters.City; if (await manager.FindByNameAsync(parameters.Username) == null) { var ok = await manager.CreateAsync(user, parameters.Password); if (ok.Succeeded) { ok = await manager.AddToRoleAsync(user, "Admin"); if (ok.Succeeded) { var temp = await repo2.AddAdmin(newAdmin); if (temp != null) { await unitOfWork.CompleteAsync(); } return(temp); } else { return(null); } } else { return(null); } } else { return(null); } }
public async Task <RentACarAdmin> AddRentACarAdmin(RentACarAdminAddParameters admin) { var newAdmin = new BookingAppBackend.Model.Users.RentACarAdmin(); var user = new AuthentificationUser(); user.UserName = admin.Username; newAdmin.Username = admin.Username; user.Email = admin.Email; newAdmin.Name = admin.Name; newAdmin.LastName = admin.LastName; newAdmin.PhoneNumber = admin.PhoneNumber; newAdmin.City = admin.City; newAdmin.EnterpriseId = admin.EnterpriseId; if (await manager.FindByNameAsync(admin.Username) == null) { var ok = await manager.CreateAsync(user, admin.Password); if (ok.Succeeded) { ok = await manager.AddToRoleAsync(user, "RentACarAdmin"); if (ok.Succeeded) { var temp = await repo.AddRentACarAdmin(newAdmin); if (temp != null) { await unitOfWork.CompleteAsync(); } return(temp); } else { return(null); } } else { return(null); } } else { return(null); } }
public async Task <UserResponse> Add(UserAdd data, IUrlHelper urlHelper) { var temp1 = new AuthentificationUser(); temp1.IsPasswordOk = true; var temp2 = new BookingAppBackend.Model.Users.User(); temp1.UserName = data.Username; temp2.Username = data.Username; temp2.Name = data.Name; temp2.LastName = data.LastName; temp1.Email = data.Email; temp2.IsEnabled = false; temp1.IsPasswordOk = true; if (!string.IsNullOrWhiteSpace(data.City)) { temp2.City = data.City; } if (!string.IsNullOrWhiteSpace(data.PhoneNumber)) { temp2.PhoneNumber = data.PhoneNumber; } if (await manager.FindByNameAsync(data.Username) == null) { var isOk = await manager.CreateAsync(temp1, data.Password); if (isOk.Succeeded) { isOk = await manager.SetEmailAsync(temp1, data.Email); if (isOk.Succeeded) { var roleOk = await manager.AddToRoleAsync(temp1, "User"); if (roleOk.Succeeded) { ////Deo za slanje konfirmacionog mail-a korisniku string token = await manager.GenerateEmailConfirmationTokenAsync(temp1); //var sender = new EmailSender(); //sender.SendConfirmEMail(data.Email, token, data.Username); await manager.ConfirmEmailAsync(temp1, token); try { var a = await repo.InsertUser(temp2); if (a.Success) { await unitOfWork.CompleteAsync(); } return(a); } catch { return(new UserResponse("Something went wrong.")); } } else { return(new UserResponse(roleOk.Errors.First().Description)); } } else { return(new UserResponse(isOk.Errors.First().Description)); } } else { return(new UserResponse(isOk.Errors.First().Description)); } } else { return(new UserResponse("User with given username already exists.")); } }