Merge branch 'stable-2.14' into stable-2.15
* stable-2.14:
Make transitive starlark loads explicit
Change-Id: Icbe689005d5e1d9ccf576236f2349556be4a7d4f
diff --git a/WORKSPACE b/WORKSPACE
index d7df6b6..ca671f9 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -3,7 +3,7 @@
load("//:bazlets.bzl", "load_bazlets")
load_bazlets(
- commit = "62c3c8e0b4b767d1f3b78998ad1aba42a44a9661",
+ commit = "70d6ae0cee03c456fa4b32c807f3d13c032ef498",
#local_path = "/home/<user>/projects/bazlets",
)
diff --git a/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/PermissionsImpl.java b/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/PermissionsImpl.java
index b07f540..7f99366 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/PermissionsImpl.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/PermissionsImpl.java
@@ -16,9 +16,11 @@
import static com.google.gerrit.reviewdb.client.RefNames.REFS_CONFIG;
+import com.google.gerrit.reviewdb.client.Branch;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.server.CurrentUser;
-import com.google.gerrit.server.project.ProjectCache;
+import com.google.gerrit.server.permissions.PermissionBackend;
+import com.google.gerrit.server.permissions.RefPermission;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
@@ -26,30 +28,29 @@
@Singleton
public class PermissionsImpl implements Permissions {
- private final ProjectCache projectCache;
+ private final PermissionBackend permissionBackend;
private final Provider<CurrentUser> currentUser;
@Inject
- PermissionsImpl(ProjectCache projectCache, Provider<CurrentUser> currentUser) {
- this.projectCache = projectCache;
+ PermissionsImpl(PermissionBackend permissionBackend, Provider<CurrentUser> currentUser) {
+ this.permissionBackend = permissionBackend;
this.currentUser = currentUser;
}
@Override
public boolean canRead(Project.NameKey project) {
- return projectCache
- .get(project)
- .controlFor(currentUser.get())
- .controlForRef(REFS_CONFIG)
- .isVisible();
+ return can(project, RefPermission.READ);
}
@Override
public boolean canUpdate(Project.NameKey project) {
- return projectCache
- .get(project)
- .controlFor(currentUser.get())
- .controlForRef(REFS_CONFIG)
- .canUpdate();
+ return can(project, RefPermission.UPDATE);
+ }
+
+ private boolean can(Project.NameKey project, RefPermission permission) {
+ return permissionBackend
+ .user(currentUser.get())
+ .ref(new Branch.NameKey(project, REFS_CONFIG))
+ .testOrFalse(permission);
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/RemotesCollection.java b/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/RemotesCollection.java
index ef96108..4f1508c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/RemotesCollection.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/RemotesCollection.java
@@ -82,7 +82,6 @@
}
@Override
- @SuppressWarnings("unchecked")
public UpsertRemote.Inserter create(ProjectWebhooksResource parent, IdString id) {
return inserterFactory.create(id.get());
}