Skip to content

Commit 8481bda

Browse files
authored
Merge branch 'main' into ref-sel
2 parents 943808b + 04c55e9 commit 8481bda

File tree

13 files changed

+131
-26
lines changed

13 files changed

+131
-26
lines changed

build/code-batch-process.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,10 +267,10 @@ func main() {
267267
logVerbose("batch cmd: %s %v", subCmd, substArgs)
268268
switch subCmd {
269269
case "gitea-fmt":
270-
cmdErrors = append(cmdErrors, passThroughCmd("gofmt", substArgs))
271270
if containsString(subArgs, "-w") {
272271
cmdErrors = append(cmdErrors, giteaFormatGoImports(files))
273272
}
273+
cmdErrors = append(cmdErrors, passThroughCmd("gofmt", substArgs))
274274
case "misspell":
275275
cmdErrors = append(cmdErrors, passThroughCmd("misspell", substArgs))
276276
default:

models/user/user.go

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -796,18 +796,48 @@ func validateUser(u *User) error {
796796
return ValidateEmail(u.Email)
797797
}
798798

799-
func updateUser(e db.Engine, u *User) error {
799+
func updateUser(ctx context.Context, u *User, changePrimaryEmail bool) error {
800800
if err := validateUser(u); err != nil {
801801
return err
802802
}
803803

804+
e := db.GetEngine(ctx)
805+
806+
if changePrimaryEmail {
807+
var emailAddress EmailAddress
808+
has, err := e.Where("lower_email=?", strings.ToLower(u.Email)).Get(&emailAddress)
809+
if err != nil {
810+
return err
811+
}
812+
if !has {
813+
// 1. Update old primary email
814+
if _, err = e.Where("uid=? AND is_primary=?", u.ID, true).Cols("is_primary").Update(&EmailAddress{
815+
IsPrimary: false,
816+
}); err != nil {
817+
return err
818+
}
819+
820+
emailAddress.Email = u.Email
821+
emailAddress.UID = u.ID
822+
emailAddress.IsActivated = true
823+
emailAddress.IsPrimary = true
824+
if _, err := e.Insert(&emailAddress); err != nil {
825+
return err
826+
}
827+
} else if _, err := e.ID(emailAddress).Cols("is_primary").Update(&EmailAddress{
828+
IsPrimary: true,
829+
}); err != nil {
830+
return err
831+
}
832+
}
833+
804834
_, err := e.ID(u.ID).AllCols().Update(u)
805835
return err
806836
}
807837

808838
// UpdateUser updates user's information.
809-
func UpdateUser(u *User) error {
810-
return updateUser(db.GetEngine(db.DefaultContext), u)
839+
func UpdateUser(u *User, emailChanged bool) error {
840+
return updateUser(db.DefaultContext, u, emailChanged)
811841
}
812842

813843
// UpdateUserCols update user according special columns
@@ -836,14 +866,13 @@ func UpdateUserSetting(u *User) (err error) {
836866
return err
837867
}
838868
defer committer.Close()
839-
sess := db.GetEngine(ctx)
840869

841870
if !u.IsOrganization() {
842-
if err = checkDupEmail(sess, u); err != nil {
871+
if err = checkDupEmail(db.GetEngine(ctx), u); err != nil {
843872
return err
844873
}
845874
}
846-
if err = updateUser(sess, u); err != nil {
875+
if err = updateUser(ctx, u, false); err != nil {
847876
return err
848877
}
849878
return committer.Commit()

models/user/user_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -273,19 +273,19 @@ func TestUpdateUser(t *testing.T) {
273273
user := unittest.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
274274

275275
user.KeepActivityPrivate = true
276-
assert.NoError(t, UpdateUser(user))
276+
assert.NoError(t, UpdateUser(user, false))
277277
user = unittest.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
278278
assert.True(t, user.KeepActivityPrivate)
279279

280280
setting.Service.AllowedUserVisibilityModesSlice = []bool{true, false, false}
281281
user.KeepActivityPrivate = false
282282
user.Visibility = structs.VisibleTypePrivate
283-
assert.Error(t, UpdateUser(user))
283+
assert.Error(t, UpdateUser(user, false))
284284
user = unittest.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
285285
assert.True(t, user.KeepActivityPrivate)
286286

287287
user.Email = "no [email protected]"
288-
assert.Error(t, UpdateUser(user))
288+
assert.Error(t, UpdateUser(user, true))
289289
}
290290

291291
func TestNewUserRedirect(t *testing.T) {

modules/upload/upload.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package upload
66

77
import (
8+
"mime"
89
"net/http"
910
"net/url"
1011
"path"
@@ -31,7 +32,6 @@ func (err ErrFileTypeForbidden) Error() string {
3132
return "This file extension or type is not allowed to be uploaded."
3233
}
3334

34-
var mimeTypeSuffixRe = regexp.MustCompile(`;.*$`)
3535
var wildcardTypeRe = regexp.MustCompile(`^[a-z]+/\*$`)
3636

3737
// Verify validates whether a file is allowed to be uploaded.
@@ -51,7 +51,11 @@ func Verify(buf []byte, fileName string, allowedTypesStr string) error {
5151
}
5252

5353
fullMimeType := http.DetectContentType(buf)
54-
mimeType := strings.TrimSpace(mimeTypeSuffixRe.ReplaceAllString(fullMimeType, ""))
54+
mimeType, _, err := mime.ParseMediaType(fullMimeType)
55+
if err != nil {
56+
log.Warn("Detected attachment type could not be parsed %s", fullMimeType)
57+
return ErrFileTypeForbidden{Type: fullMimeType}
58+
}
5559
extension := strings.ToLower(path.Ext(fileName))
5660

5761
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Unique_file_type_specifiers

options/locale/locale_es-ES.ini

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@ lfs_path=Ruta raíz de Git LFS
155155
lfs_path_helper=Los archivos almacenados con Git LFS se almacenarán en este directorio. Déjelo vacío para deshabilitarlo.
156156
run_user=Ejecutar como usuario
157157
run_user_helper=Introduzca el nombre de usuario del sistema operativo sobre el que está ejecutando Gitea. Tenga en cuenta que este usuario debe tener acceso a la ruta a la raíz de los repositorios.
158+
domain=Dominio del Servidor
159+
domain_helper=Dominio o dirección de host para el servidor.
158160
ssh_port=Puerto de servidor SSH
159161
ssh_port_helper=Número de puerto en el que está escuchando su servidor SSH. Déjelo vacío para deshabilitarlo.
160162
http_port=Puerto de escucha HTTP de Gitea
@@ -519,7 +521,9 @@ website=Página web
519521
location=Localización
520522
update_theme=Actualizar tema
521523
update_profile=Actualizar perfil
524+
update_language=Actualizar idioma
522525
update_language_not_found=El idioma '%s' no está disponible.
526+
update_language_success=El idioma ha sido actualizado.
523527
update_profile_success=Tu perfil ha sido actualizado.
524528
change_username=Su nombre de usuario ha sido cambiado.
525529
change_username_prompt=Nota: los cambios de nombre de usuario también cambian la URL de su cuenta.
@@ -895,6 +899,7 @@ migrate.clone_address_desc=La URL HTTP(S) o de Git 'clone' de un repositorio exi
895899
migrate.github_token_desc=Puedes poner uno o más tokens con comas separadas aquí para hacer migrar más rápido debido al límite de velocidad de Github API. PRECAUCIÓN: Abusar esta característica puede violar la política del proveedor de servicios y llevar a bloquear la cuenta.
896900
migrate.clone_local_path=o una ruta local del servidor
897901
migrate.permission_denied=No te está permitido importar repositorios locales.
902+
migrate.permission_denied_blocked=No puede importar desde hosts no permitidos, por favor pida al administrador que marque ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS configuración.
898903
migrate.invalid_local_path=La ruta local es inválida. No existe o no es un directorio.
899904
migrate.invalid_lfs_endpoint=El punto final de LFS no es válido.
900905
migrate.failed=Migración fallida: %v
@@ -905,12 +910,14 @@ migrate.migrate=Migrar desde %s
905910
migrate.migrating=Migrando desde <b>%s</b>...
906911
migrate.migrating_failed=La migración desde <b>%s</b> ha fallado.
907912
migrate.migrating_failed.error=Error: %s
913+
migrate.migrating_failed_no_addr=Migración fallida.
908914
migrate.github.description=Migrar datos desde github.com u otra instancia de Github.
909915
migrate.git.description=Migrar un repositorio sólo desde cualquier servicio Git.
910916
migrate.gitlab.description=Migrar datos de gitlab.com u otra instancia de GitLab.
911917
migrate.gitea.description=Migrar datos de gitea.com u otra instancia de Gitea.
912918
migrate.gogs.description=Migrar datos de notabug.org u otra instancia de Gogs.
913919
migrate.onedev.description=Migrar datos desde code.onedev.io u otra instancia de OneDev.
920+
migrate.gitbucket.description=Migrar datos de instancias de GitBucket.
914921
migrate.migrating_git=Migrando datos de Git
915922
migrate.migrating_topics=Migrando Temas
916923
migrate.migrating_milestones=Migrando Hitos
@@ -939,6 +946,7 @@ clone_this_repo=Clonar este repositorio
939946
create_new_repo_command=Crear un nuevo repositorio desde línea de comandos
940947
push_exist_repo=Hacer push de un repositorio existente desde línea de comandos
941948
empty_message=Este repositorio no contiene ningún contenido.
949+
broken_message=Los datos de git subyacentes a este repositorio no pueden ser leídos. Contacte con el administrador de esta instancia o elimine este repositorio.
942950

943951
code=Código
944952
code.desc=Acceder código fuente, archivos, commits, y ramas.
@@ -1165,6 +1173,9 @@ issues.add_assignee_at='fue asignado por <b>%s</b> %s'
11651173
issues.remove_assignee_at=`fue desasignado por <b>%s</b> %s`
11661174
issues.remove_self_assignment=`eliminado su asignación %s`
11671175
issues.change_title_at=`cambió el título de <b><strike>%s</strike></b> a <b>%s</b> %s`
1176+
issues.change_ref_at=`cambió referencia de <b><strike>%s</strike></b> a <b>%s</b> %s`
1177+
issues.remove_ref_at=`eliminó la referencia <b>%s</b> %s`
1178+
issues.add_ref_at=`añadió la referencia <b>%s</b> %s`
11681179
issues.delete_branch_at=`rama eliminada <b>%s</b> %s`
11691180
issues.open_tab=%d abiertas
11701181
issues.close_tab=%d cerradas
@@ -1398,10 +1409,12 @@ pulls.compare_changes_desc=Seleccione la rama en la que se fusiona y la rama a r
13981409
pulls.compare_base=fusionar en
13991410
pulls.compare_compare=recuperar de
14001411
pulls.switch_comparison_type=Cambiar tipo de comparación
1412+
pulls.switch_head_and_base=Intercambiar cabeza y base
14011413
pulls.filter_branch=Filtrar rama
14021414
pulls.no_results=Sin resultados.
14031415
pulls.nothing_to_compare=Estas ramas son iguales. No hay necesidad para crear un pull request.
14041416
pulls.nothing_to_compare_and_allow_empty_pr=Estas ramas son iguales. Este PR estará vacío.
1417+
pulls.has_pull_request=`Ya existe un pull request entre estas ramas: <a href="%[1]s">%[2]s#%[3]d</a>`
14051418
pulls.create=Crear Pull Request
14061419
pulls.title_desc=desea fusionar %[1]d commits de <code>%[2]s</code> en <code id="branch_target">%[3]s</code>
14071420
pulls.merged_title_desc=fusionados %[1]d commits de <code>%[2]s</code> en <code>%[3]s</code> %[4]s
@@ -1919,6 +1932,8 @@ settings.require_signed_commits=Requiere commits firmados
19191932
settings.require_signed_commits_desc=Rechazar push en esta rama si los commits no están firmados o no son verificables.
19201933
settings.protect_protected_file_patterns=Patrones de archivos protegidos (separados con punto y coma '\;'):
19211934
settings.protect_protected_file_patterns_desc=Archivos protegidos que no están permitidos a ser cambiados directamente incluso si el usuario tiene permiso para agregar, editar o borrar archivos en esta rama. Múltiples patrones pueden separarse usando punto y coma ('\;'). Vea la documentación de <a href="https://pkg.go.dev/github.com/gobwas/glob#Compile">github.com/gobwas/glob</a> para la sintaxis de patrones. Ejemplos: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
1935+
settings.protect_unprotected_file_patterns=Patrones de archivos sin protección (separados con punto y coma '\;'):
1936+
settings.protect_unprotected_file_patterns_desc=Archivos sin protección que se pueden cambiar directamente si el usuario tiene acceso de escritura, evitando la restricción push. Múltiples patrones pueden separarse usando punto y coma ('\;'). Vea la documentación de <a href="https://pkg.go.dev/github.com/gobwas/glob#Compile">github.com/gobwas/glob</a> para la sintaxis de patrones. Ejemplos: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
19221937
settings.add_protected_branch=Activar protección
19231938
settings.delete_protected_branch=Desactivar protección
19241939
settings.update_protect_branch_success=La protección de la rama '%s' ha sido actualizada.
@@ -1992,6 +2007,7 @@ settings.lfs_pointers.inRepo=En repositorio
19922007
settings.lfs_pointers.exists=Existe en almacén
19932008
settings.lfs_pointers.accessible=Accesible al usuario
19942009
settings.lfs_pointers.associateAccessible=Asociar %d OID accesibles
2010+
settings.rename_branch_failed_exist=No se puede renombrar la rama porque la rama destino %s ya existe.
19952011
settings.rename_branch_failed_not_exist=No se puede renombrar la rama %s porque no existe.
19962012
settings.rename_branch_success=La rama %s se renombró correctamente a %s.
19972013
settings.rename_branch_from=nombre de la rama vieja
@@ -2028,6 +2044,7 @@ diff.file_suppressed=La diferencia del archivo ha sido suprimido porque es demas
20282044
diff.file_suppressed_line_too_long=Las diferiencias del archivo han sido suprimidas porque una o mas lineas son muy largas
20292045
diff.too_many_files=Algunos archivos no se mostraron porque demasiados archivos han cambiado en esta diferencia
20302046
diff.show_more=Ver más
2047+
diff.load=Cargar Diff
20312048
diff.generated=generado
20322049
diff.vendored=vendido
20332050
diff.comment.placeholder=Deja un comentario
@@ -2377,6 +2394,7 @@ users.list_status_filter.reset=Reiniciar
23772394
users.list_status_filter.is_active=Activo
23782395
users.list_status_filter.not_active=Inactivo
23792396
users.list_status_filter.is_admin=Administrador
2397+
users.list_status_filter.not_admin=Sin Admin
23802398
users.list_status_filter.is_restricted=Restringido
23812399
users.list_status_filter.not_restricted=No restringido
23822400
users.list_status_filter.is_prohibit_login=Prohibido el inicio de sesión
@@ -2487,6 +2505,7 @@ auths.oauth2_authURL=URL de Autorización
24872505
auths.oauth2_profileURL=URL del perfil
24882506
auths.oauth2_emailURL=URL de correo
24892507
auths.skip_local_two_fa=Omitir 2FA local
2508+
auths.skip_local_two_fa_helper=Dejar sin ajustar significa que los usuarios locales con una configuración 2FA tendrán que pasar 2FA para iniciar sesión
24902509
auths.oauth2_tenant=Tenant
24912510
auths.enable_auto_register=Hablilitar Auto-Registro
24922511
auths.sspi_auto_create_users=Crear usuarios automáticamente
@@ -2535,6 +2554,7 @@ config.app_ver=Versión de Gitea
25352554
config.app_url=URL base de Gitea
25362555
config.custom_conf=Ruta del fichero de configuración
25372556
config.custom_file_root_path=Ruta raíz de los archivos personalizada
2557+
config.domain=Dominio del Servidor
25382558
config.offline_mode=Modo offline
25392559
config.disable_router_log=Deshabilitar Log del Router
25402560
config.run_user=Ejecutar como usuario
@@ -2550,6 +2570,7 @@ config.reverse_auth_user=Autenticación Inversa de Usuario
25502570
config.ssh_config=Configuración SSH
25512571
config.ssh_enabled=Habilitado
25522572
config.ssh_start_builtin_server=Utilizar servidor integrado
2573+
config.ssh_domain=Dominio del servidor SSH
25532574
config.ssh_port=Puerto
25542575
config.ssh_listen_port=Puerto de escucha
25552576
config.ssh_root_path=Ruta raíz
@@ -2746,14 +2767,32 @@ notices.delete_success=Los avisos del sistema se han eliminado.
27462767
[action]
27472768
create_repo=creó el repositorio <a href="%s">%s</a>
27482769
rename_repo=repositorio renombrado de <code>%[1]s</code> a <a href="%[2]s">%[3]s</a>
2770+
commit_repo=hizo push a <a href="%[2]s">%[3]s</a> en <a href="%[1]s">%[4]s</a>
2771+
create_issue=`abrió la incidencia <a href="%[1]s">%[3]s#%[2]s</a>`
2772+
close_issue=`cerró la incidencia <a href="%[1]s">%[3]s#%[2]s</a>`
2773+
reopen_issue=`reabrió la incidencia <a href="%[1]s">%[3]s#%[2]s</a>`
2774+
create_pull_request=`creó el pull request <a href="%[1]s">%[3]s#%[2]s</a>`
2775+
close_pull_request=`cerró el pull request <a href="%[1]s">%[3]s#%[2]s</a>`
2776+
reopen_pull_request=`reabrió el pull request <a href="%[1]s">%[3]s#%[2]s</a>`
2777+
comment_issue=`comentó en la incidencia <a href="%[1]s">%[3]s#%[2]s</a>`
2778+
comment_pull=`comentó en el pull request <a href="%[1]s">%[3]s#%[2]s</a>`
2779+
merge_pull_request=`fusionó el pull request <a href="%[1]s">%[3]s#%[2]s</a>`
27492780
transfer_repo=transfirió el repositorio <code>%s</code> a <a href="%s">%s</a>
2781+
push_tag=hizó push la etiqueta <a href="%[2]s">%[3]s</a> a <a href="%[1]s">%[4]s</a>
27502782
delete_tag=etiqueta eliminada %[2]s de <a href="%[1]s">%[3]s</a>
27512783
delete_branch=rama %[2]s eliminada, de <a href="%[1]s">%[3]s</a>
27522784
compare_branch=Comparar
27532785
compare_commits=Comparar %d commits
27542786
compare_commits_general=Comparar commits
2787+
mirror_sync_push=sincronizó cambios a <a href="%[2]s">%[3]s</a> en <a href="%[1]s">%[4]s</a> desde réplica
2788+
mirror_sync_create=sincronizó la nueva referencia <a href="%[2]s">%[3]s</a> a <a href="%[1]s">%[4]s</a> de réplica
27552789
mirror_sync_delete=sincronizada y eliminada referencia <code>%[2]s</code> en <a href="%[1]s">%[3]s</a> desde réplica
2790+
approve_pull_request=`aprobó <a href="%[1]s">%[3]s#%[2]s</a>`
2791+
reject_pull_request=`sugirió cambios para <a href="%[1]s">%[3]s#%[2]s</a>`
2792+
publish_release=`se lanzó <a href="%[2]s"> "%[4]s" </a> en <a href="%[1]s">%[3]s</a>`
2793+
review_dismissed=`descartó la revisión de <b>%[4]s</b> para <a href="%[1]s">%[3]s#%[2]s</a>`
27562794
review_dismissed_reason=Motivo:
2795+
create_branch=creó rama <a href="%[2]s">%[3]s</a> en <a href="%[1]s">%[4]s</a>
27572796
starred_repo=destacó <a href="%[1]s">%[2]s</a>
27582797
watched_repo=comenzó a seguir <a href="%[1]s">%[2]s</a>
27592798

options/locale/locale_pt-PT.ini

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -898,6 +898,7 @@ migrate.clone_address_desc=O URL de clonagem HTTP(S) ou Git de um repositório e
898898
migrate.github_token_desc=Pode colocar aqui um ou mais códigos separados por vírgulas para tornar mais rápida a migração, para compensar a limitação de velocidade da API do GitHub. AVISO: O abuso desta funcionalidade poderá violar a política do seu fornecedor de serviço e levar ao bloqueio da conta.
899899
migrate.clone_local_path=ou um caminho no servidor local
900900
migrate.permission_denied=Não está autorizado a importar repositórios locais.
901+
migrate.permission_denied_blocked=Não pode importar de servidores não permitidos, por favor peça ao administrador para verificar as configurações ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS.
901902
migrate.invalid_local_path=O caminho local é inválido. Não existe ou não é uma pasta.
902903
migrate.invalid_lfs_endpoint=O destino LFS não é válido.
903904
migrate.failed=A migração falhou: %v
@@ -944,6 +945,7 @@ clone_this_repo=Clonar este repositório
944945
create_new_repo_command=Criando um novo repositório na linha de comandos
945946
push_exist_repo=Enviando, pela linha de comandos, um repositório existente
946947
empty_message=Este repositório não contém qualquer conteúdo.
948+
broken_message=Os dados git subjacentes a este repositório não podem ser lidos. Contacte o administrador desta instância ou elimine este repositório.
947949

948950
code=Código
949951
code.desc=Aceder ao código fonte, ficheiros, cometimentos e ramos.
@@ -2034,6 +2036,7 @@ diff.file_suppressed=A apresentação das diferenças no ficheiro foi suprimida
20342036
diff.file_suppressed_line_too_long=A apresentação das diferenças entre ficheiros foi suprimida porque há linhas demasiado longas
20352037
diff.too_many_files=Alguns ficheiros não foram mostrados porque foram modificados demasiados ficheiros neste diff
20362038
diff.show_more=Mostrar mais
2039+
diff.load=Carregar diff
20372040
diff.comment.placeholder=Deixar um comentário
20382041
diff.comment.markdown_info=A formatação com markdown é suportada.
20392042
diff.comment.add_single_comment=Adicionar um único comentário

routers/api/v1/admin/user.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"errors"
1010
"fmt"
1111
"net/http"
12+
"strings"
1213

1314
"code.gitea.io/gitea/models"
1415
"code.gitea.io/gitea/models/db"
@@ -203,12 +204,21 @@ func EditUser(ctx *context.APIContext) {
203204
if form.FullName != nil {
204205
u.FullName = *form.FullName
205206
}
207+
var emailChanged bool
206208
if form.Email != nil {
207-
u.Email = *form.Email
208-
if len(u.Email) == 0 {
209+
email := strings.TrimSpace(*form.Email)
210+
if len(email) == 0 {
209211
ctx.Error(http.StatusUnprocessableEntity, "", fmt.Errorf("email is not allowed to be empty string"))
210212
return
211213
}
214+
215+
if err := user_model.ValidateEmail(email); err != nil {
216+
ctx.InternalServerError(err)
217+
return
218+
}
219+
220+
emailChanged = !strings.EqualFold(u.Email, email)
221+
u.Email = email
212222
}
213223
if form.Website != nil {
214224
u.Website = *form.Website
@@ -247,7 +257,7 @@ func EditUser(ctx *context.APIContext) {
247257
u.IsRestricted = *form.Restricted
248258
}
249259

250-
if err := user_model.UpdateUser(u); err != nil {
260+
if err := user_model.UpdateUser(u, emailChanged); err != nil {
251261
if user_model.IsErrEmailAlreadyUsed(err) || user_model.IsErrEmailInvalid(err) {
252262
ctx.Error(http.StatusUnprocessableEntity, "", err)
253263
} else {

routers/api/v1/user/settings.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func UpdateUserSettings(ctx *context.APIContext) {
7474
ctx.User.KeepActivityPrivate = *form.HideActivity
7575
}
7676

77-
if err := user_model.UpdateUser(ctx.User); err != nil {
77+
if err := user_model.UpdateUser(ctx.User, false); err != nil {
7878
ctx.InternalServerError(err)
7979
return
8080
}

0 commit comments

Comments
 (0)