0
0
mirror of https://github.com/go-gitea/gitea.git synced 2025-07-19 10:41:01 +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)
}
func FromNonDefault[T comparable](v T) Option[T] {
var zero T
if v == zero {
func FromNonDefaultFunc[T comparable](f T, isZero func(T) bool) Option[T] {
if isZero(f) {
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 {

View File

@ -234,13 +234,15 @@ func EditUser(ctx *context.APIContext) {
}
opts := &user_service.UpdateOptions{
FullName: optional.FromPtr(form.FullName),
Website: optional.FromPtr(form.Website),
Location: optional.FromPtr(form.Location),
Description: optional.FromPtr(form.Description),
IsActive: optional.FromPtr(form.Active),
IsAdmin: user_service.UpdateOptionFieldFromPtr(form.Admin),
Visibility: optional.FromNonDefault(api.VisibilityModes[form.Visibility]),
FullName: optional.FromPtr(form.FullName),
Website: optional.FromPtr(form.Website),
Location: optional.FromPtr(form.Location),
Description: optional.FromPtr(form.Description),
IsActive: optional.FromPtr(form.Active),
IsAdmin: user_service.UpdateOptionFieldFromPtr(form.Admin),
Visibility: optional.FromNonDefaultFunc(api.VisibilityModes[form.Visibility], func(v api.VisibleType) bool {
return v < api.VisibleTypePublic || v > api.VisibleTypePrivate
}),
AllowGitHook: optional.FromPtr(form.AllowGitHook),
AllowImportLocal: optional.FromPtr(form.AllowImportLocal),
MaxRepoCreation: optional.FromPtr(form.MaxRepoCreation),