예제 #1
0
        public async Task <Result> SetUserInterestsAsync(int[] interestIds)
        {
            if (interestIds == null || interestIds.Length <= 0)
            {
                return(Result.Fail(Atleast_One_Interest_Is_Required));
            }

            var currentUserResult = await _userIdentityProvider.GetUser();

            if (!currentUserResult.IsSuccessed)
            {
                return(Result.Fail(currentUserResult.GetErrorString()));
            }

            var user = currentUserResult.Value;

            var setUserInterestsResult = await _userDomainService.SetUserInterests(user, interestIds);

            if (!setUserInterestsResult.IsSuccessed)
            {
                return(Result.Fail(setUserInterestsResult.GetErrorString()));
            }

            _userRepository.Update(user);

            var saveResult = await _userRepository.SaveChangesAsync(Failed_To_Update_Interests);

            if (!saveResult.IsSuccessed)
            {
                return(Result.Fail(saveResult.GetErrorString()));
            }

            _mediator.Publish(new UserModified(user));
            return(Result.Ok());
        }
예제 #2
0
        public void TestGetUser()
        {
            IIdentityProvider provider = Bootstrapper.CreateIdentityProvider();
            User userByName            = provider.GetUserByName(Bootstrapper.Settings.TestIdentity.Username);

            Assert.IsNotNull(userByName);
            Assert.AreEqual(Bootstrapper.Settings.TestIdentity.Username, userByName.Username);
            Assert.IsNotNull(userByName.Id);

            User user = provider.GetUser(userByName.Id);

            Assert.IsNotNull(user);
            Assert.AreEqual(Bootstrapper.Settings.TestIdentity.Username, user.Username);
            Assert.AreEqual(userByName.Id, user.Id);

            Console.WriteLine("User \"{0}\" (id: {1})", user.Username, user.Id);
            if (!user.Enabled)
            {
                Console.WriteLine("    Disabled");
            }
            if (!string.IsNullOrEmpty(user.Email))
            {
                Console.WriteLine("    Email: {0}", user.Email);
            }
            if (!string.IsNullOrEmpty(user.DefaultRegion))
            {
                Console.WriteLine("    Default region: {0}", user.DefaultRegion);
            }
            if (user.DomainId != null)
            {
                Console.WriteLine("    Domain ID: {0}", user.DomainId);
            }
        }
예제 #3
0
        public void TestAddUserUpdateUserDeleteUser()
        {
            string  username = GenerateUsername();
            NewUser newUser  = new NewUser(username, username + "@example.com");

            IIdentityProvider provider = Bootstrapper.CreateIdentityProvider();
            NewUser           user     = provider.AddUser(newUser);

            Assert.IsNotNull(user);
            Assert.AreEqual(username, user.Username);
            Assert.IsFalse(string.IsNullOrEmpty(user.Id));
            Assert.IsFalse(string.IsNullOrEmpty(user.Password));

            IEnumerable <Role> roles = provider.GetRolesByUser(user.Id);

            Console.WriteLine("Roles for the created user:"******"    {0} ({1}) # {2}", role.Name, role.Id, role.Description);
            }

            Assert.IsTrue(roles.Any(i => string.Equals(i.Name, "identity:default", StringComparison.OrdinalIgnoreCase)));

            try
            {
                // make sure we can't add the same user twice
                provider.AddUser(newUser);
                Assert.Fail("Expected a conflict");
            }
            catch (ServiceConflictException)
            {
                // this makes the most sense
            }
            catch (ResponseException)
            {
                // this is allowed by the interface
            }

            User current = provider.GetUser(user.Id);

            Console.WriteLine();
            Console.WriteLine("Updating email address...");
            Console.WriteLine();

            current.Email = username + "*****@*****.**";
            User updated = provider.UpdateUser(current);

            Console.WriteLine(JsonConvert.SerializeObject(updated, Formatting.Indented));
            Assert.AreNotSame(current, updated);
            Assert.AreEqual(current.Email, updated.Email);

            Console.WriteLine();
            Console.WriteLine("Updating username...");
            Console.WriteLine();

            current.Username = username + "2";
            updated          = provider.UpdateUser(current);
            Console.WriteLine(JsonConvert.SerializeObject(updated, Formatting.Indented));
            Assert.AreNotSame(current, updated);
            Assert.AreEqual(current.Username, updated.Username);

            Console.WriteLine();
            Console.WriteLine("Updating default region...");
            Console.WriteLine();

            current.DefaultRegion = current.DefaultRegion == "SYD" ? "DFW" : "SYD";
            updated = provider.UpdateUser(current);
            Console.WriteLine(JsonConvert.SerializeObject(updated, Formatting.Indented));
            Assert.AreNotSame(current, updated);
            Assert.AreEqual(current.DefaultRegion, updated.DefaultRegion);

            Console.WriteLine();
            Console.WriteLine("Updating enabled (toggling twice)...");
            Console.WriteLine();

            current.Enabled = !current.Enabled;
            updated         = provider.UpdateUser(current);
            Console.WriteLine(JsonConvert.SerializeObject(updated, Formatting.Indented));
            Assert.AreNotSame(current, updated);
            Assert.AreEqual(current.Enabled, updated.Enabled);

            current.Enabled = !current.Enabled;
            updated         = provider.UpdateUser(current);
            Console.WriteLine(JsonConvert.SerializeObject(updated, Formatting.Indented));
            Assert.AreNotSame(current, updated);
            Assert.AreEqual(current.Enabled, updated.Enabled);

            Assert.IsNotNull(provider.GetUser(user.Id));

            bool deleted = provider.DeleteUser(user.Id);

            Assert.IsTrue(deleted);
            try
            {
                provider.GetUser(user.Id);
                Assert.Fail("Expected an exception");
            }
            catch (ItemNotFoundException)
            {
                // this makes the most sense
            }
            catch (UserNotAuthorizedException)
            {
                // this is allowed by the interface, and some providers report it for security reasons
            }
            catch (ResponseException)
            {
                // this is allowed by the interface
            }
        }