From ff0d1efd89b819382f8c63240b67e7e94cb70a14 Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Sat, 1 May 2021 10:01:20 +0000 Subject: [PATCH 1/4] Use same name as other structs. --- modules/structs/user.go | 4 ++-- templates/swagger/v1_json.tmpl | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/structs/user.go b/modules/structs/user.go index efd246e566a89..b5d5b9298ef01 100644 --- a/modules/structs/user.go +++ b/modules/structs/user.go @@ -37,8 +37,8 @@ type User struct { Location string `json:"location"` // the user's website Website string `json:"website"` - // the user's biography - Description string `json:"bio"` + // the user's description + Description string `json:"description"` } // MarshalJSON implements the json.Marshaler interface for User, adding field(s) for backward compatibility diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl index 6d690ba275ad3..4552a99048397 100644 --- a/templates/swagger/v1_json.tmpl +++ b/templates/swagger/v1_json.tmpl @@ -16251,16 +16251,16 @@ "type": "string", "x-go-name": "AvatarURL" }, - "bio": { - "description": "the user's biography", - "type": "string", - "x-go-name": "Description" - }, "created": { "type": "string", "format": "date-time", "x-go-name": "Created" }, + "description": { + "description": "the user's description", + "type": "string", + "x-go-name": "Description" + }, "email": { "type": "string", "format": "email", From 0812959ff014de8f54d9a4daf779bfe297e8f6c2 Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Sat, 1 May 2021 10:04:42 +0000 Subject: [PATCH 2/4] Sync with normal forms. --- modules/structs/admin_user.go | 2 +- modules/structs/org.go | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/modules/structs/admin_user.go b/modules/structs/admin_user.go index ee1738579ab71..41b97531a2e55 100644 --- a/modules/structs/admin_user.go +++ b/modules/structs/admin_user.go @@ -32,7 +32,7 @@ type EditUserOption struct { FullName *string `json:"full_name" binding:"MaxSize(100)"` Password string `json:"password" binding:"MaxSize(255)"` MustChangePassword *bool `json:"must_change_password"` - Website *string `json:"website" binding:"MaxSize(50)"` + Website *string `json:"website" binding:"ValidUrl;MaxSize(255)"` Location *string `json:"location" binding:"MaxSize(50)"` Active *bool `json:"active"` Admin *bool `json:"admin"` diff --git a/modules/structs/org.go b/modules/structs/org.go index 4b79a4e70a0bf..2c13c4cb32846 100644 --- a/modules/structs/org.go +++ b/modules/structs/org.go @@ -22,9 +22,8 @@ type CreateOrgOption struct { // required: true UserName string `json:"username" binding:"Required"` FullName string `json:"full_name"` - Description string `json:"description"` - Website string `json:"website"` - Location string `json:"location"` + Website string `json:"website" binding:"ValidUrl;MaxSize(255)"` + Location string `json:"location" binding:"MaxSize(50)"` // possible values are `public` (default), `limited` or `private` // enum: public,limited,private Visibility string `json:"visibility" binding:"In(,public,limited,private)"` @@ -34,9 +33,8 @@ type CreateOrgOption struct { // EditOrgOption options for editing an organization type EditOrgOption struct { FullName string `json:"full_name"` - Description string `json:"description"` - Website string `json:"website"` - Location string `json:"location"` + Website string `json:"website" binding:"ValidUrl;MaxSize(255)"` + Location string `json:"location" binding:"MaxSize(50)"` // possible values are `public`, `limited` or `private` // enum: public,limited,private Visibility string `json:"visibility" binding:"In(,public,limited,private)"` From 79d03980b9604721782ba4be50510027a9a10d49 Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Sat, 1 May 2021 10:05:50 +0000 Subject: [PATCH 3/4] Edit description with API. --- modules/structs/admin_user.go | 1 + modules/structs/org.go | 2 ++ routers/api/v1/admin/user.go | 3 +++ templates/swagger/v1_json.tmpl | 4 ++++ 4 files changed, 10 insertions(+) diff --git a/modules/structs/admin_user.go b/modules/structs/admin_user.go index 41b97531a2e55..e3d99bc83dd8b 100644 --- a/modules/structs/admin_user.go +++ b/modules/structs/admin_user.go @@ -34,6 +34,7 @@ type EditUserOption struct { MustChangePassword *bool `json:"must_change_password"` Website *string `json:"website" binding:"ValidUrl;MaxSize(255)"` Location *string `json:"location" binding:"MaxSize(50)"` + Description *string `json:"description" binding:"MaxSize(255)"` Active *bool `json:"active"` Admin *bool `json:"admin"` AllowGitHook *bool `json:"allow_git_hook"` diff --git a/modules/structs/org.go b/modules/structs/org.go index 2c13c4cb32846..483f5044a8982 100644 --- a/modules/structs/org.go +++ b/modules/structs/org.go @@ -22,6 +22,7 @@ type CreateOrgOption struct { // required: true UserName string `json:"username" binding:"Required"` FullName string `json:"full_name"` + Description string `json:"description" binding:"MaxSize(255)"` Website string `json:"website" binding:"ValidUrl;MaxSize(255)"` Location string `json:"location" binding:"MaxSize(50)"` // possible values are `public` (default), `limited` or `private` @@ -33,6 +34,7 @@ type CreateOrgOption struct { // EditOrgOption options for editing an organization type EditOrgOption struct { FullName string `json:"full_name"` + Description string `json:"description" binding:"MaxSize(255)"` Website string `json:"website" binding:"ValidUrl;MaxSize(255)"` Location string `json:"location" binding:"MaxSize(50)"` // possible values are `public`, `limited` or `private` diff --git a/routers/api/v1/admin/user.go b/routers/api/v1/admin/user.go index 5a74c6ccd5081..2d4a3815f4ca4 100644 --- a/routers/api/v1/admin/user.go +++ b/routers/api/v1/admin/user.go @@ -203,6 +203,9 @@ func EditUser(ctx *context.APIContext) { if form.Location != nil { u.Location = *form.Location } + if form.Description != nil { + u.Description = *form.Description + } if form.Active != nil { u.IsActive = *form.Active } diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl index 4552a99048397..8255ed6e6ea49 100644 --- a/templates/swagger/v1_json.tmpl +++ b/templates/swagger/v1_json.tmpl @@ -13800,6 +13800,10 @@ "type": "boolean", "x-go-name": "AllowImportLocal" }, + "description": { + "type": "string", + "x-go-name": "Description" + }, "email": { "type": "string", "format": "email", From c2f23a23ad17ba5cd71aebd053dc918047099254 Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Sun, 2 May 2021 17:44:46 +0000 Subject: [PATCH 4/4] Workaround for nil value. --- modules/structs/admin_user.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/structs/admin_user.go b/modules/structs/admin_user.go index e3d99bc83dd8b..5da4e9608bea7 100644 --- a/modules/structs/admin_user.go +++ b/modules/structs/admin_user.go @@ -32,7 +32,7 @@ type EditUserOption struct { FullName *string `json:"full_name" binding:"MaxSize(100)"` Password string `json:"password" binding:"MaxSize(255)"` MustChangePassword *bool `json:"must_change_password"` - Website *string `json:"website" binding:"ValidUrl;MaxSize(255)"` + Website *string `json:"website" binding:"OmitEmpty;ValidUrl;MaxSize(255)"` Location *string `json:"location" binding:"MaxSize(50)"` Description *string `json:"description" binding:"MaxSize(255)"` Active *bool `json:"active"`