summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2022-03-10 22:40:43 +0000
committerGitHub <noreply@github.com>2022-03-10 23:40:43 +0100
commita223bc8765f18e1efc59d5291412d0076dfeaa9b (patch)
tree119ac7416597442fdc5a22eafbbdd788894dde4b
parent886b1de94914186a502ed68a6a281a15f1d8d9a3 (diff)
downloadgitea-a223bc8765f18e1efc59d5291412d0076dfeaa9b.tar.gz
gitea-a223bc8765f18e1efc59d5291412d0076dfeaa9b.zip
Prevent 500 when there is an error during new auth source post (#19041)
Fix #19036 Signed-off-by: Andrew Thornton <art27@cantab.net>
-rw-r--r--routers/web/admin/auths.go7
-rw-r--r--templates/admin/auth/new.tmpl2
-rw-r--r--templates/admin/auth/source/oauth.tmpl4
3 files changed, 5 insertions, 8 deletions
diff --git a/routers/web/admin/auths.go b/routers/web/admin/auths.go
index a8e0cd37b6..4c77a169ae 100644
--- a/routers/web/admin/auths.go
+++ b/routers/web/admin/auths.go
@@ -93,7 +93,7 @@ func NewAuthSource(ctx *context.Context) {
ctx.Data["PageIsAdmin"] = true
ctx.Data["PageIsAdminAuthentications"] = true
- ctx.Data["type"] = auth.LDAP
+ ctx.Data["type"] = auth.LDAP.Int()
ctx.Data["CurrentTypeName"] = auth.Names[auth.LDAP]
ctx.Data["CurrentSecurityProtocol"] = ldap.SecurityProtocolNames[ldap.SecurityProtocolUnencrypted]
ctx.Data["smtp_auth"] = "PLAIN"
@@ -112,7 +112,7 @@ func NewAuthSource(ctx *context.Context) {
ctx.Data["SSPIDefaultLanguage"] = ""
// only the first as default
- ctx.Data["oauth2_provider"] = oauth2providers[0]
+ ctx.Data["oauth2_provider"] = oauth2providers[0].Name
ctx.HTML(http.StatusOK, tplAuthNew)
}
@@ -253,9 +253,6 @@ func NewAuthSourcePost(ctx *context.Context) {
ctx.Data["SSPISeparatorReplacement"] = "_"
ctx.Data["SSPIDefaultLanguage"] = ""
- // FIXME: most error path to render tplAuthNew will fail and result in 500
- // * template: admin/auth/new:17:68: executing "admin/auth/new" at <.type.Int>: can't evaluate field Int in type interface {}
- // * template: admin/auth/source/oauth:5:93: executing "admin/auth/source/oauth" at <.oauth2_provider.Name>: can't evaluate field Name in type interface {}
hasTLS := false
var config convert.Conversion
switch auth.Type(form.Type) {
diff --git a/templates/admin/auth/new.tmpl b/templates/admin/auth/new.tmpl
index b8e80dbcaa..9882cde03b 100644
--- a/templates/admin/auth/new.tmpl
+++ b/templates/admin/auth/new.tmpl
@@ -14,7 +14,7 @@
<div class="inline required field {{if .Err_Type}}error{{end}}">
<label>{{.i18n.Tr "admin.auths.auth_type"}}</label>
<div class="ui selection type dropdown">
- <input type="hidden" id="auth_type" name="type" value="{{.type.Int}}">
+ <input type="hidden" id="auth_type" name="type" value="{{.type}}">
<div class="text">{{.CurrentTypeName}}</div>
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
<div class="menu">
diff --git a/templates/admin/auth/source/oauth.tmpl b/templates/admin/auth/source/oauth.tmpl
index 85c7cb6166..3991dc2170 100644
--- a/templates/admin/auth/source/oauth.tmpl
+++ b/templates/admin/auth/source/oauth.tmpl
@@ -2,8 +2,8 @@
<div class="inline required field">
<label>{{.i18n.Tr "admin.auths.oauth2_provider"}}</label>
<div class="ui selection type dropdown">
- <input type="hidden" id="oauth2_provider" name="oauth2_provider" value="{{.oauth2_provider.Name}}">
- <div class="text">{{.oauth2_provider.Name}}</div>
+ <input type="hidden" id="oauth2_provider" name="oauth2_provider" value="{{.oauth2_provider}}">
+ <div class="text">{{.oauth2_provider}}</div>
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
<div class="menu">
{{range .OAuth2Providers}}