feat(api): аутентификация и авторизация. Кастомные ParrAuthenticationHandler и BaseSimpleRoleProvider.
This commit is contained in:
@@ -15,7 +15,7 @@ namespace PARR.DAL.CacheServices
|
||||
public async Task<T?> GetCachedDataAsync<T>(string key)
|
||||
{
|
||||
var jsonData = await cache.GetStringAsync(key);
|
||||
|
||||
|
||||
if (jsonData == null)
|
||||
return default(T);
|
||||
|
||||
|
||||
@@ -62,6 +62,7 @@ namespace PARR.DAL
|
||||
services.AddTransient<IAgentHistoryService, AgentHistoryService>();
|
||||
services.AddTransient<IOrderService, OrderService>();
|
||||
services.AddTransient<IOrderStatusService, OrderStatusService>();
|
||||
services.AddTransient<IUserService, UserService>();
|
||||
|
||||
|
||||
// TransformServices
|
||||
|
||||
@@ -40,6 +40,11 @@ namespace PARR.DAL.Services.Implementations
|
||||
.FirstOrDefaultAsync(h => h.IP == IP);
|
||||
}
|
||||
|
||||
public async Task<Host?> GetByIpAsync(string ip)
|
||||
{
|
||||
return await EntitySet.FirstOrDefaultAsync(t => t.IP == ip);
|
||||
}
|
||||
|
||||
//public async Task<Host?> GetHostByRegionalEKAsync(string RegionalEK)И
|
||||
//{
|
||||
// try
|
||||
|
||||
30
PARR.DAL/Services/Implementations/UserService.cs
Normal file
30
PARR.DAL/Services/Implementations/UserService.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using PARR.DAL.Context;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.Services.Abstracts;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
|
||||
namespace PARR.DAL.Services.Implementations
|
||||
{
|
||||
internal class UserService : BaseService<User>, IUserService
|
||||
{
|
||||
private readonly DataContext dataContext;
|
||||
|
||||
public UserService(DataContext dataContext, ILogger<UserService> logger) : base(logger)
|
||||
{
|
||||
this.dataContext = dataContext;
|
||||
}
|
||||
|
||||
protected override DbSet<User> EntitySet => dataContext.Users;
|
||||
|
||||
protected override DataContext EntitiContext => dataContext;
|
||||
|
||||
public async Task<User?> GetByIpWithRolesAsync(string ipAddress)
|
||||
{
|
||||
return await EntitySet
|
||||
.Include(t => t.Roles).ThenInclude(t => t.Role)
|
||||
.FirstOrDefaultAsync(t => t.Ip == ipAddress);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,10 @@ namespace PARR.DAL.Services.Interfaces
|
||||
{
|
||||
public interface IHostService : IBaseService<Host>
|
||||
{
|
||||
Task<Host?> GetHostWithAppsAsync(string IP);
|
||||
Task<Host?> GetHostWithAppsAsync(string ip);
|
||||
|
||||
Task<Host?> GetByIpAsync(string ip);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
10
PARR.DAL/Services/Interfaces/IUserService.cs
Normal file
10
PARR.DAL/Services/Interfaces/IUserService.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.Services.Interfaces.Base;
|
||||
|
||||
namespace PARR.DAL.Services.Interfaces
|
||||
{
|
||||
public interface IUserService: IBaseService<User>
|
||||
{
|
||||
Task<User?> GetByIpWithRolesAsync(string ipAddress);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user