diff --git a/src/main/scala/app/SettingsController.scala b/src/main/scala/app/SettingsController.scala index aea36c1..9fcbdd5 100644 --- a/src/main/scala/app/SettingsController.scala +++ b/src/main/scala/app/SettingsController.scala @@ -2,15 +2,15 @@ import service._ import util.Directory._ -import util.OwnerOnlyAuthenticator +import util.{UsersOnlyAuthenticator, OwnerOnlyAuthenticator} import jp.sf.amateras.scalatra.forms._ import org.apache.commons.io.FileUtils class SettingsController extends SettingsControllerBase - with RepositoryService with AccountService with OwnerOnlyAuthenticator + with RepositoryService with AccountService with OwnerOnlyAuthenticator with UsersOnlyAuthenticator trait SettingsControllerBase extends ControllerBase { - self: RepositoryService with AccountService with OwnerOnlyAuthenticator => + self: RepositoryService with AccountService with OwnerOnlyAuthenticator with UsersOnlyAuthenticator => case class OptionsForm(description: Option[String], defaultBranch: String, isPrivate: Boolean) @@ -71,6 +71,14 @@ }) /** + * JSON API for collaborator completion. + */ + get("/:owner/:repository/settings/collaborators/proposals")(usersOnly { + contentType = formats("json") + org.json4s.jackson.Serialization.write(Map("options" -> getAllUsers.map(_.userName).toArray)) + }) + + /** * Add the collaborator. */ post("/:owner/:repository/settings/collaborators/add", collaboratorForm)(ownerOnly { form => diff --git a/src/main/twirl/settings/collaborators.scala.html b/src/main/twirl/settings/collaborators.scala.html index a174d21..c7aef83 100644 --- a/src/main/twirl/settings/collaborators.scala.html +++ b/src/main/twirl/settings/collaborators.scala.html @@ -21,3 +21,13 @@ } } + \ No newline at end of file