ChangeQueryProcessor: Use ChangeIsVisibleToPredicate.Factory
Change-Id: I5bcca0d9b6fddcb710c2467bc857931e3a5cb69e
This commit is contained in:
committed by
David Pursehouse
parent
91c3b647c7
commit
d7e39650dd
@@ -74,6 +74,7 @@ import com.google.gerrit.server.project.ProjectCacheImpl;
|
|||||||
import com.google.gerrit.server.project.ProjectState;
|
import com.google.gerrit.server.project.ProjectState;
|
||||||
import com.google.gerrit.server.project.SubmitRuleEvaluator;
|
import com.google.gerrit.server.project.SubmitRuleEvaluator;
|
||||||
import com.google.gerrit.server.query.change.ChangeData;
|
import com.google.gerrit.server.query.change.ChangeData;
|
||||||
|
import com.google.gerrit.server.query.change.ChangeIsVisibleToPredicate;
|
||||||
import com.google.gerrit.server.restapi.group.GroupModule;
|
import com.google.gerrit.server.restapi.group.GroupModule;
|
||||||
import com.google.gerrit.server.rules.DefaultSubmitRule;
|
import com.google.gerrit.server.rules.DefaultSubmitRule;
|
||||||
import com.google.gerrit.server.rules.IgnoreSelfApprovalRule;
|
import com.google.gerrit.server.rules.IgnoreSelfApprovalRule;
|
||||||
@@ -164,6 +165,7 @@ public class BatchProgramModule extends FactoryModule {
|
|||||||
install(PureRevertCache.module());
|
install(PureRevertCache.module());
|
||||||
factory(CapabilityCollection.Factory.class);
|
factory(CapabilityCollection.Factory.class);
|
||||||
factory(ChangeData.AssistedFactory.class);
|
factory(ChangeData.AssistedFactory.class);
|
||||||
|
factory(ChangeIsVisibleToPredicate.Factory.class);
|
||||||
factory(ProjectState.Factory.class);
|
factory(ProjectState.Factory.class);
|
||||||
|
|
||||||
// Submit rules
|
// Submit rules
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ import com.google.gerrit.index.query.IndexPredicate;
|
|||||||
import com.google.gerrit.index.query.Predicate;
|
import com.google.gerrit.index.query.Predicate;
|
||||||
import com.google.gerrit.index.query.QueryProcessor;
|
import com.google.gerrit.index.query.QueryProcessor;
|
||||||
import com.google.gerrit.metrics.MetricMaker;
|
import com.google.gerrit.metrics.MetricMaker;
|
||||||
import com.google.gerrit.server.AnonymousUser;
|
|
||||||
import com.google.gerrit.server.CurrentUser;
|
import com.google.gerrit.server.CurrentUser;
|
||||||
import com.google.gerrit.server.DynamicOptions;
|
import com.google.gerrit.server.DynamicOptions;
|
||||||
import com.google.gerrit.server.DynamicOptions.DynamicBean;
|
import com.google.gerrit.server.DynamicOptions.DynamicBean;
|
||||||
@@ -40,9 +39,6 @@ import com.google.gerrit.server.index.change.ChangeIndexCollection;
|
|||||||
import com.google.gerrit.server.index.change.ChangeIndexRewriter;
|
import com.google.gerrit.server.index.change.ChangeIndexRewriter;
|
||||||
import com.google.gerrit.server.index.change.ChangeSchemaDefinitions;
|
import com.google.gerrit.server.index.change.ChangeSchemaDefinitions;
|
||||||
import com.google.gerrit.server.index.change.IndexedChangeQuery;
|
import com.google.gerrit.server.index.change.IndexedChangeQuery;
|
||||||
import com.google.gerrit.server.notedb.ChangeNotes;
|
|
||||||
import com.google.gerrit.server.permissions.PermissionBackend;
|
|
||||||
import com.google.gerrit.server.project.ProjectCache;
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.Provider;
|
import com.google.inject.Provider;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -58,11 +54,8 @@ import java.util.Set;
|
|||||||
public class ChangeQueryProcessor extends QueryProcessor<ChangeData>
|
public class ChangeQueryProcessor extends QueryProcessor<ChangeData>
|
||||||
implements DynamicOptions.BeanReceiver, DynamicOptions.BeanProvider {
|
implements DynamicOptions.BeanReceiver, DynamicOptions.BeanProvider {
|
||||||
private final Provider<CurrentUser> userProvider;
|
private final Provider<CurrentUser> userProvider;
|
||||||
private final ChangeNotes.Factory notesFactory;
|
|
||||||
private final ImmutableListMultimap<String, ChangeAttributeFactory> attributeFactoriesByPlugin;
|
private final ImmutableListMultimap<String, ChangeAttributeFactory> attributeFactoriesByPlugin;
|
||||||
private final PermissionBackend permissionBackend;
|
private final ChangeIsVisibleToPredicate.Factory changeIsVisibleToPredicateFactory;
|
||||||
private final ProjectCache projectCache;
|
|
||||||
private final Provider<AnonymousUser> anonymousUserProvider;
|
|
||||||
private final Map<String, DynamicBean> dynamicBeans = new HashMap<>();
|
private final Map<String, DynamicBean> dynamicBeans = new HashMap<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
@@ -80,11 +73,8 @@ public class ChangeQueryProcessor extends QueryProcessor<ChangeData>
|
|||||||
IndexConfig indexConfig,
|
IndexConfig indexConfig,
|
||||||
ChangeIndexCollection indexes,
|
ChangeIndexCollection indexes,
|
||||||
ChangeIndexRewriter rewriter,
|
ChangeIndexRewriter rewriter,
|
||||||
ChangeNotes.Factory notesFactory,
|
|
||||||
DynamicSet<ChangeAttributeFactory> attributeFactories,
|
DynamicSet<ChangeAttributeFactory> attributeFactories,
|
||||||
PermissionBackend permissionBackend,
|
ChangeIsVisibleToPredicate.Factory changeIsVisibleToPredicateFactory) {
|
||||||
ProjectCache projectCache,
|
|
||||||
Provider<AnonymousUser> anonymousUserProvider) {
|
|
||||||
super(
|
super(
|
||||||
metricMaker,
|
metricMaker,
|
||||||
ChangeSchemaDefinitions.INSTANCE,
|
ChangeSchemaDefinitions.INSTANCE,
|
||||||
@@ -94,10 +84,7 @@ public class ChangeQueryProcessor extends QueryProcessor<ChangeData>
|
|||||||
FIELD_LIMIT,
|
FIELD_LIMIT,
|
||||||
() -> limitsFactory.create(userProvider.get()).getQueryLimit());
|
() -> limitsFactory.create(userProvider.get()).getQueryLimit());
|
||||||
this.userProvider = userProvider;
|
this.userProvider = userProvider;
|
||||||
this.notesFactory = notesFactory;
|
this.changeIsVisibleToPredicateFactory = changeIsVisibleToPredicateFactory;
|
||||||
this.permissionBackend = permissionBackend;
|
|
||||||
this.projectCache = projectCache;
|
|
||||||
this.anonymousUserProvider = anonymousUserProvider;
|
|
||||||
|
|
||||||
ImmutableListMultimap.Builder<String, ChangeAttributeFactory> factoriesBuilder =
|
ImmutableListMultimap.Builder<String, ChangeAttributeFactory> factoriesBuilder =
|
||||||
ImmutableListMultimap.builder();
|
ImmutableListMultimap.builder();
|
||||||
@@ -144,14 +131,7 @@ public class ChangeQueryProcessor extends QueryProcessor<ChangeData>
|
|||||||
@Override
|
@Override
|
||||||
protected Predicate<ChangeData> enforceVisibility(Predicate<ChangeData> pred) {
|
protected Predicate<ChangeData> enforceVisibility(Predicate<ChangeData> pred) {
|
||||||
return new AndChangeSource(
|
return new AndChangeSource(
|
||||||
pred,
|
pred, changeIsVisibleToPredicateFactory.forUser(userProvider.get()), start);
|
||||||
new ChangeIsVisibleToPredicate(
|
|
||||||
notesFactory,
|
|
||||||
permissionBackend,
|
|
||||||
projectCache,
|
|
||||||
anonymousUserProvider,
|
|
||||||
userProvider.get()),
|
|
||||||
start);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user