Convert project permission check to PermissionBackend
Change-Id: I8a83ce5e91924aa7844a69990c92b4e4657f42ef
diff --git a/src/main/java/com/googlesource/gerrit/plugins/emoticons/GetPreference.java b/src/main/java/com/googlesource/gerrit/plugins/emoticons/GetPreference.java
index 2e26bfe..82d6c1b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/emoticons/GetPreference.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/emoticons/GetPreference.java
@@ -14,12 +14,16 @@
package com.googlesource.gerrit.plugins.emoticons;
+import static com.google.gerrit.server.permissions.GlobalPermission.ADMINISTRATE_SERVER;
+
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.restapi.AuthException;
import com.google.gerrit.extensions.restapi.RestReadView;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.account.AccountResource;
import com.google.gerrit.server.config.ConfigResource;
+import com.google.gerrit.server.permissions.PermissionBackend;
+import com.google.gerrit.server.permissions.PermissionBackendException;
import com.google.gerrit.server.project.ProjectCache;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -36,23 +40,25 @@
private final ProjectCache projectCache;
private final String pluginName;
private final Provider<GetConfig> getConfig;
+ private final PermissionBackend permissionBackend;
@Inject
GetPreference(Provider<IdentifiedUser> self,
ProjectCache projectCache,
@PluginName String pluginName,
- Provider<GetConfig> getConfig) {
+ Provider<GetConfig> getConfig,
+ PermissionBackend permissionBackend) {
this.self = self;
this.projectCache = projectCache;
this.pluginName = pluginName;
this.getConfig = getConfig;
+ this.permissionBackend = permissionBackend;
}
@Override
- public ConfigInfo apply(AccountResource rsrc) throws AuthException {
- if (self.get() != rsrc.getUser()
- && !self.get().getCapabilities().canAdministrateServer()) {
- throw new AuthException("not allowed to get preference");
+ public ConfigInfo apply(AccountResource rsrc) throws AuthException, PermissionBackendException {
+ if (self.get() != rsrc.getUser()) {
+ permissionBackend.user(self).check(ADMINISTRATE_SERVER);
}
ConfigInfo globalCfg = getConfig.get().apply(new ConfigResource());
diff --git a/src/main/java/com/googlesource/gerrit/plugins/emoticons/PutPreference.java b/src/main/java/com/googlesource/gerrit/plugins/emoticons/PutPreference.java
index 0b1ecfa..e78e85a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/emoticons/PutPreference.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/emoticons/PutPreference.java
@@ -28,6 +28,7 @@
import com.google.gerrit.server.git.MetaDataUpdate;
import com.google.gerrit.server.git.ProjectLevelConfig;
import com.google.gerrit.server.permissions.PermissionBackend;
+import com.google.gerrit.server.permissions.PermissionBackendException;
import com.google.gerrit.server.project.ProjectCache;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -62,7 +63,7 @@
@Override
public Response<String> apply(AccountResource rsrc, Input input)
throws AuthException, RepositoryNotFoundException, IOException,
- UnprocessableEntityException {
+ UnprocessableEntityException, PermissionBackendException {
if (self.get() != rsrc.getUser()) {
permissionBackend.user(self).check(ADMINISTRATE_SERVER);
}