diff --git a/src/main/scala/app/RepositorySettingsController.scala b/src/main/scala/app/RepositorySettingsController.scala index 08f6474..78f8570 100644 --- a/src/main/scala/app/RepositorySettingsController.scala +++ b/src/main/scala/app/RepositorySettingsController.scala @@ -60,9 +60,10 @@ /** * JSON API for collaborator completion. */ + // TODO Merge with UserManagementController get("/:owner/:repository/settings/collaborators/proposals")(usersOnly { contentType = formats("json") - org.json4s.jackson.Serialization.write(Map("options" -> getAllUsers.map(_.userName).toArray)) + org.json4s.jackson.Serialization.write(Map("options" -> getAllUsers.filter(!_.isGroupAccount).map(_.userName).toArray)) }) /** diff --git a/src/main/scala/app/UserManagementController.scala b/src/main/scala/app/UserManagementController.scala index 363744f..f3ff60b 100644 --- a/src/main/scala/app/UserManagementController.scala +++ b/src/main/scala/app/UserManagementController.scala @@ -68,5 +68,18 @@ } getOrElse NotFound }) - + + get("/admin/users/_newgroup"){ + admin.users.html.group(None) + } + + /** + * JSON API for collaborator completion. + */ + // TODO Merge with RepositorySettingsController + get("/admin/users/_members"){ + contentType = formats("json") + org.json4s.jackson.Serialization.write(Map("options" -> getAllUsers.filter(!_.isGroupAccount).map(_.userName).toArray)) + } + } \ No newline at end of file diff --git a/src/main/scala/model/Account.scala b/src/main/scala/model/Account.scala index d0f1f59..86ff251 100644 --- a/src/main/scala/model/Account.scala +++ b/src/main/scala/model/Account.scala @@ -12,7 +12,8 @@ def updatedDate = column[java.util.Date]("UPDATED_DATE") def lastLoginDate = column[java.util.Date]("LAST_LOGIN_DATE") def image = column[String]("IMAGE") - def * = userName ~ mailAddress ~ password ~ isAdmin ~ url.? ~ registeredDate ~ updatedDate ~ lastLoginDate.? ~ image.? <> (Account, Account.unapply _) + def groupAccount = column[Boolean]("GROUP_ACCOUNT") + def * = userName ~ mailAddress ~ password ~ isAdmin ~ url.? ~ registeredDate ~ updatedDate ~ lastLoginDate.? ~ image.? ~ groupAccount <> (Account, Account.unapply _) } case class Account( @@ -24,5 +25,6 @@ registeredDate: java.util.Date, updatedDate: java.util.Date, lastLoginDate: Option[java.util.Date], - image: Option[String] + image: Option[String], + isGroupAccount: Boolean ) diff --git a/src/main/scala/service/AccountService.scala b/src/main/scala/service/AccountService.scala index 28223e1..eae2949 100644 --- a/src/main/scala/service/AccountService.scala +++ b/src/main/scala/service/AccountService.scala @@ -24,7 +24,8 @@ registeredDate = currentDate, updatedDate = currentDate, lastLoginDate = None, - image = None) + image = None, + isGroupAccount = false) def updateAccount(account: Account): Unit = Accounts diff --git a/src/main/twirl/admin/users/group.scala.html b/src/main/twirl/admin/users/group.scala.html new file mode 100644 index 0000000..da55c0b --- /dev/null +++ b/src/main/twirl/admin/users/group.scala.html @@ -0,0 +1,60 @@ +@(account: Option[model.Account])(implicit context: app.Context) +@import context._ +@import view.helpers._ +@html.main(if(account.isEmpty) "New User" else "Update User"){ + @admin.html.menu("users"){ +
+
+
+
+ + + +
+
+ + @helper.html.uploadavatar(account) +
+
+
+
+ +
    +
+ + +
+
+
+
+ + Cancel +
+
+ } +} + \ No newline at end of file diff --git a/src/main/twirl/admin/users/list.scala.html b/src/main/twirl/admin/users/list.scala.html index abe96f4..70fe434 100644 --- a/src/main/twirl/admin/users/list.scala.html +++ b/src/main/twirl/admin/users/list.scala.html @@ -5,6 +5,7 @@ @admin.html.menu("users"){
New User + New Group
@users.map { account => diff --git a/src/main/twirl/settings/collaborators.scala.html b/src/main/twirl/settings/collaborators.scala.html index 1b6008c..26b1d6c 100644 --- a/src/main/twirl/settings/collaborators.scala.html +++ b/src/main/twirl/settings/collaborators.scala.html @@ -23,12 +23,14 @@ } } \ No newline at end of file