Explorar el Código

Auth Proxy: Respect auto_sign_up setting (#17843)

* Add test for disabled auth proxy auto signup option

* Set correctly auth proxy auto signup
Sofia Papagiannaki hace 6 años
padre
commit
f3f03ceb6a
Se han modificado 2 ficheros con 22 adiciones y 1 borrados
  1. 1 1
      pkg/middleware/auth_proxy/auth_proxy.go
  2. 21 0
      pkg/middleware/middleware_test.go

+ 1 - 1
pkg/middleware/auth_proxy/auth_proxy.go

@@ -263,7 +263,7 @@ func (auth *AuthProxy) LoginViaHeader() (int64, error) {
 
 	upsert := &models.UpsertUserCommand{
 		ReqContext:    auth.ctx,
-		SignupAllowed: true,
+		SignupAllowed: setting.AuthProxyAutoSignUp,
 		ExternalUser:  extUser,
 	}
 	err := bus.Dispatch(upsert)

+ 21 - 0
pkg/middleware/middleware_test.go

@@ -15,9 +15,11 @@ import (
 	"github.com/grafana/grafana/pkg/infra/remotecache"
 	"github.com/grafana/grafana/pkg/models"
 	"github.com/grafana/grafana/pkg/services/auth"
+	"github.com/grafana/grafana/pkg/services/login"
 	"github.com/grafana/grafana/pkg/setting"
 	"github.com/grafana/grafana/pkg/util"
 	. "github.com/smartystreets/goconvey/convey"
+	"github.com/stretchr/testify/assert"
 	"gopkg.in/macaron.v1"
 )
 
@@ -394,6 +396,25 @@ func TestMiddlewareContext(t *testing.T) {
 				})
 			})
 
+			middlewareScenario(t, "should respect auto signup option", func(sc *scenarioContext) {
+				setting.LDAPEnabled = false
+				setting.AuthProxyAutoSignUp = false
+				var actualAuthProxyAutoSignUp *bool = nil
+
+				bus.AddHandler("test", func(cmd *models.UpsertUserCommand) error {
+					actualAuthProxyAutoSignUp = &cmd.SignupAllowed
+					return login.ErrInvalidCredentials
+				})
+
+				sc.fakeReq("GET", "/")
+				sc.req.Header.Add(setting.AuthProxyHeaderName, name)
+				sc.exec()
+
+				assert.False(t, *actualAuthProxyAutoSignUp)
+				assert.Equal(t, sc.resp.Code, 500)
+				assert.Nil(t, sc.context)
+			})
+
 			middlewareScenario(t, "should create an user from a header", func(sc *scenarioContext) {
 				setting.LDAPEnabled = false
 				setting.AuthProxyAutoSignUp = true