You could potentially use a custom AutoQuery base class for this to append the custom filter to each query, e.g:
public abstract class MyAutoQueryServiceBase : AutoQueryServiceBase
{
public override object Exec<From>(IQuery<From> dto)
{
var q = AutoQuery.CreateQuery(dto, Request);
var session = base.SessionAs<CustomUserSession>();
q.And("CustomerId = {0}", session.CustomerId);
return AutoQuery.Execute(dto, q);
}
public override object Exec<From, Into>(IQuery<From, Into> dto)
{
var q = AutoQuery.CreateQuery(dto, Request);
var session = base.SessionAs<CustomUserSession>();
q.And("CustomerId = {0}", session.CustomerId);
return AutoQuery.Execute(dto, q);
}
}
Then tell AutoQuery to use your base class instead, e.g:
Plugins.Add(new AutoQueryFeature {
AutoQueryServiceBaseType = typeof(MyAutoQueryServiceBase)
});