diff --git a/TIAM.Database.Test/AdminDalTest.cs b/TIAM.Database.Test/AdminDalTest.cs index 0f5c4de0..d3acd53c 100644 --- a/TIAM.Database.Test/AdminDalTest.cs +++ b/TIAM.Database.Test/AdminDalTest.cs @@ -236,7 +236,7 @@ namespace TIAM.Database.Test NullValueHandling = NullValueHandling.Ignore }; - var userModel = Dal.GetUserModelDtoById(userId); + var userModel = Dal.GetUserModelDtoById(userId, false); var serializedUserModel = JsonConvert.SerializeObject(userModel, options); userModel = JsonConvert.DeserializeObject(serializedUserModel); @@ -263,7 +263,7 @@ namespace TIAM.Database.Test public void GetSerializedUserEntity_ReturnDeserializedUser_WhenUserAndRelationsExists(string userIdString) { var userId = Guid.Parse(userIdString); - var userJson = Dal.GetUserJsonById(userId); + var userJson = Dal.GetUserJsonById(userId, false); Assert.IsFalse(userJson?.IsNullOrWhiteSpace()); diff --git a/TIAM.Database.Test/UserDalTests.cs b/TIAM.Database.Test/UserDalTests.cs index 152be2ee..1bb0f980 100644 --- a/TIAM.Database.Test/UserDalTests.cs +++ b/TIAM.Database.Test/UserDalTests.cs @@ -60,7 +60,7 @@ namespace TIAM.Database.Test Assert.IsTrue(errorCode == AcErrorCode.Unset); - var user = Dal.GetUserByEmail(RegisterEmail); + var user = Dal.GetUserByEmail(RegisterEmail, false); Assert.IsNotNull(user); Assert.IsNotNull(user.Profile); @@ -149,7 +149,7 @@ namespace TIAM.Database.Test NullValueHandling = NullValueHandling.Ignore }; - var userModel = await Dal.GetUserModelDtoByIdAsync(userId).ConfigureAwait(false); + var userModel = await Dal.GetUserModelDtoByIdAsync(userId, false).ConfigureAwait(false); var serializedUserModel = JsonConvert.SerializeObject(userModel, options); userModel = JsonConvert.DeserializeObject(serializedUserModel); @@ -200,7 +200,7 @@ namespace TIAM.Database.Test user.Profile.Address = address; Assert.IsTrue(await Dal.AddUserAsync(user)); - user = Dal.GetUserById(userId); + user = Dal.GetUserById(userId, false); Assert.IsNotNull(user); Assert.IsNotNull(user.Profile); @@ -208,7 +208,7 @@ namespace TIAM.Database.Test Assert.IsTrue(await Dal.RemoveUserAsync(userId)); //mielőbb kitöröljük, h ne maradjon szemét a db-ben - J. - user = Dal.GetUserById(userId); + user = Dal.GetUserById(userId, false); Assert.IsNull(user); //a korábbi törlés miatt NULL kell legyen - J. } //[TestMethod] diff --git a/TIAM.Database/DataLayers/Admins/AdminDal.cs b/TIAM.Database/DataLayers/Admins/AdminDal.cs index 73663f9d..a7d37ba4 100644 --- a/TIAM.Database/DataLayers/Admins/AdminDal.cs +++ b/TIAM.Database/DataLayers/Admins/AdminDal.cs @@ -90,15 +90,15 @@ namespace TIAM.Database.DataLayers.Admins public User? GetUserById(Guid userId, bool autoInclude = false) => Session(ctx => ctx.GetUserById(userId, autoInclude)); public User? GetUserByEmail(string email, bool autoInclude = false) => Session(ctx => ctx.GetUserByEmail(email, autoInclude)); - public UserModelDtoDetail? GetUserModelDtoDetailById(Guid userId) => Session(ctx => ctx.GetUserModelDtoDetailById(userId)); - public Task GetUserModelDtoDetailByIdAsync(Guid userId) => SessionAsync(ctx => ctx.GetUserModelDtoDetailById(userId)); - public UserModelDtoDetail? GetUserModelDtoDetailByEmail(string email) => Session(ctx => ctx.GetUserModelDtoDetailByEmail(email)); + public UserModelDtoDetail? GetUserModelDtoDetailById(Guid userId, bool onlyConfirmed) => Session(ctx => ctx.GetUserModelDtoDetailById(userId, onlyConfirmed)); + public Task GetUserModelDtoDetailByIdAsync(Guid userId, bool onlyConfirmed) => SessionAsync(ctx => ctx.GetUserModelDtoDetailById(userId, onlyConfirmed)); + public UserModelDtoDetail? GetUserModelDtoDetailByEmail(string email, bool onlyConfirmed) => Session(ctx => ctx.GetUserModelDtoDetailByEmail(email, onlyConfirmed)); - public UserModelDto? GetUserModelDtoById(Guid userId) => Session(ctx => ctx.GetUserModelDtoById(userId)); - public Task GetUserModelDtoByIdAsync(Guid userId) => SessionAsync(ctx => ctx.GetUserModelDtoById(userId)); - public UserModelDto? GetUserModelDtoByEmail(string email) => Session(ctx => ctx.GetUserModelDtoByEmail(email)); + public UserModelDto? GetUserModelDtoById(Guid userId, bool onlyConfirmed) => Session(ctx => ctx.GetUserModelDtoById(userId, onlyConfirmed)); + public Task GetUserModelDtoByIdAsync(Guid userId, bool onlyConfirmed) => SessionAsync(ctx => ctx.GetUserModelDtoById(userId, onlyConfirmed)); + public UserModelDto? GetUserModelDtoByEmail(string email, bool onlyConfirmed) => Session(ctx => ctx.GetUserModelDtoByEmail(email, onlyConfirmed)); - public string? GetUserJsonById(Guid userId) => Session(ctx => ctx.GetUserById(userId)?.ToJson()); + public string? GetUserJsonById(Guid userId, bool onlyConfirmed) => Session(ctx => ctx.GetUserById(userId, onlyConfirmed)?.ToJson()); public string GetUsersJson() => Session(ctx => ctx.Users.ToJson()); //public Task AddUserAsync(User user) => TransactionAsync(ctx => ctx.AddUser(user)); diff --git a/TIAM.Database/DataLayers/Users/UserDal.cs b/TIAM.Database/DataLayers/Users/UserDal.cs index c1e1528a..04e0a18d 100644 --- a/TIAM.Database/DataLayers/Users/UserDal.cs +++ b/TIAM.Database/DataLayers/Users/UserDal.cs @@ -29,13 +29,13 @@ namespace TIAM.Database.DataLayers.Users { } - public UserModelDtoDetail? GetUserModelDtoDetailById(Guid userId) => Session(ctx => ctx.GetUserModelDtoDetailById(userId)); - public Task GetUserModelDtoDetailByIdAsync(Guid userId) => SessionAsync(ctx => ctx.GetUserModelDtoDetailById(userId)); - public UserModelDtoDetail? GetUserModelDtoDetailByEmail(string email) => Session(ctx => ctx.GetUserModelDtoDetailByEmail(email)); + public UserModelDtoDetail? GetUserModelDtoDetailById(Guid userId, bool onlyConfirmed) => Session(ctx => ctx.GetUserModelDtoDetailById(userId, onlyConfirmed)); + public Task GetUserModelDtoDetailByIdAsync(Guid userId, bool onlyConfirmed) => SessionAsync(ctx => ctx.GetUserModelDtoDetailById(userId, onlyConfirmed)); + public UserModelDtoDetail? GetUserModelDtoDetailByEmail(string email, bool onlyConfirmed) => Session(ctx => ctx.GetUserModelDtoDetailByEmail(email, onlyConfirmed)); - public UserModelDto? GetUserModelDtoById(Guid userId) => Session(x => x.GetUserModelDtoById(userId)); - public Task GetUserModelDtoByIdAsync(Guid userId) => SessionAsync(x => x.GetUserModelDtoById(userId)); - public Task GetUserModelDtoByEmailAsync(string email) => SessionAsync(x => x.GetUserModelDtoByEmail(email)); + public UserModelDto? GetUserModelDtoById(Guid userId, bool onlyConfirmed) => Session(x => x.GetUserModelDtoById(userId, onlyConfirmed)); + public Task GetUserModelDtoByIdAsync(Guid userId, bool onlyConfirmed) => SessionAsync(x => x.GetUserModelDtoById(userId, onlyConfirmed)); + public Task GetUserModelDtoByEmailAsync(string email, bool onlyConfirmed) => SessionAsync(x => x.GetUserModelDtoByEmail(email, onlyConfirmed)); public Task> GetAllUsersModelDtoAsync() => SessionAsync(x => x.GetAllUsersModelDto().ToList()); public Task GetUserByPhoneNumberAsync(string phoneNumber) diff --git a/TIAM.Database/DbSets/Users/UserDbSetExtensions.cs b/TIAM.Database/DbSets/Users/UserDbSetExtensions.cs index 21c0581d..182b4d34 100644 --- a/TIAM.Database/DbSets/Users/UserDbSetExtensions.cs +++ b/TIAM.Database/DbSets/Users/UserDbSetExtensions.cs @@ -21,20 +21,20 @@ public static class UserDbSetExtensions public static User? GetUserByEmail(this IUserDbSet ctx, string email, bool autoInclude) => ctx.UsersWithProductRelations(autoInclude).FirstOrDefault(x => x.EmailAddress == email); - public static UserModelDto? GetUserModelDtoById(this IUserDbSet ctx, Guid userId) - => ctx.GetUsersById(userId).Select(user => new UserModelDto(user)).FirstOrDefault(); + public static UserModelDto? GetUserModelDtoById(this IUserDbSet ctx, Guid userId, bool onlyConfirmed) + => ctx.GetUsersById(userId, onlyConfirmed).Select(user => new UserModelDto(user)).FirstOrDefault(); - public static UserModelDto? GetUserModelDtoByEmail(this IUserDbSet ctx, string email) - => ctx.GetUsersByEmail(email).Select(user => new UserModelDto(user)).FirstOrDefault(); + public static UserModelDto? GetUserModelDtoByEmail(this IUserDbSet ctx, string email, bool onlyConfirmed) + => ctx.GetUsersByEmail(email, onlyConfirmed).Select(user => new UserModelDto(user)).FirstOrDefault(); public static IQueryable GetAllUsersModelDto(this IUserDbSet ctx) => ctx.Users.Select(user => new UserModelDto(user)); - public static UserModelDtoDetail? GetUserModelDtoDetailById(this IUserDbSet ctx, Guid userId) - => ctx.GetUsersById(userId).Select(user => new UserModelDtoDetail(user)).FirstOrDefault(); + public static UserModelDtoDetail? GetUserModelDtoDetailById(this IUserDbSet ctx, Guid userId, bool onlyConfirmed) + => ctx.GetUsersById(userId, onlyConfirmed).Select(user => new UserModelDtoDetail(user)).FirstOrDefault(); - public static UserModelDtoDetail? GetUserModelDtoDetailByEmail(this IUserDbSet ctx, string email) - => ctx.GetUsersByEmail(email).Select(user => new UserModelDtoDetail(user)).FirstOrDefault(); + public static UserModelDtoDetail? GetUserModelDtoDetailByEmail(this IUserDbSet ctx, string email, bool onlyConfirmed) + => ctx.GetUsersByEmail(email, onlyConfirmed).Select(user => new UserModelDtoDetail(user)).FirstOrDefault(); public static IQueryable GetAllUsersModelDetailDto(this IUserDbSet ctx) => ctx.Users.Select(user => new UserModelDtoDetail(user)); diff --git a/TIAMSharedUI/Pages/Login.razor b/TIAMSharedUI/Pages/Login.razor index 95e07efe..04c91b43 100644 --- a/TIAMSharedUI/Pages/Login.razor +++ b/TIAMSharedUI/Pages/Login.razor @@ -86,7 +86,7 @@ @code { - LoginModel loginModel = new LoginModel("test@test", "test1234"); + LoginModel loginModel = new LoginModel("test@tiam.hu", "test1234"); } \ No newline at end of file diff --git a/TIAMSharedUI/Pages/Login.razor.cs b/TIAMSharedUI/Pages/Login.razor.cs index fb32c431..43bcefc2 100644 --- a/TIAMSharedUI/Pages/Login.razor.cs +++ b/TIAMSharedUI/Pages/Login.razor.cs @@ -71,28 +71,28 @@ namespace TIAMSharedUI.Pages //var Mainresponse = JsonSerializer.Deserialize(response); - var Mainresponse = JsonSerializer.Deserialize(response, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); + var mainResponse = JsonSerializer.Deserialize(response, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); - if (Mainresponse != null) + if (mainResponse != null) { //check for bad request //TODO: fix hacky solution - string AuthResponseJson = JsonSerializer.Serialize(Mainresponse.Content); + string authResponseJson = JsonSerializer.Serialize(mainResponse.Content); - var AuthResponse = JsonSerializer.Deserialize(AuthResponseJson, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); + var authResponse = JsonSerializer.Deserialize(authResponseJson, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); - string accessToken = AuthResponse.AccessToken; + string accessToken = authResponse.AccessToken; var token = ProcessToken(accessToken); - string _userId = token.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.NameId).Value; - string _email = token.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.Email).Value; + string userId = token.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.NameId).Value; + string email = token.Claims.First(claim => claim.Type == JwtRegisteredClaimNames.Email).Value; - var myId = Guid.Parse(_userId); + var myId = Guid.Parse(userId); //userDataService.User.Email = _email; - var userBasicDetails = new UserBasicDetails(_userId, _email, AuthResponse.AccessToken, AuthResponse.RefreshToken); + var userBasicDetails = new UserBasicDetails(userId, email, authResponse.AccessToken, authResponse.RefreshToken); string userBasicDetailsJson = JsonSerializer.Serialize(userBasicDetails); @@ -103,7 +103,7 @@ namespace TIAMSharedUI.Pages - if (!Mainresponse.IsSuccess) + if (!mainResponse.IsSuccess) { //await App.Current.MainPage.DisplayAlert("Error", "Invalid credentials", "Ok"); //display error message via jsinterop diff --git a/TIAMWebApp/Server/Controllers/UserAPIController.cs b/TIAMWebApp/Server/Controllers/UserAPIController.cs index 26625471..67c9ad04 100644 --- a/TIAMWebApp/Server/Controllers/UserAPIController.cs +++ b/TIAMWebApp/Server/Controllers/UserAPIController.cs @@ -24,6 +24,7 @@ using TIAMWebApp.Server.ModelsTIAMWebApp.Shared.Application.Models; using TIAMWebApp.Shared.Application.Utility; using TIAM.Database.DataLayers.Admins; using System; +using AyCode.Core.Consts; using AyCode.Core.Helpers; using TIAM.Entities.Profiles; using TIAM.Entities.Addresses; @@ -139,7 +140,7 @@ namespace TIAMWebApp.Server.Controllers if (email != null) { //get user from db - dbUser = await _userDal.GetUserByEmailAsync(email.Value); + dbUser = await _userDal.GetUserByEmailAsync(email.Value, true); Console.WriteLine($@"DbUser email: {dbUser?.EmailAddress}"); } @@ -178,17 +179,17 @@ namespace TIAMWebApp.Server.Controllers [AllowAnonymous] [HttpPost] [Route("CreateUser")] - public async Task CreateUser([FromBody] JsonElement SerializedRegistrationModel) + public async Task CreateUser([FromBody] JsonElement serializedRegistrationModel) { Console.WriteLine(@"CreateUser called"); - if (string.IsNullOrEmpty(SerializedRegistrationModel.GetRawText())) + if (string.IsNullOrEmpty(serializedRegistrationModel.GetRawText())) { return BadRequest("SerializedLoginModel is required"); } else { - var user = JObject.Parse(SerializedRegistrationModel.GetRawText()).ToObject(); + var user = JObject.Parse(serializedRegistrationModel.GetRawText()).ToObject(); if (user != null) { @@ -227,7 +228,7 @@ namespace TIAMWebApp.Server.Controllers public async Task CreateGuestUser([FromBody] JsonElement SerializedRegistrationModel) { Console.WriteLine(@"CreateGuestUser called"); - bool result = false; + var result = false; UserModelDtoDetail? guestUser = null; if (string.IsNullOrEmpty(SerializedRegistrationModel.GetRawText())) @@ -240,9 +241,9 @@ namespace TIAMWebApp.Server.Controllers if (user != null) { - Random random = new Random(); - string chars = "1234567890"; - string nameExtension = new string(Enumerable.Repeat(chars, 10) + var random = new Random(); + var chars = "1234567890"; + var nameExtension = new string(Enumerable.Repeat(chars, 10) .Select(s => s[random.Next(s.Length)]).ToArray()); @@ -250,7 +251,7 @@ namespace TIAMWebApp.Server.Controllers var email = user?.Email; var phoneNumber = user?.PhoneNumber; var password = user?.Password; - Guid? referralId = user?.ReferralId; + var referralId = user?.ReferralId; if (email is null || phoneNumber is null || password is null) { @@ -271,14 +272,14 @@ namespace TIAMWebApp.Server.Controllers userToCreate.RefferalId = referralId; userToCreate.Profile.AddressId = Guid.NewGuid(); - Random rnd = new Random(); + //Random rnd = new Random(); userToCreate.Profile.Address = new Address(); userToCreate.Profile.Address.Id = userToCreate.Profile.AddressId; userToCreate.Profile.Address.AddressText = null; - userToCreate.Profile.Address.Latitude = Math.Round(90 + rnd.NextDouble(), 8); - userToCreate.Profile.Address.Longitude = Math.Round(180 + rnd.NextDouble(), 8); + userToCreate.Profile.Address.Latitude = null; //Math.Round(90 + rnd.NextDouble(), 8); + userToCreate.Profile.Address.Longitude = null; //Math.Round(180 + rnd.NextDouble(), 8); result = await _userDal.AddUserAsync(userToCreate); - guestUser = await _userDal.GetUserModelDtoDetailByIdAsync(userId); + guestUser = await _userDal.GetUserModelDtoDetailByIdAsync(userId, false); } } @@ -303,7 +304,8 @@ namespace TIAMWebApp.Server.Controllers { Logger.Info($"GetUserByEmail called with email: {email}"); Console.WriteLine($@"GetUserByEmail called with email: {email}"); - return _userDal.GetUserModelDtoByEmailAsync(email); + + return _userDal.GetUserModelDtoByEmailAsync(email, false); } [AllowAnonymous] @@ -312,7 +314,7 @@ namespace TIAMWebApp.Server.Controllers public Task GetUserById([FromBody] Guid id) { Logger.Info($"GetUserById called with id: {id}"); - return _userDal.GetUserModelDtoByIdAsync(id); + return _userDal.GetUserModelDtoByIdAsync(id, true); } [AllowAnonymous] @@ -321,19 +323,7 @@ namespace TIAMWebApp.Server.Controllers public Task GetUserDetailById([FromBody] Guid id) { Logger.Info($"GetUserDetailById called with id: {id}"); - return _userDal.GetUserModelDtoDetailByIdAsync(id); - } - - private bool VerifyPassword(string password, string hashedPassword) - { - var isPasswordValid = PasswordHasher.VerifyPassword(password, hashedPassword); - return isPasswordValid; - } - - private string HashPassword(string password) - { - var hashedPassword = PasswordHasher.HashPassword(password); - return hashedPassword; + return _userDal.GetUserModelDtoDetailByIdAsync(id, true); } } } \ No newline at end of file