ChangeHook now accepts CurrentUser for filtering

ChangeHook previously enforced Implementations to use
IdentifiedUser to filter out events. This made it hard
for plug-ins to create virtual users for filtering out
events based on group visibility.

Change-Id: Ibf48467410528e3715381e11cd88ad164cbd046a
This commit is contained in:
Gustaf Lundh
2014-11-19 16:08:38 +01:00
committed by David Pursehouse
parent ae36719784
commit a1f75d0f69
3 changed files with 10 additions and 10 deletions

View File

@@ -28,7 +28,7 @@ import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.account.AccountCache;
import com.google.gerrit.server.account.AccountState;
import com.google.gerrit.server.config.AnonymousCowardName;
@@ -101,9 +101,9 @@ public class ChangeHookRunner implements ChangeHooks, LifecycleListener {
private static class ChangeListenerHolder {
final ChangeListener listener;
final IdentifiedUser user;
final CurrentUser user;
ChangeListenerHolder(ChangeListener l, IdentifiedUser u) {
ChangeListenerHolder(ChangeListener l, CurrentUser u) {
listener = l;
user = u;
}
@@ -277,7 +277,7 @@ public class ChangeHookRunner implements ChangeHooks, LifecycleListener {
}
@Override
public void addChangeListener(ChangeListener listener, IdentifiedUser user) {
public void addChangeListener(ChangeListener listener, CurrentUser user) {
listeners.put(listener, new ChangeListenerHolder(listener, user));
}
@@ -720,7 +720,7 @@ public class ChangeHookRunner implements ChangeHooks, LifecycleListener {
fireEventForUnrestrictedListeners( event );
}
private boolean isVisibleTo(Change change, IdentifiedUser user, ReviewDb db) throws OrmException {
private boolean isVisibleTo(Change change, CurrentUser user, ReviewDb db) throws OrmException {
final ProjectState pe = projectCache.get(change.getProject());
if (pe == null) {
return false;
@@ -729,7 +729,7 @@ public class ChangeHookRunner implements ChangeHooks, LifecycleListener {
return pc.controlFor(change).isVisible(db);
}
private boolean isVisibleTo(Branch.NameKey branchName, IdentifiedUser user) {
private boolean isVisibleTo(Branch.NameKey branchName, CurrentUser user) {
final ProjectState pe = projectCache.get(branchName.getParentKey());
if (pe == null) {
return false;

View File

@@ -22,7 +22,7 @@ import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.events.ChangeEvent;
import com.google.gwtorm.server.OrmException;
@@ -34,7 +34,7 @@ import java.util.Set;
/** Invokes hooks on server actions. */
public interface ChangeHooks {
public void addChangeListener(ChangeListener listener, IdentifiedUser user);
public void addChangeListener(ChangeListener listener, CurrentUser user);
public void removeChangeListener(ChangeListener listener);

View File

@@ -22,7 +22,7 @@ import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.events.ChangeEvent;
import org.eclipse.jgit.lib.ObjectId;
@@ -34,7 +34,7 @@ import java.util.Set;
/** Does not invoke hooks. */
public final class DisabledChangeHooks implements ChangeHooks {
@Override
public void addChangeListener(ChangeListener listener, IdentifiedUser user) {
public void addChangeListener(ChangeListener listener, CurrentUser user) {
}
@Override