0
0
mirror of https://github.com/go-gitea/gitea.git synced 2025-07-20 12:38:28 +02:00

Fix bug when updating user visibility to public

This commit is contained in:
Lunny Xiao 2025-07-10 09:12:12 -07:00
parent 36a19f2569
commit 4fdd2de1bb
No known key found for this signature in database
GPG Key ID: C3B7C91B632F738A
2 changed files with 19 additions and 11 deletions

View File

@ -28,12 +28,18 @@ func FromPtr[T any](v *T) Option[T] {
return Some(*v) return Some(*v)
} }
func FromNonDefault[T comparable](v T) Option[T] { func FromNonDefaultFunc[T comparable](f T, isZero func(T) bool) Option[T] {
var zero T if isZero(f) {
if v == zero {
return None[T]() return None[T]()
} }
return Some(v) return Some(f)
}
func FromNonDefault[T comparable](v T) Option[T] {
return FromNonDefaultFunc(v, func(v T) bool {
var zero T
return v == zero
})
} }
func (o Option[T]) Has() bool { func (o Option[T]) Has() bool {

View File

@ -240,7 +240,9 @@ func EditUser(ctx *context.APIContext) {
Description: optional.FromPtr(form.Description), Description: optional.FromPtr(form.Description),
IsActive: optional.FromPtr(form.Active), IsActive: optional.FromPtr(form.Active),
IsAdmin: user_service.UpdateOptionFieldFromPtr(form.Admin), IsAdmin: user_service.UpdateOptionFieldFromPtr(form.Admin),
Visibility: optional.FromNonDefault(api.VisibilityModes[form.Visibility]), Visibility: optional.FromNonDefaultFunc(api.VisibilityModes[form.Visibility], func(v api.VisibleType) bool {
return v < api.VisibleTypePublic || v > api.VisibleTypePrivate
}),
AllowGitHook: optional.FromPtr(form.AllowGitHook), AllowGitHook: optional.FromPtr(form.AllowGitHook),
AllowImportLocal: optional.FromPtr(form.AllowImportLocal), AllowImportLocal: optional.FromPtr(form.AllowImportLocal),
MaxRepoCreation: optional.FromPtr(form.MaxRepoCreation), MaxRepoCreation: optional.FromPtr(form.MaxRepoCreation),