mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-08 22:45:51 +01:00
Implementing add collaborator stuff.
This commit is contained in:
@@ -1,12 +1,19 @@
|
||||
package app
|
||||
|
||||
import service._
|
||||
import jp.sf.amateras.scalatra.forms._
|
||||
|
||||
class SettingsController extends SettingsControllerBase with RepositoryService with AccountService
|
||||
|
||||
|
||||
trait SettingsControllerBase extends ControllerBase { self: RepositoryService =>
|
||||
|
||||
trait SettingsControllerBase extends ControllerBase { self: RepositoryService with AccountService =>
|
||||
|
||||
case class CollaboratorForm(userName: String)
|
||||
|
||||
val form = mapping(
|
||||
"userName" -> trim(label("Username", text(required, existUser)))
|
||||
)(CollaboratorForm.apply)
|
||||
|
||||
get("/:owner/:repository/settings") {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
@@ -24,7 +31,24 @@ trait SettingsControllerBase extends ControllerBase { self: RepositoryService =>
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
settings.html.collaborators(getRepository(owner, repository, servletContext).get)
|
||||
settings.html.collaborators(getCollaborators(owner, repository), getRepository(owner, repository, servletContext).get)
|
||||
}
|
||||
|
||||
post("/:owner/:repository/settings/collaborators/_add", form) { form =>
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
addCollaborator(owner, repository, form.userName)
|
||||
redirect("/%s/%s/settings/collaborators".format(owner, repository))
|
||||
}
|
||||
|
||||
def existUser: Constraint = new Constraint(){
|
||||
def validate(name: String, value: String): Option[String] = {
|
||||
getAccountByUserName(value) match {
|
||||
case None => Some("User does not exist.")
|
||||
case Some(x) if(x.userName == context.loginAccount.get.userName) => Some("User can access this repository already.")
|
||||
case Some(x) => None
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user