public SecureQuerySession(IQuerySession querySession, ISecurityQueryProvider securityQueryProvider, IMartenContext martenContext) { _querySession = querySession; _securityQueryProvider = securityQueryProvider; _martenContext = martenContext; }
public static IEnumerable <T> OnlyItemsTheUserCanSee <T>(this IEnumerable <T> results, ISecurityQueryProvider securityQueryProvider, IMartenContext context) { if (context.User?.Id != null) { var expression = securityQueryProvider.GetExpression <T>(context.User.Id); if (expression != null) { return(results.Where(expression.Compile())); } } return(results); }
public static ISecureQuerySession SecureQuerySession(this IDocumentStore store, SessionOptions options, ISecurityQueryProvider securityQueryProvider, IMartenContext martenContext) { return(new SecureQuerySession(store.QuerySession(options), securityQueryProvider, martenContext)); }
public static IQueryable <T> OnlyItemsTheUserCanSee <T>(this IQueryable <T> query, ISecurityQueryProvider securityQueryProvider, IMartenContext context) { if (context.User?.Id != null) { var expression = securityQueryProvider.GetExpression <T>(context.User.Id); if (expression != null) { return(query.Where(expression)); } } return(query); }
public static ISecureQuerySession SecureQuerySession(this IDocumentStore store, string tenantId, ISecurityQueryProvider securityQueryProvider, IMartenContext martenContext) { return(new SecureQuerySession(store.QuerySession(tenantId), securityQueryProvider, martenContext)); }