diff options
Diffstat (limited to 'java/com/google/gerrit/server/query/change/ChangeIsVisibleToPredicate.java')
-rw-r--r-- | java/com/google/gerrit/server/query/change/ChangeIsVisibleToPredicate.java | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/java/com/google/gerrit/server/query/change/ChangeIsVisibleToPredicate.java b/java/com/google/gerrit/server/query/change/ChangeIsVisibleToPredicate.java index 60587da27b..24042adbf1 100644 --- a/java/com/google/gerrit/server/query/change/ChangeIsVisibleToPredicate.java +++ b/java/com/google/gerrit/server/query/change/ChangeIsVisibleToPredicate.java @@ -41,9 +41,8 @@ public class ChangeIsVisibleToPredicate extends IsVisibleToPredicate<ChangeData> } protected final CurrentUser user; - protected final PermissionBackend permissionBackend; protected final ProjectCache projectCache; - private final Provider<AnonymousUser> anonymousUserProvider; + private final PermissionBackend.WithUser withUser; @Inject public ChangeIsVisibleToPredicate( @@ -53,9 +52,14 @@ public class ChangeIsVisibleToPredicate extends IsVisibleToPredicate<ChangeData> @Assisted CurrentUser user) { super(ChangeQueryBuilder.FIELD_VISIBLETO, IndexUtils.describe(user)); this.user = user; - this.permissionBackend = permissionBackend; this.projectCache = projectCache; - this.anonymousUserProvider = anonymousUserProvider; + withUser = + user.isIdentifiedUser() + ? permissionBackend.absentUser(user.getAccountId()) + : permissionBackend.user( + Optional.of(user) + .filter(u -> u instanceof GroupBackedUser || u instanceof InternalUser) + .orElseGet(anonymousUserProvider::get)); } @Override @@ -74,17 +78,10 @@ public class ChangeIsVisibleToPredicate extends IsVisibleToPredicate<ChangeData> return false; } if (!projectState.get().statePermitsRead()) { - logger.atFine().log("Filter out change %s of non-reabable project %s", cd, cd.project()); + logger.atFine().log("Filter out change %s of non-readable project %s", cd, cd.project()); return false; } - PermissionBackend.WithUser withUser = - user.isIdentifiedUser() - ? permissionBackend.absentUser(user.getAccountId()) - : permissionBackend.user( - Optional.of(user) - .filter(u -> u instanceof GroupBackedUser || u instanceof InternalUser) - .orElseGet(anonymousUserProvider::get)); try { if (!withUser.change(cd).test(ChangePermission.READ)) { logger.atFine().log("Filter out non-visisble change: %s", cd); |