public async Task WhenInvalidFormat_ReturnsInvalid() { var uniqueData = UNIQUE_PREFIX + nameof(WhenInvalidFormat_ReturnsInvalid); var userSettings = new UsersSettings(); userSettings.Username.AllowAnyCharacter = false; userSettings.Username.AllowAnyLetter = false; using var app = _appFactory.Create(s => { s.AddSingleton(userSettings); }); var contentRepository = app.Services.GetContentRepositoryWithElevatedPermissions(); var result = await contentRepository .Users() .ValidateUsername(new ValidateUsernameQuery() { UserAreaCode = UserAreaWithoutEmailAsUsername.Code, Username = uniqueData }) .ExecuteAsync(); AssertErrorMessage(result, "invalid-characters", "* cannot contain 'V'."); }
public BsJsonResult Pager(UsersSettings settings) { var msg = string.Empty; var status = BsResponseStatus.Success; var html = string.Empty; var count = 0; try { settings.UserData = Session["UserData"] as UserData; var pagerModel = _usersRepository.ToBsGridViewModel(settings, out count).Wrap <UsersPageModel>(x => x.Grid); html = this.BsRenderPartialView("Grid/_Grid", pagerModel); } catch (Exception ex) { msg = ex.Message; status = BsResponseStatus.ServerError; } return(new BsJsonResult(new { Count = count, Html = html }, status, msg)); }
public async Task WhenInvalidFormat_ReturnsInvalid() { var uniqueData = nameof(WhenInvalidFormat_ReturnsInvalid) + UNIQUE_DOMAIN; var userSettings = new UsersSettings(); userSettings.EmailAddress.AllowAnyCharacter = false; userSettings.EmailAddress.AllowAnyLetter = false; using var app = _appFactory.Create(s => { s.AddSingleton(userSettings); }); var contentRepository = app.Services.GetContentRepositoryWithElevatedPermissions(); var result = await contentRepository .Users() .ValidateEmailAddress(new ValidateUserEmailAddressQuery() { UserAreaCode = CofoundryAdminUserArea.Code, Email = uniqueData }) .ExecuteAsync(); AssertErrorMessage(result, "invalid-characters", "* cannot contain 'W'."); }
public UserAreaDefinitionRepository( IEnumerable <IUserAreaDefinition> userAreas, UsersSettings identitySettings ) { DetectInvalidDefinitions(userAreas); _userAreas = userAreas.ToDictionary(k => k.UserAreaCode); _options = ConfigureOptions(userAreas, identitySettings); _defaultUserArea = userAreas .OrderByDescending(u => u.IsDefaultAuthScheme) .ThenByDescending(u => u is CofoundryAdminUserArea) .ThenBy(u => u.Name) .FirstOrDefault(); }
public async Task WhenEmailRequiredUnique_ValidatesEmailUnique() { var uniqueData = UNIQUE_PREFIX + "EmailReqUniq_ValEmailUnique"; var userSettings = new UsersSettings(); userSettings.EmailAddress.RequireUnique = true; using var app = _appFactory.Create(s => { s.AddSingleton(userSettings); }); var contentRepository = app.Services.GetContentRepositoryWithElevatedPermissions(); var dbContext = app.Services.GetRequiredService <CofoundryDbContext>(); var userAreaCode = UserAreaWithoutEmailAsUsername.Code; var roleId = await app.TestData.Roles().AddAsync(uniqueData, userAreaCode); var command = new AddUserCommand() { Email = uniqueData + EMAIL_DOMAIN, Username = uniqueData, Password = PASSWORD, RoleId = roleId, UserAreaCode = userAreaCode }; await contentRepository .Users() .AddAsync(command); command.Username = uniqueData + "2"; command.OutputUserId = 0; await contentRepository .Awaiting(r => r.Users().AddAsync(command)) .Should() .ThrowAsync <ValidationErrorException>() .WithMemberNames(nameof(command.Email)) .WithMessage("*email*already*registered*"); }
public ActionResult Index() { var userData = Session["UserData"] as UserData; var gridSettings = new UsersSettings { PageSize = 5, Page = 1, UserData = userData }; var gridModel = _usersRepository.ToBsGridViewModel(gridSettings); var model = new UsersPageModel { Grid = gridModel, Toolbar = new BsToolbarModel <UserSearchModel, UserNewModel> { Search = _usersRepository.GetSearchForm(gridSettings), New = _usersRepository.GetNewForm(gridSettings), } }; var options = new Dictionary <string, object> { { "pagerUrl", Url.Action("Pager") }, { "getRowsUrl", Url.Action("GetRows") }, { "enableDisableUrl", Url.Action("EnableDisable") }, { "deleteUrl", Url.Action("Delete") }, { "updateComponentListUrl", Url.Action("UpdateComponentList") }, { "currentCulture", Thread.CurrentThread.CurrentCulture.Name.Split('-')[0] }, { "autocompleteComponents", RequireJsHtmlHelpers.ToJsonDictionary <UserAutocompleteComponents>() }, { "userRoles", RequireJsHtmlHelpers.ToJsonDictionary <UserRoles>() } }; RequireJsOptions.Add("Index", options); return(View(model)); }
public virtual BsJsonResult UpdateComponentList(UserComponentListUpdateModel userComponentListUpdateModel) { var msg = String.Empty; var status = BsResponseStatus.Success; var results = new UserComponentListModel(); #region Init Settings var currentUserData = Session["UserData"] as UserData; var settings = new UsersSettings(); settings.UserData = currentUserData; #endregion results = _usersRepository.UpdateUserComponentList(settings, userComponentListUpdateModel); return(new BsJsonResult(new { results = results.HtmlType == RegComponentHtmlType.Dropdown ? results.UserComponentDropdown.Items : results.UserComponentListBox.Items, total = results.Total }, status, msg)); }
public async Task WhenNotRequiredUnique_DoesNotValidateUnique() { var uniqueData = "NotUniq_NValUnq" + UNIQUE_DOMAIN; var userSettings = new UsersSettings(); userSettings.EmailAddress.RequireUnique = false; using var app = _appFactory.Create(s => { s.AddSingleton(userSettings); }); var contentRepository = app.Services.GetContentRepositoryWithElevatedPermissions(); var roleId = await app.TestData.Roles().AddAsync(uniqueData, UserAreaWithoutEmailAsUsername.Code); await contentRepository .Users() .AddAsync(new AddUserCommand() { Email = uniqueData, Username = uniqueData, UserAreaCode = UserAreaWithoutEmailAsUsername.Code, RoleId = roleId, Password = nameof(ValidateUserEmailAddressQueryHandlerTests) }); var result = await contentRepository .Users() .ValidateEmailAddress(new ValidateUserEmailAddressQuery() { UserAreaCode = UserAreaWithoutEmailAsUsername.Code, Email = uniqueData }) .ExecuteAsync(); result.IsSuccess.Should().BeTrue(); }
public async Task WhenTooShort_ReturnsInvalid() { var uniqueData = UNIQUE_PREFIX + "2S"; var userSettings = new UsersSettings(); userSettings.Username.MinLength = uniqueData.Length + 1; using var app = _appFactory.Create(s => { s.AddSingleton(userSettings); }); var contentRepository = app.Services.GetContentRepositoryWithElevatedPermissions(); var result = await contentRepository .Users() .ValidateUsername(new ValidateUsernameQuery() { UserAreaCode = UserAreaWithoutEmailAsUsername.Code, Username = uniqueData }) .ExecuteAsync(); AssertErrorMessage(result, "min-length-not-met", $"* less than {userSettings.Username.MinLength} *"); }
public async Task WhenTooLong_ReturnsInvalid() { var uniqueData = UNIQUE_PREFIX + nameof(WhenTooLong_ReturnsInvalid); var userSettings = new UsersSettings(); userSettings.Username.MaxLength = 15; using var app = _appFactory.Create(s => { s.AddSingleton(userSettings); }); var contentRepository = app.Services.GetContentRepositoryWithElevatedPermissions(); var result = await contentRepository .Users() .ValidateUsername(new ValidateUsernameQuery() { UserAreaCode = UserAreaWithoutEmailAsUsername.Code, Username = uniqueData }) .ExecuteAsync(); AssertErrorMessage(result, "max-length-exceeded", "* more than 15 *"); }
public async Task WhenTooShort_ReturnsInvalid() { var uniqueData = "2S" + UNIQUE_DOMAIN; var userSettings = new UsersSettings(); userSettings.EmailAddress.MinLength = uniqueData.Length + 1; using var app = _appFactory.Create(s => { s.AddSingleton(userSettings); }); var contentRepository = app.Services.GetContentRepositoryWithElevatedPermissions(); var result = await contentRepository .Users() .ValidateEmailAddress(new ValidateUserEmailAddressQuery() { UserAreaCode = CofoundryAdminUserArea.Code, Email = uniqueData }) .ExecuteAsync(); AssertErrorMessage(result, "min-length-not-met", $"* less than {userSettings.EmailAddress.MinLength} *"); }
public async Task WhenTooLong_ReturnsInvalid() { var uniqueData = nameof(WhenTooLong_ReturnsInvalid) + UNIQUE_DOMAIN; var userSettings = new UsersSettings(); userSettings.EmailAddress.MaxLength = 15; using var app = _appFactory.Create(s => { s.AddSingleton(userSettings); }); var contentRepository = app.Services.GetContentRepositoryWithElevatedPermissions(); var result = await contentRepository .Users() .ValidateEmailAddress(new ValidateUserEmailAddressQuery() { UserAreaCode = CofoundryAdminUserArea.Code, Email = uniqueData }) .ExecuteAsync(); AssertErrorMessage(result, "max-length-exceeded", "* more than 15 *"); }
private static Dictionary <string, UserAreaOptions> ConfigureOptions(IEnumerable <IUserAreaDefinition> userAreas, UsersSettings identitySettings) { var result = new Dictionary <string, UserAreaOptions>(); foreach (var userArea in userAreas) { var options = UserAreaOptions.CopyFrom(identitySettings); userArea.ConfigureOptions(options); result.Add(userArea.UserAreaCode, options); } return(result); }
public UsersBackgroundTaskRegistration( UsersSettings usersSettings ) { _usersSettings = usersSettings; }