Fix plugin manager behavior
1 parent 87e301d commit a92aae954435f57922ac4309047233f79ee99904
@Naoki Takezoe Naoki Takezoe authored on 9 Jul 2018
Showing 1 changed file
View
15
src/main/scala/gitbucket/core/controller/SystemSettingsController.scala
.map { meta =>
(meta, meta.versions.reverse.find { version =>
val semver = Semver.valueOf(version.version)
gitbucketVersion == version.gitbucketVersion && !enabledPlugins.exists { plugin =>
plugin.pluginId == meta.id && Semver.valueOf(plugin.pluginVersion).greaterThanOrEqualTo(semver)
plugin.pluginId == meta.id &&
(Semver.valueOf(plugin.pluginVersion).greaterThan(semver) ||
(plugin.pluginVersion == version.version && plugin.gitbucketVersion == gitbucketVersion))
}
})
}
.collect {
post("/admin/plugins/:pluginId/:version/_install")(adminOnly {
if (context.settings.pluginNetworkInstall) {
val pluginId = params("pluginId")
val version = params("version")
val gitbucketVersion = GitBucketCoreModule.getVersions.asScala.last.getVersion
 
PluginRepository
.getPlugins()
.collect { case meta if meta.id == pluginId => (meta, meta.versions.find(_.version == version)) }
.collectFirst {
case meta if meta.id == pluginId =>
(meta, meta.versions.find(x => x.gitbucketVersion == gitbucketVersion && x.version == version))
}
.foreach {
case (meta, version) =>
version.foreach { version =>
PluginRegistry.install(