Skip to content

Commit 4340038

Browse files
authored
Merge branch 'main' into fix-team-access
2 parents 4734279 + 229235f commit 4340038

File tree

24 files changed

+61
-50
lines changed

24 files changed

+61
-50
lines changed

modules/htmlutil/html.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"fmt"
88
"html/template"
99
"slices"
10+
"strings"
1011
)
1112

1213
// ParseSizeAndClass get size and class from string with default values
@@ -31,6 +32,9 @@ func ParseSizeAndClass(defaultSize int, defaultClass string, others ...any) (int
3132
}
3233

3334
func HTMLFormat(s template.HTML, rawArgs ...any) template.HTML {
35+
if !strings.Contains(string(s), "%") || len(rawArgs) == 0 {
36+
panic("HTMLFormat requires one or more arguments")
37+
}
3438
args := slices.Clone(rawArgs)
3539
for i, v := range args {
3640
switch v := v.(type) {

modules/markup/markdown/math/block_renderer.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ func (r *BlockRenderer) writeLines(w util.BufWriter, source []byte, n gast.Node)
5151
func (r *BlockRenderer) renderBlock(w util.BufWriter, source []byte, node gast.Node, entering bool) (gast.WalkStatus, error) {
5252
n := node.(*Block)
5353
if entering {
54-
code := giteaUtil.Iif(n.Inline, "", `<pre class="code-block is-loading">`) + `<code class="language-math display">`
55-
_ = r.renderInternal.FormatWithSafeAttrs(w, template.HTML(code))
54+
codeHTML := giteaUtil.Iif[template.HTML](n.Inline, "", `<pre class="code-block is-loading">`) + `<code class="language-math display">`
55+
_, _ = w.WriteString(string(r.renderInternal.ProtectSafeAttrs(codeHTML)))
5656
r.writeLines(w, source, n)
5757
} else {
5858
_, _ = w.WriteString(`</code>` + giteaUtil.Iif(n.Inline, "", `</pre>`) + "\n")

modules/markup/markdown/math/inline_renderer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func NewInlineRenderer(renderInternal *internal.RenderInternal) renderer.NodeRen
2828

2929
func (r *InlineRenderer) renderInline(w util.BufWriter, source []byte, n ast.Node, entering bool) (ast.WalkStatus, error) {
3030
if entering {
31-
_ = r.renderInternal.FormatWithSafeAttrs(w, `<code class="language-math">`)
31+
_, _ = w.WriteString(string(r.renderInternal.ProtectSafeAttrs(`<code class="language-math">`)))
3232
for c := n.FirstChild(); c != nil; c = c.NextSibling() {
3333
segment := c.(*ast.Text).Segment
3434
value := util.EscapeHTML(segment.Value(source))

modules/templates/helper.go

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ package templates
66

77
import (
88
"fmt"
9-
"html"
109
"html/template"
1110
"net/url"
1211
"strconv"
@@ -38,9 +37,7 @@ func NewFuncMap() template.FuncMap {
3837
"dict": dict, // it's lowercase because this name has been widely used. Our other functions should have uppercase names.
3938
"Iif": iif,
4039
"Eval": evalTokens,
41-
"SafeHTML": safeHTML,
4240
"HTMLFormat": htmlFormat,
43-
"HTMLEscape": htmlEscape,
4441
"QueryEscape": queryEscape,
4542
"QueryBuild": QueryBuild,
4643
"JSEscape": jsEscapeSafe,
@@ -165,32 +162,11 @@ func NewFuncMap() template.FuncMap {
165162
}
166163
}
167164

168-
// safeHTML render raw as HTML
169-
func safeHTML(s any) template.HTML {
170-
switch v := s.(type) {
171-
case string:
172-
return template.HTML(v)
173-
case template.HTML:
174-
return v
175-
}
176-
panic(fmt.Sprintf("unexpected type %T", s))
177-
}
178-
179165
// SanitizeHTML sanitizes the input by default sanitization rules.
180166
func SanitizeHTML(s string) template.HTML {
181167
return markup.Sanitize(s)
182168
}
183169

184-
func htmlEscape(s any) template.HTML {
185-
switch v := s.(type) {
186-
case string:
187-
return template.HTML(html.EscapeString(v))
188-
case template.HTML:
189-
return v
190-
}
191-
panic(fmt.Sprintf("unexpected type %T", s))
192-
}
193-
194170
func htmlFormat(s any, args ...any) template.HTML {
195171
if len(args) == 0 {
196172
// to prevent developers from calling "HTMLFormat $userInput" by mistake which will lead to XSS

options/locale/locale_de-DE.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1228,7 +1228,6 @@ migrate.migrating_issues=Issues werden migriert
12281228
migrate.migrating_pulls=Pull Requests werden migriert
12291229
migrate.cancel_migrating_title=Migration abbrechen
12301230
migrate.cancel_migrating_confirm=Möchtest du diese Migration abbrechen?
1231-
migrating_status=Migrationstatus
12321231
12331232
mirror_from=Mirror von
12341233
forked_from=geforkt von

options/locale/locale_en-US.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1229,7 +1229,7 @@ migrate.migrating_issues = Migrating Issues
12291229
migrate.migrating_pulls = Migrating Pull Requests
12301230
migrate.cancel_migrating_title = Cancel Migration
12311231
migrate.cancel_migrating_confirm = Do you want to cancel this migration?
1232-
migrating_status = Migrating status
1232+
migration_status = Migration status
12331233
12341234
mirror_from = mirror of
12351235
forked_from = forked from

options/locale/locale_fr-FR.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1228,7 +1228,6 @@ migrate.migrating_issues=Migration des tickets
12281228
migrate.migrating_pulls=Migration des demandes d'ajout
12291229
migrate.cancel_migrating_title=Annuler la migration
12301230
migrate.cancel_migrating_confirm=Voulez-vous abandonner cette migration ?
1231-
migrating_status=Migration des statuts
12321231

12331232
mirror_from=miroir de
12341233
forked_from=bifurqué depuis

options/locale/locale_ga-IE.ini

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1229,7 +1229,6 @@ migrate.migrating_issues=Saincheisteanna Imirce
12291229
migrate.migrating_pulls=Iarratais Tarraingthe á n-Imirce
12301230
migrate.cancel_migrating_title=Cealaigh Imirce
12311231
migrate.cancel_migrating_confirm=Ar mhaith leat an imirce seo a chealú?
1232-
migrating_status=Stádas imirce
12331232

12341233
mirror_from=scáthán de
12351234
forked_from=forcailte ó
@@ -1355,6 +1354,7 @@ editor.update=Nuashonraigh %s
13551354
editor.delete=Scrios %s
13561355
editor.patch=Cuir paiste i bhfeidh
13571356
editor.patching=Paisteáil:
1357+
editor.fail_to_apply_patch=Ní féidir an paiste a chur i bhfeidhm
13581358
editor.new_patch=Paiste Nua
13591359
editor.commit_message_desc=Cuir cur síos leathnaithe roghnach leis…
13601360
editor.signoff_desc=Cuir leantóir sínithe ag an gcoiteoir ag deireadh na teachtaireachta logála tiomanta.
@@ -1398,6 +1398,12 @@ editor.revert=Fill %s ar:
13981398
editor.failed_to_commit=Theip ar athruithe a chur i bhfeidhm.
13991399
editor.failed_to_commit_summary=Teachtaireacht Earráide:
14001400

1401+
editor.fork_create=Stóras Forc chun Athruithe a Mholadh
1402+
editor.fork_create_description=Ní féidir leat an stóras seo a chur in eagar go díreach. Ina áit sin, is féidir leat forc a chruthú, eagarthóireachtaí a dhéanamh agus iarratas tarraingthe a chruthú.
1403+
editor.fork_edit_description=Ní féidir leat an stóras seo a chur in eagar go díreach. Scríobhfar na hathruithe chuig do fhorc <b>%s</b>, ionas gur féidir leat iarratas tarraingthe a chruthú.
1404+
editor.fork_not_editable=Tá forc déanta agat ar an stóras seo ach ní féidir do fhorc a chur in eagar.
1405+
editor.fork_failed_to_push_branch=Theip ar bhrainse %s a bhrú chuig do stóras.
1406+
editor.fork_branch_exists=Tá brainse "%s" ann cheana féin i do fhorc, roghnaigh ainm brainse nua le do thoil.
14011407

14021408
commits.desc=Brabhsáil stair athraithe cód foinse.
14031409
commits.commits=Tiomáintí
@@ -3832,6 +3838,7 @@ runs.no_runs=Níl aon rith ag an sreabhadh oibre fós.
38323838
runs.empty_commit_message=(teachtaireacht tiomantas folamh)
38333839
runs.expire_log_message=Glanadh logaí toisc go raibh siad ró-sean.
38343840
runs.delete=Scrios rith sreabha oibre
3841+
runs.cancel=Cealaigh rith an tsreabha oibre
38353842
runs.delete.description=An bhfuil tú cinnte gur mian leat an rith sreabha oibre seo a scriosadh go buan? Ní féidir an gníomh seo a chealú.
38363843
runs.not_done=Níl an rith sreabha oibre seo críochnaithe.
38373844
runs.view_workflow_file=Féach ar chomhad sreabha oibre

options/locale/locale_ja-JP.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1229,7 +1229,6 @@ migrate.migrating_issues=イシュー移行中
12291229
migrate.migrating_pulls=プルリクエスト移行中
12301230
migrate.cancel_migrating_title=移行のキャンセル
12311231
migrate.cancel_migrating_confirm=この移行をキャンセルしますか?
1232-
migrating_status=移行状況
12331232

12341233
mirror_from=ミラー元
12351234
forked_from=フォーク元

options/locale/locale_pt-PT.ini

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,7 @@ remember_me.compromised=O identificador da sessão já não é válido, o que po
421421
forgot_password_title=Esqueci-me da senha
422422
forgot_password=Esqueceu a sua senha?
423423
need_account=Precisa de uma conta?
424+
sign_up_tip=Você está a registar a primeira conta no sistema, que tem privilégios de administrador. Guarde cuidadosamente o nome de utilizador e a senha. Se se esquecer do nome de utilizador ou da senha, consulte a documentação do Gitea para recuperar a conta.
424425
sign_up_now=Inscreva-se agora.
425426
sign_up_successful=A conta foi criada com sucesso. Bem-vindo/a!
426427
confirmation_mail_sent_prompt_ex=Foi enviado um email de confirmação para <b>%s</b>. Verifique a sua caixa de entrada dentro de %s para completar o processo de registo. Se o seu endereço de email de registo estiver errado, pode iniciar a sessão novamente e mudá-lo.
@@ -1353,6 +1354,7 @@ editor.update=Modificar %s
13531354
editor.delete=Eliminar %s
13541355
editor.patch=Aplicar remendo (patch)
13551356
editor.patching=Remendando (patching):
1357+
editor.fail_to_apply_patch=Não foi possível aplicar o remendo (patch)
13561358
editor.new_patch=Novo remendo (patch)
13571359
editor.commit_message_desc=Adicionar uma descrição alargada opcional…
13581360
editor.signoff_desc=Adicionar "Assinado-por" seguido do autor do cometimento no fim da mensagem do registo de cometimentos.
@@ -1372,6 +1374,7 @@ editor.branch_already_exists=O ramo "%s" já existe neste repositório.
13721374
editor.directory_is_a_file=O nome da pasta "%s" já é usado como um nome de ficheiro neste repositório.
13731375
editor.file_is_a_symlink=`"%s" é uma ligação simbólica. Ligações simbólicas não podem ser editadas no editor web`
13741376
editor.filename_is_a_directory=O nome de ficheiro "%s" já está a ser usado como um nome de pasta neste repositório.
1377+
editor.file_modifying_no_longer_exists=O ficheiro que está a ser modificado, "%s", já não existe neste repositório.
13751378
editor.file_changed_while_editing=O conteúdo do ficheiro mudou desde que começou a editar. <a target="_blank" rel="noopener noreferrer" href="%s">Clique aqui</a> para ver as modificações ou clique em <strong>Cometer novamente</strong> para escrever por cima.
13761379
editor.file_already_exists=Já existe um ficheiro com o nome "%s" neste repositório.
13771380
editor.commit_id_not_matching=O ID do cometimento não corresponde ao ID de quando começou a editar. Faça o cometimento para um ramo de remendo (patch) e depois faça a integração.
@@ -1392,7 +1395,15 @@ editor.user_no_push_to_branch=O utilizador não pode enviar para o ramo
13921395
editor.require_signed_commit=O ramo requer um cometimento assinado
13931396
editor.cherry_pick=Escolher a dedo %s para:
13941397
editor.revert=Reverter %s para:
1398+
editor.failed_to_commit=Falhou ao cometer as modificações.
1399+
editor.failed_to_commit_summary=Mensagem de erro:
13951400

1401+
editor.fork_create=Faça uma derivação do repositório para propor modificações
1402+
editor.fork_create_description=Não pode editar este repositório. Ao invés disso, crie uma derivação, faça as modificações nessa derivação e crie um pedido de integração.
1403+
editor.fork_edit_description=Não pode editar este repositório. As modificações irão ser escritas na sua derivação <b>%s</b>, para que possa criar um pedido de integração.
1404+
editor.fork_not_editable=Fez uma derivação deste repositório, mas a sua derivação não é editável.
1405+
editor.fork_failed_to_push_branch=Falhou ao enviar o ramo %s para o seu repositório.
1406+
editor.fork_branch_exists=O ramo "%s" já existe na sua derivação, escolha outro nome para o ramo.
13961407

13971408
commits.desc=Navegar pelo histórico de modificações no código fonte.
13981409
commits.commits=Cometimentos
@@ -2807,6 +2818,7 @@ team_permission_desc=Permissão
28072818
team_unit_desc=Permitir acesso às secções do repositório
28082819
team_unit_disabled=(desabilitada)
28092820

2821+
form.name_been_taken=O nome da organização "%s" já foi tomado.
28102822
form.name_reserved=O nome de organização "%s" está reservado.
28112823
form.name_pattern_not_allowed=O padrão "%s" não é permitido no nome de uma organização.
28122824
form.create_org_not_allowed=Não tem permissão para criar uma organização.
@@ -2829,12 +2841,27 @@ settings.visibility.private_shortname=Privado
28292841
settings.update_settings=Modificar configurações
28302842
settings.update_setting_success=As configurações da organização foram modificadas.
28312843

2844+
settings.rename=Renomear organização
2845+
settings.rename_desc=Mudar o nome da organização também irá mudar o URL da organização e libertar o nome antigo.
2846+
settings.rename_success=A organização %[1]s foi renomeada para %[2]s com sucesso.
2847+
settings.rename_no_change=O nome da organização não foi alterado.
2848+
settings.rename_new_org_name=Novo nome da organização
2849+
settings.rename_failed=A renomeação da organização falhou por causa de um erro interno
2850+
settings.rename_notices_1=Esta operação <strong>NÃO PODERÁ</strong> ser revertida.
2851+
settings.rename_notices_2=O antigo nome, enquanto não for reivindicado, irá reencaminhar para o novo.
28322852

28332853
settings.update_avatar_success=O avatar da organização foi modificado.
28342854
settings.delete=Eliminar organização
28352855
settings.delete_account=Eliminar esta organização
28362856
settings.delete_prompt=A organização será removida permanentemente. Essa operação <strong>NÃO PODERÁ</strong> ser revertida!
2857+
settings.name_confirm=Insira o nome da organização para confirmar:
2858+
settings.delete_notices_1=Esta operação <strong>NÃO PODERÁ</strong> ser revertida.
2859+
settings.delete_notices_2=Esta operação irá eliminar de forma permanente todos os <strong>repositórios</strong> de <strong>%s</strong>, incluindo código-fonte, questões, comentários, dados do wiki e configurações dos colaboradores.
2860+
settings.delete_notices_3=Esta operação irá eliminar de forma permanente todos os <strong>pacotes</strong> de <strong>%s</strong>.
2861+
settings.delete_notices_4=Esta operação irá eliminar de forma permanente todos os <strong>planeamentos</strong> de <strong>%s</strong>.
28372862
settings.confirm_delete_account=Confirme a eliminação
2863+
settings.delete_failed=A eliminação da organização falhou por causa de um erro interno
2864+
settings.delete_successful=A organização <b>%s</b> foi eliminada com sucesso.
28382865
settings.hooks_desc=Adicionar automatismos web que serão despoletados para <strong>todos os repositórios</strong> desta organização.
28392866

28402867
settings.labels_desc=Adicionar rótulos que possam ser usados em questões para <strong>todos os repositórios</strong> desta organização.
@@ -3811,6 +3838,7 @@ runs.no_runs=A sequência de trabalho ainda não foi executada.
38113838
runs.empty_commit_message=(mensagem de cometimento vazia)
38123839
runs.expire_log_message=Os registros foram removidos porque eram muito antigos.
38133840
runs.delete=Eliminar execução da sequência de trabalho
3841+
runs.cancel=Cancelar a execução da sequência de trabalho
38143842
runs.delete.description=Tem a certeza que pretende eliminar permanentemente a execução desta sequência de trabalho? Esta operação não poderá ser desfeita.
38153843
runs.not_done=A execução desta sequência de trabalho ainda não terminou.
38163844
runs.view_workflow_file=Ver ficheiro da sequência de trabalho

0 commit comments

Comments
 (0)