/// <summary>
        /// Initializes a new instance of the <see cref="AddUserRequest"/> class for the
        /// specified <paramref name="user"/>.
        /// </summary>
        /// <param name="user">The user.</param>
        /// <exception cref="ArgumentNullException">If <paramref name="user"/> is <see langword="null"/>.</exception>
        public AddUserRequest(NewUser user)
        {
            if (user == null)
                throw new ArgumentNullException("user");

            User = user;
        }
        public void CreateUser()
        {
            var identity = new CloudIdentity();
            var provider = new CloudIdentityProvider(identity);

            #region CreateUser
            NewUser user = new NewUser("{username}", "{email}", enabled: true);
            user = provider.AddUser(user, null);
            string password = user.Password;
            #endregion
        }
예제 #3
0
 public NewUser AddUser(CloudIdentity identity, NewUser newUser)
 {
     var provider = GetProvider(identity);
     return provider.AddUser(identity, newUser);
 }
예제 #4
0
 public NewUser AddUser(NewUser newUser, CloudIdentity identity)
 {
     var provider = GetProvider(identity);
     return provider.AddUser(newUser, identity: identity);
 }
        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));

            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
            }
        }
        public void TestResetApiKey()
        {
            string username = GenerateUsername();
            NewUser newUser = new NewUser(username, username + "@example.com");

            CloudIdentityProvider provider = (CloudIdentityProvider)Bootstrapper.CreateIdentityProvider();
            NewUser user = provider.AddUser(newUser, null);

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

            UserCredential credentials = provider.ResetApiKey(user.Id);
            Assert.AreEqual(user.Username, credentials.Username);
            Assert.IsNotNull(credentials.APIKey);
            Assert.AreNotEqual(string.Empty, credentials.APIKey);
            Console.WriteLine("API Key: {0}", credentials.APIKey);

            UserCredential credentials2 = provider.ResetApiKey(user.Id);
            Assert.AreEqual(user.Username, credentials2.Username);
            Assert.IsNotNull(credentials2.APIKey);
            Assert.AreNotEqual(string.Empty, credentials2.APIKey);
            Assert.AreNotEqual(credentials.APIKey, credentials2.APIKey);
            Console.WriteLine("API Key: {0}", credentials2.APIKey);

            bool deleted = provider.DeleteUser(user.Id, null);
            Assert.IsTrue(deleted);
        }
예제 #7
0
        public void Should_Add_New_User_With_Specifying_A_Password_But_Not_Default_Region_To_Account_When_Requesting_As_User_Admin()
        {
            IIdentityProvider provider = new IdentityProvider();

            _newTestUser1 = provider.AddUser(_testIdentity, new NewUser { Username = "******", Email = "*****@*****.**", Enabled = true, Password = NewUserPassword });

            Assert.IsNotNull(_newTestUser1);
            Assert.AreEqual("openstacknettestuser2", _newTestUser1.Username);
            Assert.AreEqual("*****@*****.**", _newTestUser1.Email);
            Assert.AreEqual(true, _newTestUser1.Enabled);
            Assert.AreEqual(NewUserPassword, _newTestUser1.Password);
            Assert.IsFalse(string.IsNullOrWhiteSpace(_newTestUser1.Password));
        }