diff --git a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala index d6726ee..31ebeb9 100644 --- a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala +++ b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala @@ -178,23 +178,34 @@ repository) }) - /** - * Add the collaborator. - */ - post("/:owner/:repository/settings/collaborators/add", collaboratorForm)(ownerOnly { (form, repository) => - getAccountByUserName(repository.owner).foreach { _ => - addCollaborator(repository.owner, repository.name, form.userName, "ADMIN") // TODO + post("/:owner/:repository/settings/collaborators")(ownerOnly { repository => + val collaborators = params("collaborators") + removeCollaborators(repository.owner, repository.name) + collaborators.split(",").map { collaborator => + val userName :: permission :: Nil = collaborator.split(":").toList + addCollaborator(repository.owner, repository.name, userName, permission) } redirect(s"/${repository.owner}/${repository.name}/settings/collaborators") }) - /** - * Add the collaborator. - */ - get("/:owner/:repository/settings/collaborators/remove")(ownerOnly { repository => - removeCollaborator(repository.owner, repository.name, params("name")) - redirect(s"/${repository.owner}/${repository.name}/settings/collaborators") - }) + +// /** +// * Add the collaborator. +// */ +// post("/:owner/:repository/settings/collaborators/add", collaboratorForm)(ownerOnly { (form, repository) => +// getAccountByUserName(repository.owner).foreach { _ => +// addCollaborator(repository.owner, repository.name, form.userName, "ADMIN") // TODO +// } +// redirect(s"/${repository.owner}/${repository.name}/settings/collaborators") +// }) +// +// /** +// * Add the collaborator. +// */ +// get("/:owner/:repository/settings/collaborators/remove")(ownerOnly { repository => +// removeCollaborator(repository.owner, repository.name, params("name")) +// redirect(s"/${repository.owner}/${repository.name}/settings/collaborators") +// }) /** * Display the web hook page. diff --git a/src/main/scala/gitbucket/core/service/RepositoryService.scala b/src/main/scala/gitbucket/core/service/RepositoryService.scala index 5391507..6fe62e2 100644 --- a/src/main/scala/gitbucket/core/service/RepositoryService.scala +++ b/src/main/scala/gitbucket/core/service/RepositoryService.scala @@ -340,11 +340,11 @@ def addCollaborator(userName: String, repositoryName: String, collaboratorName: String, permission: String)(implicit s: Session): Unit = Collaborators insert Collaborator(userName, repositoryName, collaboratorName, permission) - /** - * Remove collaborator (user or group) from the repository. - */ - def removeCollaborator(userName: String, repositoryName: String, collaboratorName: String)(implicit s: Session): Unit = - Collaborators.filter(_.byPrimaryKey(userName, repositoryName, collaboratorName)).delete +// /** +// * Remove collaborator (user or group) from the repository. +// */ +// def removeCollaborator(userName: String, repositoryName: String, collaboratorName: String)(implicit s: Session): Unit = +// Collaborators.filter(_.byPrimaryKey(userName, repositoryName, collaboratorName)).delete /** * Remove all collaborators from the repository. diff --git a/src/main/twirl/gitbucket/core/settings/collaborators.scala.html b/src/main/twirl/gitbucket/core/settings/collaborators.scala.html index 715ea1c..3d2d60c 100644 --- a/src/main/twirl/gitbucket/core/settings/collaborators.scala.html +++ b/src/main/twirl/gitbucket/core/settings/collaborators.scala.html @@ -6,21 +6,103 @@ @gitbucket.core.html.menu("settings", repository){ @gitbucket.core.settings.html.menu("collaborators", repository){

Manage Collaborators

- -
-
- -
- @gitbucket.core.helper.html.account("userName", 300, false) - -
+
+ + @gitbucket.core.helper.html.account("userName", 200, false) + + +
+ +
+
+ +
+
} } } + \ No newline at end of file