public void ShouldNotRegisterUserIfEmailNotUnique() { EnsureZeroUsers(); using (var database = AdminAppIdentityDbContext.Create()) { var user = new AdminAppUser() { Email = "*****@*****.**", UserName = "******" }; database.Users.Add(user); database.SaveChanges(); } var newUser = new RegisterViewModel { Email = "*****@*****.**", Password = "******", ConfirmPassword = "******" }; var validator = new RegisterViewModelValidator(); var validationResults = validator.Validate(newUser); validationResults.IsValid.ShouldBe(false); validationResults.Errors.Select(x => x.ErrorMessage).ShouldContain("A user with the email already exists in the database"); }
public void ShouldNotEditIfUserDoesNotExists() { var testUserNotInSystem = new AdminAppUser { Email = $"testuser{Guid.NewGuid():N}@test.com", UserName = $"testuser{Guid.NewGuid():N}@test.com" }; var testInstances = SetupOdsInstanceRegistrations(5).OrderBy(x => x.Name).ToList(); var updateModel = new EditOdsInstanceRegistrationForUserModel { UserId = testUserNotInSystem.Id, OdsInstanceRegistrations = testInstances.Select(x => new OdsInstanceRegistrationSelection { Name = x.Name, OdsInstanceRegistrationId = x.Id, Selected = true }).ToList() }; var validator = new EditOdsInstanceRegistrationForUserModelValidator(SetupContext); var validationResults = validator.Validate(updateModel); validationResults.IsValid.ShouldBe(false); validationResults.Errors.Select(x => x.ErrorMessage).ShouldContain("The user you are trying to edit does not exist in the database."); }
public static void SaveAdminAppUser(AdminAppUser user) { using (var database = AdminAppIdentityDbContext.Create()) { database.Set <AdminAppUser>().Add(user); database.SaveChanges(); } }
public static void SaveAdminAppUser(AdminAppUser user) { Scoped <AdminAppIdentityDbContext>(database => { database.Set <AdminAppUser>().Add(user); database.SaveChanges(); }); }
public async Task <(AdminAppUser user, IdentityResult result)> Execute(IRegisterModel userModel, UserManager <AdminAppUser> userManager) { var user = new AdminAppUser { UserName = userModel.Email, Email = userModel.Email }; var result = await userManager.CreateAsync(user, userModel.Password); return(user : user, result : result); }
public async Task <(string userId, IdentityResult result)> Execute(IAddUserModel userModel, UserManager <AdminAppUser> userManager) { var user = new AdminAppUser { UserName = userModel.Email, Email = userModel.Email, RequirePasswordChange = true }; var result = await userManager.CreateAsync(user, userModel.Password); return(userId : user.Id, result : result); }
public static AdminAppUserContext GetMockUserContext(AdminAppUser user = null, Role userRole = null) { var userContext = new AdminAppUserContext(); if (user != null) { userContext.User = user; } if (userRole != null) { userContext.Permissions = RolePermission.GetPermissions(userRole.Value.ToString()); } return(userContext); }
private static bool TryQueryUser(string userId, out AdminAppUser user) { AdminAppUser userLookup; using (var dbContext = AdminAppIdentityDbContext.Create()) { userLookup = dbContext.Users.Include(x => x.Roles).SingleOrDefault(x => x.Id == userId); } if (userLookup != null) { user = userLookup; return(true); } user = null; return(false); }
public async Task NotifyWhenEnabled(AdminAppUser user) { try { var productImprovementEnabled = _applicationConfigurationService.IsProductImprovementEnabled(out var productRegistrationId); var productRegistrationUrlAvailable = !string.IsNullOrEmpty(_productRegistrationUrl); var productRegistrationIdAvailable = !string.IsNullOrEmpty(productRegistrationId); if (productImprovementEnabled && productRegistrationUrlAvailable && productRegistrationIdAvailable) { await Notify(await BuildProductRegistrationModel(productRegistrationId, user)); } } catch (Exception exception) { _logger.Warn("Could not submit product registration. This notice is merely diagnostic " + "and does not limit Admin App functionality.", exception); } }
public void ShouldNotDeleteIfUserDoesNotExists() { var superAdminUser = SetupUsers(1, Role.SuperAdmin).Single(); var testUserNotInSystem = new AdminAppUser { Email = $"testuser{Guid.NewGuid():N}@test.com", UserName = $"testuser{Guid.NewGuid():N}@test.com" }; var deleteModel = new DeleteUserModel { Email = testUserNotInSystem.Email, UserId = testUserNotInSystem.Id }; var validator = new DeleteUserModelValidator(GetMockUserContext(superAdminUser, Role.SuperAdmin)); validator.ShouldNotValidate(deleteModel, "The user you are trying to delete does not exist in the database."); }
public void ShouldNotEditRoleIfUserDoesNotExists() { var testUserNotInSystem = new AdminAppUser { Email = $"testuser{Guid.NewGuid():N}@test.com", UserName = $"testuser{Guid.NewGuid():N}@test.com" }; var updateModel = new EditUserRoleModel { UserId = testUserNotInSystem.Id, RoleId = Role.Admin.Value.ToString(), Email = testUserNotInSystem.Email }; var validator = new EditUserRoleModelValidator(GetMockUserContext(testUserNotInSystem, Role.Admin)); var validationResults = validator.Validate(updateModel); validationResults.IsValid.ShouldBe(false); validationResults.Errors.Select(x => x.ErrorMessage).ShouldContain("The user you are trying to edit does not exist in the database."); }
private async Task <ProductRegistrationModel> BuildProductRegistrationModel(string productRegistrationId, AdminAppUser user) { var singleOdsApiConnection = new ProductRegistrationModel.OdsApiConnection { OdsApiVersion = await OdsApiVersion(), OdsApiMode = _odsApiMode, InstanceCount = InstanceCount() }; return(new ProductRegistrationModel { ProductRegistrationId = productRegistrationId, // Naturally Admin App always has 1 connection. This property supports an array // in case other Ed-Fi applications need to report multiple connections using the // same JSON model. OdsApiConnections = new[] { singleOdsApiConnection }, ProductVersion = ProductVersion(), OsVersion = OsVersion(), DatabaseVersion = DatabaseVersion(), HostName = HostName(), UserId = user?.Id ?? "", UserName = user?.UserName ?? "", UtcTimeStamp = DateTime.UtcNow }); }