39 lines
1.5 KiB
C#
39 lines
1.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using NHibernate.Linq;
|
|
using Taloyhtio.GeneralSSO.Server.CodeFiles.Entities;
|
|
using Taloyhtio.GeneralSSO.Server.CodeFiles.Infrastructure.DataAccess;
|
|
|
|
namespace Taloyhtio.GeneralSSO.Server.CodeFiles.Repositories.Impl
|
|
{
|
|
public class ClientAuthorizationRepository : AtomicRepositoryBase<ClientAuthorization, int>, IClientAuthorizationRepository
|
|
{
|
|
public ClientAuthorizationRepository(ISessionSource sessionSource)
|
|
: base(sessionSource)
|
|
{
|
|
}
|
|
|
|
public IEnumerable<ClientAuthorization> GetNotExpiredBy(string clientIdentifier, string userId, DateTime issuedUtc)
|
|
{
|
|
var session = this.GetSession();
|
|
return session.Linq<ClientAuthorization>().Where(
|
|
c =>
|
|
c.Client.ClientIdentifier == clientIdentifier &&
|
|
c.CreatedOn <= issuedUtc &&
|
|
(c.ExpirationDate == null || c.ExpirationDate >= DateTime.UtcNow) &&
|
|
c.UserId == userId);
|
|
}
|
|
|
|
public IEnumerable<ClientAuthorization> GetNotExpiredBy(string clientIdentifier, string userId, string scope)
|
|
{
|
|
var session = this.GetSession();
|
|
return session.Linq<ClientAuthorization>().Where(
|
|
c =>
|
|
c.Client.ClientIdentifier == clientIdentifier &&
|
|
c.Scope == scope &&
|
|
(c.ExpirationDate == null || c.ExpirationDate >= DateTime.UtcNow) &&
|
|
c.UserId == userId);
|
|
}
|
|
}
|
|
} |