Пример #1
0
        public UserLoggedInDto ConvertUserToUserLoggedInDto(ApplicationUser user)
        {
            UserLoggedInDto convertedUser = new UserLoggedInDto()
            {
                Id          = user.Id,
                FullName    = user.FullName,
                UserName    = user.UserName,
                PhoneNumber = user.PhoneNumber,
                Email       = user.Email,
                TeamID      = user.TeamID,
                RoleName    = user.RoleName
            };

            return(convertedUser);
        }
Пример #2
0
        public async Task <IActionResult> UpdateUser([FromBody] UserLoggedInDto updateUser)
        {
            var username = User.GetUsername();
            var loggedIn = await _logic.GetUserByUsername(username);

            var user = await _logic.GetUserById(updateUser.Id);

            if (user.Id != loggedIn.Id)
            {
                return(Unauthorized("Unauthorized to edit this user"));
            }
            if (await _logic.EditUser(updateUser))
            {
                return(NoContent());
            }
            return(BadRequest("Failed to update user"));
        }
Пример #3
0
        /// <summary>
        /// Takes user input, creates authentication data
        /// </summary>
        /// <param name="User">User info sent from controller</param>
        /// <returns>UserLoggedInDto</returns>
        ///
        public async Task <UserLoggedInDto> LoginUser(ApplicationUser user)
        {
            var signingCredentials = _jwtHandler.GetSigningCredentials();
            var claims             = _jwtHandler.GetClaims(user);
            var userRoles          = await _userManager.GetRolesAsync(user);

            foreach (var userRole in userRoles)
            {
                claims.Add(new Claim(ClaimTypes.Role, userRole));
            }
            var             tokenOptions = _jwtHandler.GenerateTokenOptions(signingCredentials, claims);
            var             token        = new JwtSecurityTokenHandler().WriteToken(tokenOptions);
            UserLoggedInDto uld          = _mapper.ConvertUserToUserLoggedInDto(user);

            uld.Token = token;
            return(uld);
        }
        public async Task Login_WhenCalledAndPassedPasswordMeetsExistingOne_ProperUserLoggedInDtoExpected()
        {
            var userPassword = "******";
            var user         = new User
            {
                Id           = 99,
                Username     = "******",
                Email        = "*****@*****.**",
                PasswordHash = Encoding.ASCII.GetBytes("current password hash"),
                PasswordSalt = Encoding.ASCII.GetBytes("current password salt")
            };

            _userRepository.SingleOrDefaultAsync(Arg.Any <Expression <Func <User, bool> > >()).Returns(x =>
            {
                var store = new List <User> {
                    user
                };
                return(store.Single(x.ArgAt <Expression <Func <User, bool> > >(0).Compile()));
            });

            SetPasswordProvider((userPassword,
                                 ComputedPassword.Create(user.PasswordHash, user.PasswordSalt)));

            _mapper.Map <UserLoggedInDto>(Arg.Any <User>()).Returns(x =>
            {
                var inputUser = x.ArgAt <User>(0);
                var dto       = new UserLoggedInDto
                {
                    Id = inputUser.Id, Email = inputUser.Email, Username = inputUser.Username
                };
                return(dto);
            });
            var expected = new UserLoggedInDto {
                Id = user.Id, Email = user.Email, Username = user.Username
            };

            // ACT
            var actual = await _sut.Login(user.Email, userPassword);

            // ASSERT
            actual.Should().BeEquivalentTo(expected);
        }
Пример #5
0
        public async Task <bool> EditUser(UserLoggedInDto updatedUser)
        {
            var user = await _repo.GetUserById(updatedUser.Id);

            if (!String.IsNullOrEmpty(updatedUser.City) && user.City != updatedUser.City)
            {
                user.City = updatedUser.City;
            }
            if (!String.IsNullOrEmpty(updatedUser.State) && user.State != updatedUser.State)
            {
                user.State = updatedUser.State;
            }
            if (!String.IsNullOrEmpty(updatedUser.Interests) && user.Interests != updatedUser.Interests)
            {
                user.Interests = updatedUser.Interests;
            }
            if (!String.IsNullOrEmpty(updatedUser.Introduction) && user.Introduction != updatedUser.Introduction)
            {
                user.Introduction = updatedUser.Introduction;
            }
            if (!String.IsNullOrEmpty(updatedUser.KnownAs) && user.KnownAs != updatedUser.KnownAs)
            {
                user.KnownAs = updatedUser.KnownAs;
            }
            if (!String.IsNullOrEmpty(updatedUser.LookingFor) && user.LookingFor != updatedUser.LookingFor)
            {
                user.LookingFor = updatedUser.LookingFor;
            }
            if (!String.IsNullOrEmpty(updatedUser.PhoneNumber) && user.PhoneNumber != updatedUser.PhoneNumber)
            {
                user.PhoneNumber = updatedUser.PhoneNumber;
            }
            if (!String.IsNullOrEmpty(updatedUser.Email) && user.Email != updatedUser.Email)
            {
                user.Email = updatedUser.Email;
            }
            await _repo.EditUser(user);

            return(await _repo.SaveAllAsync());
        }