Exemplo n.º 1
0
        public ActionResult Update(UserAdminUpdate value)
        {
            if (value == null)
            {
                throw new ArgumentNullException("value");
            }

            var user = this.UserService.GetById(value.Id);

            if (user == null)
            {
                return HttpNotFound();
            }

            var privilege = new UserPrivilege();

            if (!privilege.CanUpdateAny(user))
            {
                return NotAuthorized();
            }

            value.Validate();

            if (value.IsValid)
            {
                // value to user
                value.ValueToModel(user);

                // update user
                this.UserService.Update(user);

                // update password if needed
                if (!string.IsNullOrEmpty(value.Password))
                {
                    this.AuthenticationService.Update(user, value.Password);
                }

                // preference
                var preference = user.Preference;

                // value to preference
                value.ValueToPreference(preference);

                // update user preference
                this.UserService.UpdatePreference(preference);

                value.SuccessMessage(Messages.UserUpdated.FormatInvariant(user.Name));
            }
            else
            {
                value.CopyToModel(ModelState);
            }

            return base.View(Views.Update, value);
        }
Exemplo n.º 2
0
        public void Test_UserAdminUpdate_ValueToModel()
        {
            var value = new UserAdminUpdate
            {
                Name = "test",
                Title = "test2",
                EmailAddress = "*****@*****.**",
                Signature = "test3",
                IsProtected = true,
                Status = UserStatus.Activated
            };

            var user = new User();

            value.ValueToModel(user);

            Assert.AreEqual("test", user.Name, "Name");
            Assert.AreEqual("test2", user.Title, "Title");
            Assert.AreEqual("*****@*****.**", user.EmailAddress, "EmailAddress");
            Assert.AreEqual("test3", user.Signature, "Signature");
            Assert.IsTrue(user.IsProtected, "IsProtected");
            Assert.AreEqual(UserStatus.Activated, user.Status, "Status");
        }