diff --git a/src/main/scala/gitbucket/core/controller/AccountController.scala b/src/main/scala/gitbucket/core/controller/AccountController.scala index 1560b2ac4..d49bbe709 100644 --- a/src/main/scala/gitbucket/core/controller/AccountController.scala +++ b/src/main/scala/gitbucket/core/controller/AccountController.scala @@ -68,11 +68,12 @@ trait AccountControllerBase extends AccountManagementControllerBase { "note" -> trim(label("Token", text(required, maxlength(100)))) )(PersonalTokenForm.apply) - case class NewGroupForm(groupName: String, url: Option[String], fileId: Option[String], members: String) - case class EditGroupForm(groupName: String, url: Option[String], fileId: Option[String], members: String, clearImage: Boolean) + case class NewGroupForm(groupName: String, groupDescription: Option[String], url: Option[String], fileId: Option[String], members: String) + case class EditGroupForm(groupName: String, groupDescription: Option[String], url: Option[String], fileId: Option[String], members: String, clearImage: Boolean) val newGroupForm = mapping( "groupName" -> trim(label("Group name" ,text(required, maxlength(100), identifier, uniqueUserName))), + "groupDescription" -> trim(label("Group description", optional(text()))), "url" -> trim(label("URL" ,optional(text(maxlength(200))))), "fileId" -> trim(label("File ID" ,optional(text()))), "members" -> trim(label("Members" ,text(required, members))) @@ -80,6 +81,7 @@ trait AccountControllerBase extends AccountManagementControllerBase { val editGroupForm = mapping( "groupName" -> trim(label("Group name" ,text(required, maxlength(100), identifier))), + "groupDescription" -> trim(label("Group description", optional(text()))), "url" -> trim(label("URL" ,optional(text(maxlength(200))))), "fileId" -> trim(label("File ID" ,optional(text()))), "members" -> trim(label("Members" ,text(required, members))), @@ -296,7 +298,7 @@ trait AccountControllerBase extends AccountManagementControllerBase { }) post("/groups/new", newGroupForm)(usersOnly { form => - createGroup(form.groupName, form.url, None) + createGroup(form.groupName, form.url, form.groupDescription) updateGroupMembers(form.groupName, form.members.split(",").map { _.split(":") match { case Array(userName, isManager) => (userName, isManager.toBoolean) @@ -334,7 +336,7 @@ trait AccountControllerBase extends AccountManagementControllerBase { } }.toList){ case (groupName, members) => getAccountByUserName(groupName, true).map { account => - updateGroup(groupName, form.url, None, false) + updateGroup(groupName, form.url, form.groupDescription, false) // Update GROUP_MEMBER updateGroupMembers(form.groupName, members) diff --git a/src/main/scala/gitbucket/core/controller/UserManagementController.scala b/src/main/scala/gitbucket/core/controller/UserManagementController.scala index 7b1daaa9d..a3b07fb08 100644 --- a/src/main/scala/gitbucket/core/controller/UserManagementController.scala +++ b/src/main/scala/gitbucket/core/controller/UserManagementController.scala @@ -25,10 +25,12 @@ trait UserManagementControllerBase extends AccountManagementControllerBase { mailAddress: String, isAdmin: Boolean, url: Option[String], fileId: Option[String], clearImage: Boolean, isRemoved: Boolean) - case class NewGroupForm(groupName: String, url: Option[String], fileId: Option[String], + case class NewGroupForm(groupName: String, groupDescription: Option[String], + url: Option[String], fileId: Option[String], members: String) - case class EditGroupForm(groupName: String, url: Option[String], fileId: Option[String], + case class EditGroupForm(groupName: String, groupDescription: Option[String], + url: Option[String], fileId: Option[String], members: String, clearImage: Boolean, isRemoved: Boolean) val newUserForm = mapping( @@ -55,6 +57,7 @@ trait UserManagementControllerBase extends AccountManagementControllerBase { val newGroupForm = mapping( "groupName" -> trim(label("Group name" ,text(required, maxlength(100), identifier, uniqueUserName))), + "groupDescription" -> trim(label("Group description", optional(text()))), "url" -> trim(label("URL" ,optional(text(maxlength(200))))), "fileId" -> trim(label("File ID" ,optional(text()))), "members" -> trim(label("Members" ,text(required, members))) @@ -62,6 +65,7 @@ trait UserManagementControllerBase extends AccountManagementControllerBase { val editGroupForm = mapping( "groupName" -> trim(label("Group name" ,text(required, maxlength(100), identifier))), + "groupDescription" -> trim(label("Group description", optional(text()))), "url" -> trim(label("URL" ,optional(text(maxlength(200))))), "fileId" -> trim(label("File ID" ,optional(text()))), "members" -> trim(label("Members" ,text(required, members))), @@ -129,7 +133,7 @@ trait UserManagementControllerBase extends AccountManagementControllerBase { }) post("/admin/users/_newgroup", newGroupForm)(adminOnly { form => - createGroup(form.groupName, form.url, None) + createGroup(form.groupName, form.url, form.groupDescription) updateGroupMembers(form.groupName, form.members.split(",").map { _.split(":") match { case Array(userName, isManager) => (userName, isManager.toBoolean) @@ -152,7 +156,7 @@ trait UserManagementControllerBase extends AccountManagementControllerBase { } }.toList){ case (groupName, members) => getAccountByUserName(groupName, true).map { account => - updateGroup(groupName, form.url, None, form.isRemoved) + updateGroup(groupName, form.url, form.groupDescription, form.isRemoved) if(form.isRemoved){ // Remove from GROUP_MEMBER diff --git a/src/main/twirl/gitbucket/core/account/group.scala.html b/src/main/twirl/gitbucket/core/account/group.scala.html index 921beb266..3df300996 100644 --- a/src/main/twirl/gitbucket/core/account/group.scala.html +++ b/src/main/twirl/gitbucket/core/account/group.scala.html @@ -20,6 +20,12 @@ +
+