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
	
	 maliming
						maliming