public async Task <ActionResult> UpdateResource(AdminUpdateUser user)
        {
            var response = await service.UpdateResource(user, pathRoot);

            if (response.status == true)
            {
                return(Ok(response));
            }
            return(NotFound(response));
        }
Example #2
0
        public async Task Can_AdminUpdateUser()
        {
            var createUserRequest = CreateUserRequest();

            var response = client.Post(createUserRequest);

            AssertFirstLastUser(response);

            var updateUserRequest = new AdminUpdateUser {
                Id          = response.Id,
                FirstName   = "Given",
                LastName    = "Surname",
                DisplayName = "Display Name",
                Email       = "*****@*****.**",
                Password    = "******",
                ProfileUrl  = Svg.Images[Svg.Icons.FemaleBusiness],
                RemoveRoles = new List <string> {
                    "TheRole"
                },
                AddRoles = new List <string> {
                    "NewRole"
                },
                AddPermissions = new List <string> {
                    "ThePermission"
                },
            };

            var updated = client.Put(updateUserRequest);

            Assert.That(updated.Id, Is.EqualTo(response.Id));
            Assert.That(updated.Result[nameof(UserAuth.FirstName)], Is.EqualTo("Given"));
            Assert.That(updated.Result[nameof(UserAuth.LastName)], Is.EqualTo("Surname"));
            Assert.That(updated.Result[nameof(UserAuth.DisplayName)], Is.EqualTo("Display Name"));
            Assert.That(updated.Result[nameof(UserAuth.Email)], Is.EqualTo("*****@*****.**"));
            Assert.That(updated.Result[nameof(UserAuth.PrimaryEmail)], Is.EqualTo("*****@*****.**"));
            Assert.That(updated.Result[nameof(UserAuth.Roles)], Is.EqualTo(new List <string> {
                "NewRole"
            }));
            Assert.That(updated.Result[nameof(UserAuth.Permissions)], Is.EqualTo(new List <string> {
                "ThePermission"
            }));
            Assert.That(updated.Result[nameof(IAuthSession.ProfileUrl)], Is.EqualTo(Svg.Images[Svg.Icons.FemaleBusiness]));

            var authRepo = appHost.GetAuthRepository();

            using (authRepo as IDisposable)
            {
                Assert.That(authRepo.TryAuthenticate("*****@*****.**", "newp@ss", out _));
            }
        }
        public async Task <IResponse> UpdateResource(AdminUpdateUser user, string rootPath)
        {
            var selectedUser = await userManager.FindByIdAsync(user.Id + "");

            if (selectedUser != null)
            {
                selectedUser.UserName       = user.UserName;
                selectedUser.Email          = user.Email;
                selectedUser.EmailConfirmed = true;
                selectedUser.JobTitle       = user.JobTitle;
                selectedUser.CostPerHour    = user.CostPerHour;
                if (!String.IsNullOrEmpty(user.Password))
                {
                    await userManager.RemovePasswordAsync(selectedUser);

                    await userManager.AddPasswordAsync(selectedUser, user.Password);
                }
                if (!String.IsNullOrEmpty(user.Base64))
                {
                    selectedUser.Photo = file.SaveImage(user.Base64, selectedUser.Id + "", "Images/Users", rootPath);
                }
                var result = await userManager.UpdateAsync(selectedUser);

                //if (String.IsNullOrEmpty(user.Role))
                //{
                //    var PreviousRole = await userManager.GetRolesAsync(selectedUser);
                //    if (PreviousRole.Count != 0)
                //    {
                //        await userManager.RemoveFromRoleAsync(selectedUser, PreviousRole.FirstOrDefault());
                //    }
                //    await userManager.AddToRoleAsync(selectedUser, user.Role);
                //}
            }
            else
            {
                response.status   = false;
                response.error_EN = "user doesn't exist";
            }
            return(response);
        }