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); }
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")); }
/// <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); }
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()); }