public async Task GroupLevelAccessControlTest() { // Only a user in an admin role should be able to add users to a group via the client key. var adminUser = await UserHelper.CreateNewUserAsync(); // Add user to admin role via the master key. await UserGroup.AddMembersAsync("admin", new [] { adminUser.Username }); // Create another user var otherUser = await UserHelper.CreateNewUserAsync(); try { await UserGroup.AddMembersAsync("all", new[] { otherUser.Username }, new ApiOptions { ApiKey = TestConfiguration.ClientApiKey }); Assert.Fail("Should not be able to add user to group without access."); } catch (AccessDeniedException) { } // Login as the admin user and try to add the user to the group await AppContext.LoginAsync(new UsernamePasswordCredentials(adminUser.Username, adminUser.Password)); await UserGroup.AddMembersAsync("all", new[] { otherUser.Username }, new ApiOptions { ApiKey = TestConfiguration.ClientApiKey }); var user2 = await APUsers.GetByIdAsync(otherUser.Id); Assert.IsTrue(user2.UserGroups.Count() == 1); Assert.IsTrue(user2.UserGroups.First().GroupName.Equals("all", StringComparison.OrdinalIgnoreCase)); }
public async Task InitiateResetPasswordTest() { var user = UserHelper.NewUser(); user.Email = "*****@*****.**"; var created = await UserHelper.CreateNewUserAsync(user); await APUsers.InitiateResetPasswordAsync(user.Username); }
public async Task AddUserByUsernameToGroupTest() { var user = await UserHelper.CreateNewUserAsync(); await UserGroup.AddMembersAsync("all", new [] { user.Username }); var user2 = await APUsers.GetByIdAsync(user.Id); Assert.IsTrue(user2.UserGroups.Count(x => x.GroupName.Equals("all", StringComparison.OrdinalIgnoreCase) == true) == 1); }
public async Task FindAllUsersAsyncTest() { // Create a new user var newUser = await UserHelper.CreateNewUserAsync(); // Get list of users var users = await APUsers.FindAllAsync(); users.ForEach(x => Console.WriteLine("id: {0} username: {1}", x.Id, x.Username)); }
public async Task ChangeCurrentUserPasswordWithValidPasswordTest() { var user = await UserHelper.CreateNewUserAsync(); var newPassword = Unique.String; await AppContext.LoginAsync(new UsernamePasswordCredentials(user.Username, user.Password)); await APUsers.ChangePasswordAsync(user.Password, newPassword); var session = await new UsernamePasswordCredentials(user.Username, newPassword).AuthenticateAsync(); Assert.IsNotNull(session); Assert.IsTrue(string.IsNullOrWhiteSpace(session.UserToken) == false); }
public async Task FindAllUsersWithQueryAsyncTest() { // Create a new user var newUser = await UserHelper.CreateNewUserAsync(); // Delay for index propagation on test bench. await Utilities.Delay(1500); // Get list of users var users = await APUsers.FindAllAsync(Query.Property("username").IsEqualTo(newUser.Username)); Assert.IsTrue(users != null && users.Count == 1); Assert.IsTrue(users[0].Id == newUser.Id); users.ForEach(x => Console.WriteLine("id: {0} username: {1}", x.Id, x.Username)); }
public async Task GetLoggedInUserTest() { // Create a new user var newUser = await UserHelper.CreateNewUserAsync(); // Authenticate var creds = new UsernamePasswordCredentials(newUser.Username, newUser.Password); var userSession = await AppContext.LoginAsync(creds); Assert.IsNotNull(userSession); Assert.IsFalse(string.IsNullOrWhiteSpace(userSession.UserToken)); Assert.IsNotNull(userSession.LoggedInUser); var loggedInUser = await APUsers.GetLoggedInUserAsync(); Assert.IsNotNull(loggedInUser); Assert.IsTrue(loggedInUser.Id == userSession.LoggedInUser.Id); }
public async Task ChangeUserPasswordWithInvalidPasswordTest() { var user = await UserHelper.CreateNewUserAsync(); var wrongPassword = Unique.String; await AppContext.LoginAsync(new UsernamePasswordCredentials(user.Username, user.Password)); try { await APUsers.ChangePasswordAsync(wrongPassword, Unique.String); } catch (UserAuthenticationFailureException) { } catch (UnExpectedSystemException uex) { Assert.IsTrue(uex.Code == "25001"); } var session = await new UsernamePasswordCredentials(user.Username, user.Password).AuthenticateAsync(); Assert.IsNotNull(session); Assert.IsTrue(string.IsNullOrWhiteSpace(session.UserToken) == false); }