From 1da813c7b7b311598082aef32e9c8446be743076 Mon Sep 17 00:00:00 2001 From: KOUNOIKE Date: Sun, 7 Oct 2018 13:37:13 +0900 Subject: [PATCH] Move management of directories and calling hooks from Controller to Service --- .../RepositorySettingsController.scala | 44 ------------------- .../core/service/RepositoryService.scala | 28 +++++++++++- 2 files changed, 27 insertions(+), 45 deletions(-) diff --git a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala index 0807cd419..f479d070d 100644 --- a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala +++ b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala @@ -148,29 +148,6 @@ trait RepositorySettingsControllerBase extends ControllerBase { if (repository.name != form.repositoryName) { // Update database renameRepository(repository.owner, repository.name, repository.owner, form.repositoryName) - // Move git repository - defining(getRepositoryDir(repository.owner, repository.name)) { dir => - if (dir.isDirectory) { - FileUtils.moveDirectory(dir, getRepositoryDir(repository.owner, form.repositoryName)) - } - } - // Move wiki repository - defining(getWikiRepositoryDir(repository.owner, repository.name)) { dir => - if (dir.isDirectory) { - FileUtils.moveDirectory(dir, getWikiRepositoryDir(repository.owner, form.repositoryName)) - } - } - // Move files directory - defining(getRepositoryFilesDir(repository.owner, repository.name)) { dir => - if (dir.isDirectory) { - FileUtils.moveDirectory(dir, getRepositoryFilesDir(repository.owner, form.repositoryName)) - } - } - // Delete parent directory - FileUtil.deleteDirectoryIfEmpty(getRepositoryFilesDir(repository.owner, repository.name)) - - // Call hooks - PluginRegistry().getRepositoryHooks.foreach(_.renamed(repository.owner, repository.name, form.repositoryName)) } flash += "info" -> "Repository settings has been updated." redirect(s"/${repository.owner}/${form.repositoryName}/settings/options") @@ -395,27 +372,6 @@ trait RepositorySettingsControllerBase extends ControllerBase { LockUtil.lock(s"${repository.owner}/${repository.name}") { // Update database renameRepository(repository.owner, repository.name, form.newOwner, repository.name) - // Move git repository - defining(getRepositoryDir(repository.owner, repository.name)) { dir => - if (dir.isDirectory) { - FileUtils.moveDirectory(dir, getRepositoryDir(form.newOwner, repository.name)) - } - } - // Move wiki repository - defining(getWikiRepositoryDir(repository.owner, repository.name)) { dir => - if (dir.isDirectory) { - FileUtils.moveDirectory(dir, getWikiRepositoryDir(form.newOwner, repository.name)) - } - } - // Move files directory - defining(getRepositoryFilesDir(repository.owner, repository.name)) { dir => - if (dir.isDirectory) { - FileUtils.moveDirectory(dir, getRepositoryFilesDir(form.newOwner, repository.name)) - } - } - - // Call hooks - PluginRegistry().getRepositoryHooks.foreach(_.transferred(repository.owner, form.newOwner, repository.name)) } } redirect(s"/${form.newOwner}/${repository.name}") diff --git a/src/main/scala/gitbucket/core/service/RepositoryService.scala b/src/main/scala/gitbucket/core/service/RepositoryService.scala index 08f077d6b..f86adf0e6 100644 --- a/src/main/scala/gitbucket/core/service/RepositoryService.scala +++ b/src/main/scala/gitbucket/core/service/RepositoryService.scala @@ -3,11 +3,14 @@ package gitbucket.core.service import gitbucket.core.controller.Context import gitbucket.core.util._ import gitbucket.core.util.SyntaxSugars._ -import gitbucket.core.model.{Account, Collaborator, Repository, RepositoryOptions, Role, ReleaseTag} +import gitbucket.core.model.{Account, Collaborator, ReleaseTag, Repository, RepositoryOptions, Role} import gitbucket.core.model.Profile._ import gitbucket.core.model.Profile.profile.blockingApi._ import gitbucket.core.model.Profile.dateColumnType +import gitbucket.core.plugin.PluginRegistry +import gitbucket.core.util.Directory.{getRepositoryDir, getRepositoryFilesDir, getWikiRepositoryDir} import gitbucket.core.util.JGitUtil.FileInfo +import org.apache.commons.io.FileUtils import org.eclipse.jgit.api.Git trait RepositoryService { self: AccountService => @@ -238,6 +241,29 @@ trait RepositoryService { self: AccountService => ) ) } + // Move git repository + defining(getRepositoryDir(repository.owner, repository.name)) { dir => + if (dir.isDirectory) { + FileUtils.moveDirectory(dir, getRepositoryDir(repository.owner, form.repositoryName)) + } + } + // Move wiki repository + defining(getWikiRepositoryDir(repository.owner, repository.name)) { dir => + if (dir.isDirectory) { + FileUtils.moveDirectory(dir, getWikiRepositoryDir(repository.owner, form.repositoryName)) + } + } + // Move files directory + defining(getRepositoryFilesDir(repository.owner, repository.name)) { dir => + if (dir.isDirectory) { + FileUtils.moveDirectory(dir, getRepositoryFilesDir(repository.owner, form.repositoryName)) + } + } + // Delete parent directory + FileUtil.deleteDirectoryIfEmpty(getRepositoryFilesDir(repository.owner, repository.name)) + + // Call hooks + PluginRegistry().getRepositoryHooks.foreach(_.renamed(repository.owner, repository.name, form.repositoryName)) } } }