From 3f3c283fefad77ef428fb2d1a4093bbbf004cc7e Mon Sep 17 00:00:00 2001 From: mmrbnjd Date: Wed, 17 Apr 2024 17:34:34 +0330 Subject: [PATCH] ... --- Back/Controllers/UserController.cs | 5 -- Back/Services/servUser.cs | 129 ++++++++++++++------------- Shared/DTOs/Authentication.cs | 7 +- Shared/DTOs/UserAuthenticationDTO.cs | 2 +- TaxPayerFull/Pages/Sign-in.razor | 50 ++++++++--- 5 files changed, 115 insertions(+), 78 deletions(-) diff --git a/Back/Controllers/UserController.cs b/Back/Controllers/UserController.cs index 9aa7c38..dd96d6c 100644 --- a/Back/Controllers/UserController.cs +++ b/Back/Controllers/UserController.cs @@ -24,11 +24,6 @@ namespace Back.Controllers if (!ModelState.IsValid) return BadRequest(model); var result = await _servUser.UserAuthentication(model.Username, model.Password); if (result != null) return Ok(result); - - - - - else return NotFound("کاربری با این مشخصات یافت نشد"); diff --git a/Back/Services/servUser.cs b/Back/Services/servUser.cs index a2bd3b8..48647ff 100644 --- a/Back/Services/servUser.cs +++ b/Back/Services/servUser.cs @@ -59,69 +59,76 @@ namespace Back.Services ret.Token =await CerateToken(user.ID, user.Username); ret.FullName = user.Fullname; ret.Photo = user.Photo==null ? null : Convert.ToBase64String(user.Photo); - foreach (var rol in user.RolUsers) + //foreach (var rol in user.RolUsers) + //{ + // if (!rol.Company.IsActive) + // continue; + + // List permissions = new List(); + // foreach (var per in rol.Company.PermissionPeriods) + // { + // bool _accessibility = await _checkPermission.AllowPermission(user.ID, rol.CompanyID, per.Permission.ID); + + // #region Child + + // List Chidpermissions = _accessibility ? await _servPermission.GetChildPermission(per.Permission.ID):new List(); + // List ChildpermissionAuthenticationDTOs = new List(); + // foreach (Permission childper in Chidpermissions) + // { + // bool _childaccessibility = await _checkPermission.AllowPermission(user.ID, rol.CompanyID, childper.ID); + // PermissionAuthenticationDTO ChildpermissionAuthenticationDTO = new PermissionAuthenticationDTO + // { + // ID = childper.ID, + // ParentID = childper.ParentID, + // Title = childper.Title, + // accessibility = _childaccessibility, + // //TODO + // ChildPermissions = null + // }; + // ChildpermissionAuthenticationDTOs.Add(ChildpermissionAuthenticationDTO); + // } + // #endregion + + // PermissionAuthenticationDTO permissionAuthenticationDTO = new PermissionAuthenticationDTO + // { + // ID = per.Permission.ID, + // ParentID = per.Permission.ParentID, + // Title = per.Permission.Title, + // accessibility = _accessibility, + // //TODO + // ChildPermissions = ChildpermissionAuthenticationDTOs + + // //Period=new PeriodDTO() + // //{ + // // CalculationTypeID = rol.Company.PermissionPeriods.Where(w => w.PermissionID == per.ID).Select(s => s.CalculationType.ID).FirstOrDefault(), + // // CalculationTypeTitle = rol.Company.PermissionPeriods.Where(w => w.PermissionID == per.ID).Select(s => s.CalculationType.Title).FirstOrDefault(), + // // RemainingAmount = rol.Company.PermissionPeriods.Where(w => w.PermissionID == per.ID).Select(s => s.RemainingAmount).FirstOrDefault(), + // // TotalAmount = rol.Company.PermissionPeriods.Where(w => w.PermissionID == per.ID).Select(s => s.TotalAmount).FirstOrDefault() + // //} + + // }; + // permissions.Add(permissionAuthenticationDTO); + // } + + // ret.Companies.Add(new CompanyAuthenticationDTO + // { + // ID = rol.CompanyID, + // Name = rol.Company.Name, + // IsAdmin = rol.IsAdmin, + // Logo= rol.Company.Logo == null ? null : Convert.ToBase64String(rol.Company.Logo) + + // /*, permissions = permissions*/ + // }); + + //} + ret.Company = new CompanyAuthenticationDTO { - if (!rol.Company.IsActive) - continue; + ID = user.RolUsers.First().ID, + Name = user.RolUsers.First().Company.Name, + IsAdmin = user.RolUsers.First().IsAdmin, + Logo = user.RolUsers.First().Company.Logo == null ? null : Convert.ToBase64String(user.RolUsers.First().Company.Logo) - List permissions = new List(); - foreach (var per in rol.Company.PermissionPeriods) - { - bool _accessibility = await _checkPermission.AllowPermission(user.ID, rol.CompanyID, per.Permission.ID); - - #region Child - - List Chidpermissions = _accessibility ? await _servPermission.GetChildPermission(per.Permission.ID):new List(); - List ChildpermissionAuthenticationDTOs = new List(); - foreach (Permission childper in Chidpermissions) - { - bool _childaccessibility = await _checkPermission.AllowPermission(user.ID, rol.CompanyID, childper.ID); - PermissionAuthenticationDTO ChildpermissionAuthenticationDTO = new PermissionAuthenticationDTO - { - ID = childper.ID, - ParentID = childper.ParentID, - Title = childper.Title, - accessibility = _childaccessibility, - //TODO - ChildPermissions = null - }; - ChildpermissionAuthenticationDTOs.Add(ChildpermissionAuthenticationDTO); - } - #endregion - - PermissionAuthenticationDTO permissionAuthenticationDTO = new PermissionAuthenticationDTO - { - ID = per.Permission.ID, - ParentID = per.Permission.ParentID, - Title = per.Permission.Title, - accessibility = _accessibility, - //TODO - ChildPermissions = ChildpermissionAuthenticationDTOs - - //Period=new PeriodDTO() - //{ - // CalculationTypeID = rol.Company.PermissionPeriods.Where(w => w.PermissionID == per.ID).Select(s => s.CalculationType.ID).FirstOrDefault(), - // CalculationTypeTitle = rol.Company.PermissionPeriods.Where(w => w.PermissionID == per.ID).Select(s => s.CalculationType.Title).FirstOrDefault(), - // RemainingAmount = rol.Company.PermissionPeriods.Where(w => w.PermissionID == per.ID).Select(s => s.RemainingAmount).FirstOrDefault(), - // TotalAmount = rol.Company.PermissionPeriods.Where(w => w.PermissionID == per.ID).Select(s => s.TotalAmount).FirstOrDefault() - //} - - }; - permissions.Add(permissionAuthenticationDTO); - } - - ret.Companies.Add(new CompanyAuthenticationDTO - { - ID = rol.CompanyID, - Name = rol.Company.Name, - IsAdmin = rol.IsAdmin, - Logo= rol.Company.Logo == null ? null : Convert.ToBase64String(rol.Company.Logo) - - /*, permissions = permissions*/ - }); - - } - + }; return ret; } public async Task AddUser(User item) diff --git a/Shared/DTOs/Authentication.cs b/Shared/DTOs/Authentication.cs index 1a921dc..d7a9afb 100644 --- a/Shared/DTOs/Authentication.cs +++ b/Shared/DTOs/Authentication.cs @@ -1,8 +1,13 @@ -namespace Shared.DTOs +using System.ComponentModel.DataAnnotations; + +namespace Shared.DTOs { public class Authentication { + [MinLength(3,ErrorMessage =("نام کاربری باید حداقل 3 کاراکتر باشد"))] public string Username { get; set; } + [MinLength(3, ErrorMessage = ("کلمه عبور باید حداقل 3 کاراکتر باشد"))] public string Password { get; set; } + public bool Remember { get; set; }=false; } } diff --git a/Shared/DTOs/UserAuthenticationDTO.cs b/Shared/DTOs/UserAuthenticationDTO.cs index e2c7865..43a6889 100644 --- a/Shared/DTOs/UserAuthenticationDTO.cs +++ b/Shared/DTOs/UserAuthenticationDTO.cs @@ -8,7 +8,7 @@ namespace Shared.DTOs public string FullName { get; set; } public string Token { get; set; } public string Photo { get; set; } - public ICollection Companies { get; set; } = new List(); + public CompanyAuthenticationDTO Company { get; set; } } } diff --git a/TaxPayerFull/Pages/Sign-in.razor b/TaxPayerFull/Pages/Sign-in.razor index 6daa871..d8207c4 100644 --- a/TaxPayerFull/Pages/Sign-in.razor +++ b/TaxPayerFull/Pages/Sign-in.razor @@ -1,4 +1,5 @@ @page "/Sign-in" +@using Shared.DTOs ورود
@@ -11,9 +12,9 @@
@code { - + [SupplyParameterFromForm] + public Authentication? Model { get; set; } + protected override void OnInitialized() => Model ??= new(); } +@functions { + + private async Task OnLoginClick() + { + var request = await _hc.PostAsJsonAsync("User/authenticate", Model); + // if (request.IsSuccessStatusCode) + // { + // messageStore?.Clear(); + // var VerificationID = await request.Content.ReadFromJsonAsync(); + // nav.NavigateTo($"Verification/{VerificationID}"); + // } + // else + // { + // var error = await request.Content.ReadFromJsonAsync>(); + // messageStore?.Add(() => model.Mobile, error); + + // } + } +} \ No newline at end of file