feat : add new version 0.21.24.41 , fix dont display product
parent
c910afcda6
commit
acd24336b2
|
@ -38,8 +38,8 @@
|
||||||
},
|
},
|
||||||
"JwtSettings": {
|
"JwtSettings": {
|
||||||
"SecretKey": "YAEMAMZAMAN_KHODET_NEGAHDAR_IN_KEY_BASH_nw+8E0EABj0Wg8c4mHg/bDBf5qGMhmBPb6u16DVe9/MzYva1e+/J1zImyIoQX2Lmra2kvzsIjGiwP7r3Znd_YA_JADE_NASABE_v+Ro/CDixScDv6EkpZnkBv9MFdPnSmFXNGMH9gA1BzQUoC1iSX9Aq+pMIw/cMKXI9WA==_YA_HUSEIN_SEYED_SHOHADA_BE_OMID_KHODET",
|
"SecretKey": "YAEMAMZAMAN_KHODET_NEGAHDAR_IN_KEY_BASH_nw+8E0EABj0Wg8c4mHg/bDBf5qGMhmBPb6u16DVe9/MzYva1e+/J1zImyIoQX2Lmra2kvzsIjGiwP7r3Znd_YA_JADE_NASABE_v+Ro/CDixScDv6EkpZnkBv9MFdPnSmFXNGMH9gA1BzQUoC1iSX9Aq+pMIw/cMKXI9WA==_YA_HUSEIN_SEYED_SHOHADA_BE_OMID_KHODET",
|
||||||
"Issuer": "Brizco",
|
"Issuer": "NetinaShop",
|
||||||
"Audience": "Brizco",
|
"Audience": "NetinaShop",
|
||||||
"ExpireAddDay": "15"
|
"ExpireAddDay": "15"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<InvariantGlobalization>true</InvariantGlobalization>
|
<InvariantGlobalization>true</InvariantGlobalization>
|
||||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||||
<AssemblyVersion>0.20.23.40</AssemblyVersion>
|
<AssemblyVersion>0.21.24.41</AssemblyVersion>
|
||||||
<FileVersion>0.20.23.40</FileVersion>
|
<FileVersion>0.21.24.41</FileVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
using NetinaShop.Repository.Abstracts;
|
using NetinaShop.Repository.Abstracts;
|
||||||
|
using Polly;
|
||||||
|
using static NetinaShop.Infrastructure.Models.Scrapers.Digikala.GetDigikalProductResponseDto;
|
||||||
|
|
||||||
namespace NetinaShop.Api.Services;
|
namespace NetinaShop.Api.Services;
|
||||||
|
|
||||||
|
@ -17,6 +19,17 @@ public class CurrentUserService : ICurrentUserService
|
||||||
public string? UserName => _httpContextAccessor.HttpContext?.User?.FindFirstValue(ClaimTypes.Name);
|
public string? UserName => _httpContextAccessor.HttpContext?.User?.FindFirstValue(ClaimTypes.Name);
|
||||||
public string? DeviceId => GetDeviceId(_httpContextAccessor.HttpContext);
|
public string? DeviceId => GetDeviceId(_httpContextAccessor.HttpContext);
|
||||||
public bool IsAuthorized => GetAuthorized();
|
public bool IsAuthorized => GetAuthorized();
|
||||||
|
public JwtSecurityToken? JwtToken => GetJwtToken();
|
||||||
|
private JwtSecurityToken? GetJwtToken()
|
||||||
|
{
|
||||||
|
var stream = _httpContextAccessor.HttpContext?.Request.Headers.Authorization.FirstOrDefault();
|
||||||
|
if (stream == null)
|
||||||
|
return null;
|
||||||
|
var handler = new JwtSecurityTokenHandler();
|
||||||
|
var jsonToken = handler.ReadToken(stream.Split(" ").Last());
|
||||||
|
return jsonToken as JwtSecurityToken;
|
||||||
|
}
|
||||||
|
|
||||||
public List<string>? Permissions => _httpContextAccessor.HttpContext?.User?.FindAll("Permission")?.Select(c => c.Value)?.ToList();
|
public List<string>? Permissions => _httpContextAccessor.HttpContext?.User?.FindAll("Permission")?.Select(c => c.Value)?.ToList();
|
||||||
|
|
||||||
private string? GetDeviceId(HttpContext? context)
|
private string? GetDeviceId(HttpContext? context)
|
||||||
|
@ -47,4 +60,5 @@ public class CurrentUserService : ICurrentUserService
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,4 +1,6 @@
|
||||||
namespace NetinaShop.Repository.Abstracts;
|
using System.IdentityModel.Tokens.Jwt;
|
||||||
|
|
||||||
|
namespace NetinaShop.Repository.Abstracts;
|
||||||
|
|
||||||
public interface ICurrentUserService : IScopedDependency
|
public interface ICurrentUserService : IScopedDependency
|
||||||
{
|
{
|
||||||
|
@ -7,5 +9,7 @@ public interface ICurrentUserService : IScopedDependency
|
||||||
string? UserName { get; }
|
string? UserName { get; }
|
||||||
string? DeviceId { get; }
|
string? DeviceId { get; }
|
||||||
bool IsAuthorized { get; }
|
bool IsAuthorized { get; }
|
||||||
|
JwtSecurityToken? JwtToken { get; }
|
||||||
|
|
||||||
public List<string>? Permissions { get; }
|
public List<string>? Permissions { get; }
|
||||||
}
|
}
|
|
@ -1,4 +1,8 @@
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using static Microsoft.AspNetCore.Hosting.Internal.HostingApplication;
|
||||||
|
using System.IdentityModel.Tokens.Jwt;
|
||||||
|
using System.Net;
|
||||||
|
using System.Security.Claims;
|
||||||
|
|
||||||
namespace NetinaShop.Repository.Handlers.Products;
|
namespace NetinaShop.Repository.Handlers.Products;
|
||||||
|
|
||||||
|
@ -6,16 +10,24 @@ public class GetProductsQueryHandler : IRequestHandler<GetProductsQuery, GetProd
|
||||||
{
|
{
|
||||||
private readonly IRepositoryWrapper _repositoryWrapper;
|
private readonly IRepositoryWrapper _repositoryWrapper;
|
||||||
private readonly IMediator _mediator;
|
private readonly IMediator _mediator;
|
||||||
|
private readonly ICurrentUserService _currentUserService;
|
||||||
|
|
||||||
public GetProductsQueryHandler(IRepositoryWrapper repositoryWrapper, IMediator mediator)
|
public GetProductsQueryHandler(IRepositoryWrapper repositoryWrapper, IMediator mediator, ICurrentUserService currentUserService)
|
||||||
{
|
{
|
||||||
_repositoryWrapper = repositoryWrapper;
|
_repositoryWrapper = repositoryWrapper;
|
||||||
_mediator = mediator;
|
_mediator = mediator;
|
||||||
|
_currentUserService = currentUserService;
|
||||||
}
|
}
|
||||||
public async Task<GetProductsResponseDto> Handle(GetProductsQuery request, CancellationToken cancellationToken)
|
public async Task<GetProductsResponseDto> Handle(GetProductsQuery request, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var response = new GetProductsResponseDto();
|
var response = new GetProductsResponseDto();
|
||||||
var products = _repositoryWrapper.SetRepository<Product>().TableNoTracking;
|
var products = _repositoryWrapper.SetRepository<Product>().TableNoTracking;
|
||||||
|
if (_currentUserService.JwtToken == null)
|
||||||
|
products = products.Where(p => p.BeDisplayed);
|
||||||
|
var roleClaim = _currentUserService.JwtToken?.Claims.FirstOrDefault(c => c.Type == "role");
|
||||||
|
if (roleClaim != null && roleClaim.Value.Contains("Customer"))
|
||||||
|
products = products.Where(p => p.BeDisplayed);
|
||||||
|
|
||||||
if (request.IsActive != null)
|
if (request.IsActive != null)
|
||||||
products = products.Where(p => p.IsEnable == request.IsActive);
|
products = products.Where(p => p.IsEnable == request.IsActive);
|
||||||
if (request.ProductName != null)
|
if (request.ProductName != null)
|
||||||
|
@ -88,4 +100,5 @@ public class GetProductsQueryHandler : IRequestHandler<GetProductsQuery, GetProd
|
||||||
response.Products = productSDtos;
|
response.Products = productSDtos;
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue