Upgrade to Gerrit v2.15.2
CapabilityControl is now AccountLimits on the latest stable-2.15.
It is not possibly anymore to keep support for legacy CapabilityControl
and thus compatibility with Gerrit <= 2.14 is now broken.
Change-Id: I3220658a1cd8cd40c6365d7af10e1bbf02724744
diff --git a/build.sbt b/build.sbt
index 62635ef..3cc7a6b 100644
--- a/build.sbt
+++ b/build.sbt
@@ -6,7 +6,7 @@
scalaVersion := "2.11.8"
-val gerritVersion = "2.15.1"
+val gerritVersion = "2.15.2"
val scalatraV = "2.4.+"
diff --git a/src/main/scala/com/googlesource/gerrit/plugins/support/GerritFacade.scala b/src/main/scala/com/googlesource/gerrit/plugins/support/GerritFacade.scala
index 1bb9b0c..7f4a9f8 100644
--- a/src/main/scala/com/googlesource/gerrit/plugins/support/GerritFacade.scala
+++ b/src/main/scala/com/googlesource/gerrit/plugins/support/GerritFacade.scala
@@ -17,12 +17,11 @@
package com.googlesource.gerrit.plugins.support
import com.google.gerrit.extensions.restapi.TopLevelResource
-import com.google.gerrit.server.account.CapabilityControl
+import com.google.gerrit.server.account.AccountLimits
import com.google.gerrit.server.plugins.{ListPlugins, PluginsCollection}
import com.google.gson.JsonElement
import com.google.inject.{ImplementedBy, Inject}
import com.googlesource.gerrit.plugins.support.latest.LatestCapabilityControl
-import com.googlesource.gerrit.plugins.support.legacy.LegacyCapabilityControl
import scala.util.{Failure, Success, Try}
@@ -30,11 +29,10 @@
class PluginName(val value: String) extends AnyRef
- implicit class PimpedCapabilityControl(val cc: CapabilityControl) extends AnyVal {
+ implicit class PimpedCapabilityControl(val cc: AccountLimits) extends AnyVal {
def canDo(operation: String)(implicit pluginName: PluginName) =
LatestCapabilityControl(cc).canPerform(operation)
- .orElse(LegacyCapabilityControl(cc).canPerform(operation))
.get
}
}
diff --git a/src/main/scala/com/googlesource/gerrit/plugins/support/GerritSupportServlet.scala b/src/main/scala/com/googlesource/gerrit/plugins/support/GerritSupportServlet.scala
index 60bc037..e223db6 100644
--- a/src/main/scala/com/googlesource/gerrit/plugins/support/GerritSupportServlet.scala
+++ b/src/main/scala/com/googlesource/gerrit/plugins/support/GerritSupportServlet.scala
@@ -20,6 +20,7 @@
import com.google.gerrit.extensions.annotations.{PluginName => GerritPlugiName}
import com.google.gerrit.server.CurrentUser
+import com.google.gerrit.server.account.AccountLimits
import com.google.inject.{Inject, Provider, Singleton}
import com.googlesource.gerrit.plugins.support.GerritFacade._
import com.googlesource.gerrit.plugins.support.latest.CollectServerDataCapability._
@@ -36,6 +37,7 @@
bundleFactory: SupportBundleFile,
mimeDetector: ExtensionMimeDetector,
currentUserProvider: Provider[CurrentUser],
+ accountLimitsFactory: AccountLimits.Factory,
@GerritPlugiName gerritPluginName: String)
extends ScalatraServlet with Mimes {
val log = LoggerFactory.getLogger(classOf[GerritSupportServlet])
@@ -75,7 +77,7 @@
private def requireAdministrateServerPermissions(block: => ActionResult) = {
val currentUser = currentUserProvider.get
currentUser match {
- case user if user.isIdentifiedUser && user.getCapabilities.canDo(COLLECT_SERVER_DATA) => block
+ case user if user.isIdentifiedUser && accountLimitsFactory.create(user).canDo(COLLECT_SERVER_DATA) => block
case _ => Forbidden("NOT ALLOWED to collect server data")
}
}
diff --git a/src/main/scala/com/googlesource/gerrit/plugins/support/latest/LatestCapabilityControl.scala b/src/main/scala/com/googlesource/gerrit/plugins/support/latest/LatestCapabilityControl.scala
index b2430ca..71d20cd 100644
--- a/src/main/scala/com/googlesource/gerrit/plugins/support/latest/LatestCapabilityControl.scala
+++ b/src/main/scala/com/googlesource/gerrit/plugins/support/latest/LatestCapabilityControl.scala
@@ -16,13 +16,13 @@
package com.googlesource.gerrit.plugins.support.latest
-import com.google.gerrit.server.account.CapabilityControl
+import com.google.gerrit.server.account.AccountLimits
import com.googlesource.gerrit.plugins.support.GerritFacade.PluginName
import scala.util.Try
import com.googlesource.gerrit.plugins.support.TryAll
-class LatestCapabilityControl(val capabilityControl: CapabilityControl)(implicit pluginName: PluginName) {
+class LatestCapabilityControl(val capabilityControl: AccountLimits)(implicit pluginName: PluginName) {
import LatestCapabilityControl._
@@ -52,8 +52,8 @@
}.flatten
lazy val checkPermissionMethod = TryAll {
- GlobalOrPluginPermissionClass.map(classOf[CapabilityControl].getMethod("doCanForDefaultPermissionBackend", _))
+ GlobalOrPluginPermissionClass.map(classOf[AccountLimits].getMethod("doCanForDefaultPermissionBackend", _))
}.flatten
- def apply(cc: CapabilityControl)(implicit pluginName: PluginName) = new LatestCapabilityControl(cc)
+ def apply(cc: AccountLimits)(implicit pluginName: PluginName) = new LatestCapabilityControl(cc)
}
diff --git a/src/main/scala/com/googlesource/gerrit/plugins/support/legacy/LegacyCapabilityControl.scala b/src/main/scala/com/googlesource/gerrit/plugins/support/legacy/LegacyCapabilityControl.scala
deleted file mode 100644
index b00e988..0000000
--- a/src/main/scala/com/googlesource/gerrit/plugins/support/legacy/LegacyCapabilityControl.scala
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.googlesource.gerrit.plugins.support.legacy
-
-import com.google.gerrit.server.account.CapabilityControl
-import com.googlesource.gerrit.plugins.support.GerritFacade.PluginName
-import com.googlesource.gerrit.plugins.support.TryAll
-
-import scala.util.Try
-
-class LegacyCapabilityControl(val capabilityControl: CapabilityControl)(implicit pluginName: PluginName) {
-
- import LegacyCapabilityControl._
-
- def canPerform(operation: String): Try[Boolean] = TryAll {
- canPerformMethod.map(_.invoke(capabilityControl, s"${pluginName.value}-$operation").asInstanceOf[Boolean])
- }.flatten
-}
-
-object LegacyCapabilityControl {
- lazy val canPerformMethod = TryAll {
- classOf[CapabilityControl].getMethod("canPerform", classOf[String])
- }
-
- def apply(cc: CapabilityControl)(implicit pluginName: PluginName) = new LegacyCapabilityControl(cc)
-}