コード例 #1
0
        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));
        }
コード例 #2
0
        public async Task InitiateResetPasswordTest()
        {
            var user = UserHelper.NewUser();

            user.Email = "*****@*****.**";
            var created = await UserHelper.CreateNewUserAsync(user);

            await APUsers.InitiateResetPasswordAsync(user.Username);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }