Convert project permission check to PermissionBackend Change-Id: Iccc2581e33f7556110f5c9bf58c30c4119f9a3b4
diff --git a/src/main/java/com/googlesource/gerrit/plugins/labelui/GetPreferences.java b/src/main/java/com/googlesource/gerrit/plugins/labelui/GetPreferences.java index b1fd600..e2a582a 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/labelui/GetPreferences.java +++ b/src/main/java/com/googlesource/gerrit/plugins/labelui/GetPreferences.java
@@ -23,6 +23,9 @@ import com.google.gerrit.server.account.VersionedAccountPreferences; import com.google.gerrit.server.config.AllUsersName; import com.google.gerrit.server.git.GitRepositoryManager; +import com.google.gerrit.server.permissions.GlobalPermission; +import com.google.gerrit.server.permissions.PermissionBackend; +import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; @@ -38,24 +41,26 @@ private final Provider<CurrentUser> self; private final AllUsersName allUsersName; private final GitRepositoryManager gitMgr; + private final PermissionBackend permissionBackend; @Inject public GetPreferences(@PluginName String pluginName, Provider<CurrentUser> self, AllUsersName allUsersName, - GitRepositoryManager gitMgr) { + GitRepositoryManager gitMgr, + PermissionBackend permissionBackend) { this.pluginName = pluginName; this.self = self; this.allUsersName = allUsersName; this.gitMgr = gitMgr; + this.permissionBackend = permissionBackend; } @Override public PreferencesInfo apply(AccountResource rsrc) throws AuthException, - ResourceNotFoundException, IOException, ConfigInvalidException { - if (self.get() != rsrc.getUser() - && !self.get().getCapabilities().canModifyAccount()) { - throw new AuthException("not allowed to get preferences"); + ResourceNotFoundException, IOException, ConfigInvalidException, PermissionBackendException { + if (self.get() != rsrc.getUser()) { + permissionBackend.user(self).check(GlobalPermission.MODIFY_ACCOUNT); } try (Repository git = gitMgr.openRepository(allUsersName)) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/labelui/SetPreferences.java b/src/main/java/com/googlesource/gerrit/plugins/labelui/SetPreferences.java index 3cbc264..ca53199 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/labelui/SetPreferences.java +++ b/src/main/java/com/googlesource/gerrit/plugins/labelui/SetPreferences.java
@@ -22,6 +22,9 @@ import com.google.gerrit.server.account.VersionedAccountPreferences; import com.google.gerrit.server.config.AllUsersName; import com.google.gerrit.server.git.MetaDataUpdate; +import com.google.gerrit.server.permissions.GlobalPermission; +import com.google.gerrit.server.permissions.PermissionBackend; +import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.inject.Inject; import com.google.inject.Provider; @@ -42,25 +45,27 @@ private final Provider<CurrentUser> self; private final AllUsersName allUsersName; private final Provider<MetaDataUpdate.User> metaDataUpdateFactory; + private final PermissionBackend permissionBackend; @Inject public SetPreferences(@PluginName String pluginName, Provider<CurrentUser> self, AllUsersName allUsersName, - Provider<MetaDataUpdate.User> metaDataUpdateFactory) { + Provider<MetaDataUpdate.User> metaDataUpdateFactory, + PermissionBackend permissionBackend) { this.pluginName = pluginName; this.self = self; this.allUsersName = allUsersName; this.metaDataUpdateFactory = metaDataUpdateFactory; + this.permissionBackend = permissionBackend; } @Override public GetPreferences.PreferencesInfo apply(AccountResource rsrc, Input input) throws AuthException, RepositoryNotFoundException, IOException, - ConfigInvalidException { - if (self.get() != rsrc.getUser() - && !self.get().getCapabilities().canModifyAccount()) { - throw new AuthException("not allowed to set preferences"); + ConfigInvalidException, PermissionBackendException { + if (self.get() != rsrc.getUser()) { + permissionBackend.user(self).check(GlobalPermission.MODIFY_ACCOUNT); } if (input == null) {