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.PatchSet;
import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb; 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.AccountCache;
import com.google.gerrit.server.account.AccountState; import com.google.gerrit.server.account.AccountState;
import com.google.gerrit.server.config.AnonymousCowardName; import com.google.gerrit.server.config.AnonymousCowardName;
@@ -101,9 +101,9 @@ public class ChangeHookRunner implements ChangeHooks, LifecycleListener {
private static class ChangeListenerHolder { private static class ChangeListenerHolder {
final ChangeListener listener; final ChangeListener listener;
final IdentifiedUser user; final CurrentUser user;
ChangeListenerHolder(ChangeListener l, IdentifiedUser u) { ChangeListenerHolder(ChangeListener l, CurrentUser u) {
listener = l; listener = l;
user = u; user = u;
} }
@@ -277,7 +277,7 @@ public class ChangeHookRunner implements ChangeHooks, LifecycleListener {
} }
@Override @Override
public void addChangeListener(ChangeListener listener, IdentifiedUser user) { public void addChangeListener(ChangeListener listener, CurrentUser user) {
listeners.put(listener, new ChangeListenerHolder(listener, user)); listeners.put(listener, new ChangeListenerHolder(listener, user));
} }
@@ -720,7 +720,7 @@ public class ChangeHookRunner implements ChangeHooks, LifecycleListener {
fireEventForUnrestrictedListeners( event ); 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()); final ProjectState pe = projectCache.get(change.getProject());
if (pe == null) { if (pe == null) {
return false; return false;
@@ -729,7 +729,7 @@ public class ChangeHookRunner implements ChangeHooks, LifecycleListener {
return pc.controlFor(change).isVisible(db); 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()); final ProjectState pe = projectCache.get(branchName.getParentKey());
if (pe == null) { if (pe == null) {
return false; 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.PatchSet;
import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb; 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.gerrit.server.events.ChangeEvent;
import com.google.gwtorm.server.OrmException; import com.google.gwtorm.server.OrmException;
@@ -34,7 +34,7 @@ import java.util.Set;
/** Invokes hooks on server actions. */ /** Invokes hooks on server actions. */
public interface ChangeHooks { public interface ChangeHooks {
public void addChangeListener(ChangeListener listener, IdentifiedUser user); public void addChangeListener(ChangeListener listener, CurrentUser user);
public void removeChangeListener(ChangeListener listener); 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.PatchSet;
import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb; 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.gerrit.server.events.ChangeEvent;
import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.ObjectId;
@@ -34,7 +34,7 @@ import java.util.Set;
/** Does not invoke hooks. */ /** Does not invoke hooks. */
public final class DisabledChangeHooks implements ChangeHooks { public final class DisabledChangeHooks implements ChangeHooks {
@Override @Override
public void addChangeListener(ChangeListener listener, IdentifiedUser user) { public void addChangeListener(ChangeListener listener, CurrentUser user) {
} }
@Override @Override