mirror of https://github.com/abpframework/abp
parent
8448b81df2
commit
e56d49ed37
@ -0,0 +1,10 @@
|
||||
namespace Volo.Abp.Identity;
|
||||
|
||||
public class IdentitySessionConsts
|
||||
{
|
||||
public static int MaxDeviceLength { get; set; } = 128;
|
||||
|
||||
public static int MaxClientIdLength { get; set; } = 64;
|
||||
|
||||
public static int MaxIpAddressesLength { get; set; } = 256;
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
using System;
|
||||
using Volo.Abp.Domain.Repositories;
|
||||
|
||||
namespace Volo.Abp.Identity;
|
||||
|
||||
public interface IIdentitySessionRepository : IBasicRepository<IdentitySession, Guid>
|
||||
{
|
||||
|
||||
}
|
||||
@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Volo.Abp.Domain.Entities;
|
||||
|
||||
namespace Volo.Abp.Identity;
|
||||
|
||||
public class IdentitySession : BasicAggregateRoot<Guid>
|
||||
{
|
||||
/// <summary>
|
||||
/// Web, CLI, STUDIO, ...
|
||||
/// </summary>
|
||||
public virtual string Device { get; protected set; }
|
||||
|
||||
public virtual Guid? TenantId { get; protected set; }
|
||||
|
||||
public virtual Guid UserId { get; protected set; }
|
||||
|
||||
public virtual string ClientId { get; set; }
|
||||
|
||||
public virtual string IpAddresses { get; protected set; }
|
||||
|
||||
public virtual DateTime SignedIn { get; protected set; }
|
||||
|
||||
public virtual DateTime? LastAccessed { get; protected set; }
|
||||
|
||||
protected IdentitySession()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public IdentitySession(
|
||||
Guid id,
|
||||
string device,
|
||||
Guid userId,
|
||||
Guid? tenantId,
|
||||
string clientId,
|
||||
string ipAddresses,
|
||||
DateTime signedIn,
|
||||
DateTime? lastAccessed)
|
||||
{
|
||||
Id = id;
|
||||
Device = device;
|
||||
UserId = userId;
|
||||
TenantId = tenantId;
|
||||
ClientId = clientId;
|
||||
IpAddresses = ipAddresses;
|
||||
SignedIn = signedIn;
|
||||
LastAccessed = lastAccessed;
|
||||
}
|
||||
|
||||
public void SetSignedInTime(DateTime signedIn)
|
||||
{
|
||||
SignedIn = signedIn;
|
||||
}
|
||||
|
||||
public void UpdateLastAccessedTime(DateTime? lastAccessed)
|
||||
{
|
||||
LastAccessed = lastAccessed;
|
||||
}
|
||||
|
||||
public void SetIpAddresses(IEnumerable<string> ipAddresses)
|
||||
{
|
||||
IpAddresses = JoinAsString(ipAddresses);
|
||||
}
|
||||
|
||||
public IEnumerable<string> GetIpAddresses()
|
||||
{
|
||||
return GetArrayFromString(IpAddresses);
|
||||
}
|
||||
|
||||
private static string JoinAsString(IEnumerable<string> list)
|
||||
{
|
||||
var serialized = string.Join(",", list);
|
||||
return serialized.IsNullOrWhiteSpace() ? null : serialized;
|
||||
}
|
||||
|
||||
private string[] GetArrayFromString(string str)
|
||||
{
|
||||
return str?.Split(",", StringSplitOptions.RemoveEmptyEntries) ?? Array.Empty<string>();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
|
||||
using Volo.Abp.EntityFrameworkCore;
|
||||
|
||||
namespace Volo.Abp.Identity.EntityFrameworkCore;
|
||||
|
||||
public class EfCoreIdentitySessionRepository : EfCoreRepository<IIdentityDbContext, IdentitySession, Guid>, IIdentitySessionRepository
|
||||
{
|
||||
public EfCoreIdentitySessionRepository(IDbContextProvider<IIdentityDbContext> dbContextProvider)
|
||||
: base(dbContextProvider)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using Volo.Abp.Domain.Repositories.MongoDB;
|
||||
using Volo.Abp.MongoDB;
|
||||
|
||||
namespace Volo.Abp.Identity.MongoDB;
|
||||
|
||||
public class MongoIdentitySessionRepository : MongoDbRepository<IAbpIdentityMongoDbContext, IdentitySession, Guid>, IIdentitySessionRepository
|
||||
{
|
||||
public MongoIdentitySessionRepository(IMongoDbContextProvider<IAbpIdentityMongoDbContext> dbContextProvider)
|
||||
: base(dbContextProvider)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue