From 6a33b290a09b623bfb85d0bc03b2c7e6524ecf2d Mon Sep 17 00:00:00 2001 From: zeripath Date: Sun, 25 Jul 2021 08:09:52 +0100 Subject: [PATCH] Fix add authentication page (#16543) * Fix add authentication page There is a regression in #16199 whereby the add authentication page fails to react to the change in selected type. This is due to the String() method on the LoginSourceType which is ameliorated with an Int() function being added. Following on from this there are a few other related bugs. Fix #16541 Signed-off-by: Andrew Thornton --- models/login_source.go | 13 +++++++++++++ services/auth/source/ldap/security_protocol.go | 5 +++++ templates/admin/auth/edit.tmpl | 4 ++-- templates/admin/auth/new.tmpl | 4 ++-- templates/admin/auth/source/ldap.tmpl | 2 +- 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/models/login_source.go b/models/login_source.go index 5e1c6e222435..3a48074e9a7d 100644 --- a/models/login_source.go +++ b/models/login_source.go @@ -36,6 +36,11 @@ func (typ LoginType) String() string { return LoginNames[typ] } +// Int returns the int value of the LoginType +func (typ LoginType) Int() int { + return int(typ) +} + // LoginNames contains the name of LoginType values. var LoginNames = map[LoginType]string{ LoginLDAP: "LDAP (via BindDN)", @@ -218,6 +223,10 @@ func CreateLoginSource(source *LoginSource) error { return nil } + if settable, ok := source.Cfg.(LoginSourceSettable); ok { + settable.SetLoginSource(source) + } + registerableSource, ok := source.Cfg.(RegisterableSource) if !ok { return nil @@ -320,6 +329,10 @@ func UpdateSource(source *LoginSource) error { return nil } + if settable, ok := source.Cfg.(LoginSourceSettable); ok { + settable.SetLoginSource(source) + } + registerableSource, ok := source.Cfg.(RegisterableSource) if !ok { return nil diff --git a/services/auth/source/ldap/security_protocol.go b/services/auth/source/ldap/security_protocol.go index 47c9d30e5cfe..bb0c7770a1d3 100644 --- a/services/auth/source/ldap/security_protocol.go +++ b/services/auth/source/ldap/security_protocol.go @@ -19,6 +19,11 @@ func (s SecurityProtocol) String() string { return SecurityProtocolNames[s] } +// Int returns the int value of the SecurityProtocol +func (s SecurityProtocol) Int() int { + return int(s) +} + // SecurityProtocolNames contains the name of SecurityProtocol values. var SecurityProtocolNames = map[SecurityProtocol]string{ SecurityProtocolUnencrypted: "Unencrypted", diff --git a/templates/admin/auth/edit.tmpl b/templates/admin/auth/edit.tmpl index 3fbfedefe701..22a2903b273f 100644 --- a/templates/admin/auth/edit.tmpl +++ b/templates/admin/auth/edit.tmpl @@ -12,7 +12,7 @@
- + {{.Source.TypeName}}
@@ -31,7 +31,7 @@ {{svg "octicon-triangle-down" 14 "dropdown icon"}}
diff --git a/templates/admin/auth/new.tmpl b/templates/admin/auth/new.tmpl index 302132e06b2f..6addc50d09c2 100644 --- a/templates/admin/auth/new.tmpl +++ b/templates/admin/auth/new.tmpl @@ -13,12 +13,12 @@
diff --git a/templates/admin/auth/source/ldap.tmpl b/templates/admin/auth/source/ldap.tmpl index 1cbcb2fd415e..0b7ad7a4dae9 100644 --- a/templates/admin/auth/source/ldap.tmpl +++ b/templates/admin/auth/source/ldap.tmpl @@ -7,7 +7,7 @@ {{svg "octicon-triangle-down" 14 "dropdown icon"}}