Remove user-rescoping from PermissionBackend
We previously had the option to rescope a permission backend to a user
when being already scoped to a change, ref or project. This was in place
for performance reasons. A recent experiment showed that this is not
needed.
Removing rescoping leads to a cleaner interface definition.
Change-Id: I3fd524d26a72f4af020c0bdef5122ee5ef7f1af8
diff --git a/java/com/google/gerrit/server/permissions/ChangeControl.java b/java/com/google/gerrit/server/permissions/ChangeControl.java
index 4aaf61d..b922147 100644
--- a/java/com/google/gerrit/server/permissions/ChangeControl.java
+++ b/java/com/google/gerrit/server/permissions/ChangeControl.java
@@ -261,16 +261,6 @@
}
@Override
- public ForChange user(CurrentUser user) {
- return forUser(user).asForChange(cd, db);
- }
-
- @Override
- public ForChange absentUser(Account.Id id) {
- return user(identifiedUserFactory.create(id));
- }
-
- @Override
public String resourcePath() {
if (resourcePath == null) {
resourcePath =
diff --git a/java/com/google/gerrit/server/permissions/FailedPermissionBackend.java b/java/com/google/gerrit/server/permissions/FailedPermissionBackend.java
index 6c6f136..bd7c549 100644
--- a/java/com/google/gerrit/server/permissions/FailedPermissionBackend.java
+++ b/java/com/google/gerrit/server/permissions/FailedPermissionBackend.java
@@ -16,10 +16,8 @@
import com.google.gerrit.extensions.api.access.GlobalOrPluginPermission;
import com.google.gerrit.extensions.conditions.BooleanCondition;
-import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb;
-import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.notedb.ChangeNotes;
import com.google.gerrit.server.permissions.PermissionBackend.ForChange;
import com.google.gerrit.server.permissions.PermissionBackend.ForProject;
@@ -122,16 +120,6 @@
}
@Override
- public ForProject user(CurrentUser user) {
- return this;
- }
-
- @Override
- public ForProject absentUser(Account.Id id) {
- return this;
- }
-
- @Override
public String resourcePath() {
throw new UnsupportedOperationException(
"FailedPermissionBackend is not scoped to a resource");
@@ -181,16 +169,6 @@
}
@Override
- public ForRef user(CurrentUser user) {
- return this;
- }
-
- @Override
- public ForRef absentUser(Account.Id id) {
- return this;
- }
-
- @Override
public String resourcePath() {
throw new UnsupportedOperationException(
"FailedPermissionBackend is not scoped to a resource");
@@ -244,16 +222,6 @@
}
@Override
- public ForChange user(CurrentUser user) {
- return this;
- }
-
- @Override
- public ForChange absentUser(Account.Id id) {
- return this;
- }
-
- @Override
public String resourcePath() {
throw new UnsupportedOperationException(
"FailedPermissionBackend is not scoped to a resource");
diff --git a/java/com/google/gerrit/server/permissions/PermissionBackend.java b/java/com/google/gerrit/server/permissions/PermissionBackend.java
index 0690d6c..4719aa9 100644
--- a/java/com/google/gerrit/server/permissions/PermissionBackend.java
+++ b/java/com/google/gerrit/server/permissions/PermissionBackend.java
@@ -294,12 +294,6 @@
/** Returns the fully qualified resource path that this instance is scoped to. */
public abstract String resourcePath();
- /** Returns a new instance rescoped to same project, but different {@code user}. */
- public abstract ForProject user(CurrentUser user);
-
- /** @see PermissionBackend#absentUser(Account.Id) */
- public abstract ForProject absentUser(Account.Id id);
-
/** Returns an instance scoped for {@code ref} in this project. */
public abstract ForRef ref(String ref);
@@ -400,12 +394,6 @@
/** Returns a fully qualified resource path that this instance is scoped to. */
public abstract String resourcePath();
- /** Returns a new instance rescoped to same reference, but different {@code user}. */
- public abstract ForRef user(CurrentUser user);
-
- /** @see PermissionBackend#absentUser(Account.Id) */
- public abstract ForRef absentUser(Account.Id id);
-
/** Returns an instance scoped to change. */
public abstract ForChange change(ChangeData cd);
@@ -456,12 +444,6 @@
/** Returns the fully qualified resource path that this instance is scoped to. */
public abstract String resourcePath();
- /** Returns a new instance rescoped to same change, but different {@code user}. */
- public abstract ForChange user(CurrentUser user);
-
- /** @see PermissionBackend#absentUser(Account.Id) */
- public abstract ForChange absentUser(Account.Id id);
-
/** Verify scoped user can {@code perm}, throwing if denied. */
public abstract void check(ChangePermissionOrLabel perm)
throws AuthException, PermissionBackendException;
diff --git a/java/com/google/gerrit/server/permissions/ProjectControl.java b/java/com/google/gerrit/server/permissions/ProjectControl.java
index ed12a2b..67662c7 100644
--- a/java/com/google/gerrit/server/permissions/ProjectControl.java
+++ b/java/com/google/gerrit/server/permissions/ProjectControl.java
@@ -21,7 +21,6 @@
import com.google.gerrit.common.data.PermissionRule;
import com.google.gerrit.extensions.conditions.BooleanCondition;
import com.google.gerrit.extensions.restapi.AuthException;
-import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.AccountGroup;
import com.google.gerrit.reviewdb.client.Branch;
import com.google.gerrit.reviewdb.client.Change;
@@ -324,16 +323,6 @@
private String resourcePath;
@Override
- public ForProject user(CurrentUser user) {
- return forUser(user).asForProject().database(db);
- }
-
- @Override
- public ForProject absentUser(Account.Id id) {
- return user(identifiedUserFactory.create(id));
- }
-
- @Override
public String resourcePath() {
if (resourcePath == null) {
resourcePath = "/projects/" + getProjectState().getName();
diff --git a/java/com/google/gerrit/server/permissions/RefControl.java b/java/com/google/gerrit/server/permissions/RefControl.java
index 012d68a..3bd2817 100644
--- a/java/com/google/gerrit/server/permissions/RefControl.java
+++ b/java/com/google/gerrit/server/permissions/RefControl.java
@@ -22,7 +22,6 @@
import com.google.gerrit.common.data.PermissionRule.Action;
import com.google.gerrit.extensions.conditions.BooleanCondition;
import com.google.gerrit.extensions.restapi.AuthException;
-import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.client.RefNames;
@@ -409,16 +408,6 @@
private String resourcePath;
@Override
- public ForRef user(CurrentUser user) {
- return forUser(user).asForRef().database(db);
- }
-
- @Override
- public ForRef absentUser(Account.Id id) {
- return user(identifiedUserFactory.create(id));
- }
-
- @Override
public String resourcePath() {
if (resourcePath == null) {
resourcePath =
diff --git a/javatests/com/google/gerrit/server/extensions/webui/UiActionsTest.java b/javatests/com/google/gerrit/server/extensions/webui/UiActionsTest.java
index f63b181..08d7082 100644
--- a/javatests/com/google/gerrit/server/extensions/webui/UiActionsTest.java
+++ b/javatests/com/google/gerrit/server/extensions/webui/UiActionsTest.java
@@ -49,16 +49,6 @@
}
@Override
- public ForProject user(CurrentUser user) {
- throw new UnsupportedOperationException("not implemented");
- }
-
- @Override
- public ForProject absentUser(Account.Id id) {
- throw new UnsupportedOperationException("not implemented");
- }
-
- @Override
public ForRef ref(String ref) {
throw new UnsupportedOperationException("not implemented");
}