mirror of
https://github.com/go-gitea/gitea.git
synced 2025-07-13 17:54:44 +02:00
fix
This commit is contained in:
parent
d87aa947ba
commit
df080cf2f3
@ -28,18 +28,19 @@ func FromPtr[T any](v *T) Option[T] {
|
|||||||
return Some(*v)
|
return Some(*v)
|
||||||
}
|
}
|
||||||
|
|
||||||
func FromNonDefaultFunc[T comparable](f T, isZero func(T) bool) Option[T] {
|
func FromMapLookup[K comparable, V any](m map[K]V, k K) Option[V] {
|
||||||
if isZero(f) {
|
if v, ok := m[k]; ok {
|
||||||
return None[T]()
|
return Some(v)
|
||||||
}
|
}
|
||||||
return Some(f)
|
return None[V]()
|
||||||
}
|
}
|
||||||
|
|
||||||
func FromNonDefault[T comparable](v T) Option[T] {
|
func FromNonDefault[T comparable](v T) Option[T] {
|
||||||
return FromNonDefaultFunc(v, func(v T) bool {
|
var zero T
|
||||||
var zero T
|
if v == zero {
|
||||||
return v == zero
|
return None[T]()
|
||||||
})
|
}
|
||||||
|
return Some(v)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o Option[T]) Has() bool {
|
func (o Option[T]) Has() bool {
|
||||||
|
@ -57,9 +57,10 @@ func TestOption(t *testing.T) {
|
|||||||
assert.True(t, opt3.Has())
|
assert.True(t, opt3.Has())
|
||||||
assert.Equal(t, int(1), opt3.Value())
|
assert.Equal(t, int(1), opt3.Value())
|
||||||
|
|
||||||
opt4 := optional.FromNonDefaultFunc(1, func(t int) bool {
|
opt4 := optional.FromMapLookup(map[string]int{"a": 1}, "a")
|
||||||
return t == 1
|
assert.True(t, opt4.Has())
|
||||||
})
|
assert.Equal(t, 1, opt4.Value())
|
||||||
|
opt4 = optional.FromMapLookup(map[string]int{"a": 1}, "b")
|
||||||
assert.False(t, opt4.Has())
|
assert.False(t, opt4.Has())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,15 +234,13 @@ func EditUser(ctx *context.APIContext) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
opts := &user_service.UpdateOptions{
|
opts := &user_service.UpdateOptions{
|
||||||
FullName: optional.FromPtr(form.FullName),
|
FullName: optional.FromPtr(form.FullName),
|
||||||
Website: optional.FromPtr(form.Website),
|
Website: optional.FromPtr(form.Website),
|
||||||
Location: optional.FromPtr(form.Location),
|
Location: optional.FromPtr(form.Location),
|
||||||
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.FromNonDefaultFunc(api.VisibilityModes[form.Visibility], func(v api.VisibleType) bool {
|
Visibility: optional.FromMapLookup(api.VisibilityModes, form.Visibility),
|
||||||
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),
|
||||||
|
@ -387,13 +387,11 @@ func Edit(ctx *context.APIContext) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
opts := &user_service.UpdateOptions{
|
opts := &user_service.UpdateOptions{
|
||||||
FullName: optional.Some(form.FullName),
|
FullName: optional.Some(form.FullName),
|
||||||
Description: optional.Some(form.Description),
|
Description: optional.Some(form.Description),
|
||||||
Website: optional.Some(form.Website),
|
Website: optional.Some(form.Website),
|
||||||
Location: optional.Some(form.Location),
|
Location: optional.Some(form.Location),
|
||||||
Visibility: optional.FromNonDefaultFunc(api.VisibilityModes[form.Visibility], func(v api.VisibleType) bool {
|
Visibility: optional.FromMapLookup(api.VisibilityModes, form.Visibility),
|
||||||
return v < api.VisibleTypePublic || v > api.VisibleTypePrivate
|
|
||||||
}),
|
|
||||||
RepoAdminChangeTeamAccess: optional.FromPtr(form.RepoAdminChangeTeamAccess),
|
RepoAdminChangeTeamAccess: optional.FromPtr(form.RepoAdminChangeTeamAccess),
|
||||||
}
|
}
|
||||||
if err := user_service.UpdateUser(ctx, ctx.Org.Organization.AsUser(), opts); err != nil {
|
if err := user_service.UpdateUser(ctx, ctx.Org.Organization.AsUser(), opts); err != nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user