mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-09 23:15:49 +01:00
Delete Repository page has been implemented.
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
package app
|
||||
|
||||
import service._
|
||||
import util.Directory._
|
||||
import util.OwnerOnlyAuthenticator
|
||||
import jp.sf.amateras.scalatra.forms._
|
||||
import org.apache.commons.io.FileUtils
|
||||
|
||||
class SettingsController extends SettingsControllerBase
|
||||
with RepositoryService with AccountService with OwnerOnlyAuthenticator
|
||||
@@ -95,8 +97,35 @@ trait SettingsControllerBase extends ControllerBase {
|
||||
removeCollaborator(owner, repository, userName)
|
||||
redirect("/%s/%s/settings/collaborators".format(owner, repository))
|
||||
})
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Display the delete repository page.
|
||||
*/
|
||||
get("/:owner/:repository/settings/delete")(ownerOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
getRepository(owner, repository, servletContext) match {
|
||||
case Some(r) => settings.html.delete(r)
|
||||
case None => NotFound()
|
||||
}
|
||||
})
|
||||
|
||||
/**
|
||||
* Delete the repository.
|
||||
*/
|
||||
post("/:owner/:repository/settings/delete")(ownerOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
deleteRepository(owner, repository)
|
||||
|
||||
FileUtils.deleteDirectory(getRepositoryDir(owner, repository))
|
||||
FileUtils.deleteDirectory(getWikiRepositoryDir(owner, repository))
|
||||
|
||||
redirect("/%s".format(owner))
|
||||
})
|
||||
|
||||
/**
|
||||
* Provides Constraint to validate the collaborator name.
|
||||
*/
|
||||
|
||||
@@ -42,6 +42,16 @@ trait RepositoryService { self: AccountService =>
|
||||
lastActivityDate = currentDate)
|
||||
}
|
||||
|
||||
def deleteRepository(userName: String, repositoryName: String): Unit = {
|
||||
Collaborators
|
||||
.filter { c => (c.userName is userName.bind) && (c.repositoryName is repositoryName.bind) }
|
||||
.delete
|
||||
|
||||
Repositories
|
||||
.filter { r => (r.userName is userName.bind) && (r.repositoryName is repositoryName.bind) }
|
||||
.delete
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list of specified user's repositories information.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user