ldap_login.go 673 B

12345678910111213141516171819202122232425262728293031323334
  1. package login
  2. import (
  3. "github.com/grafana/grafana/pkg/models"
  4. LDAP "github.com/grafana/grafana/pkg/services/ldap"
  5. )
  6. var newLDAP = LDAP.New
  7. var readLDAPConfig = LDAP.ReadConfig
  8. var isLDAPEnabled = LDAP.IsEnabled
  9. var loginUsingLdap = func(query *models.LoginUserQuery) (bool, error) {
  10. enabled := isLDAPEnabled()
  11. if !enabled {
  12. return false, nil
  13. }
  14. config := readLDAPConfig()
  15. if len(config.Servers) == 0 {
  16. return true, ErrNoLDAPServers
  17. }
  18. for _, server := range config.Servers {
  19. auth := newLDAP(server)
  20. err := auth.Login(query)
  21. if err == nil || err != LDAP.ErrInvalidCredentials {
  22. return true, err
  23. }
  24. }
  25. return true, LDAP.ErrInvalidCredentials
  26. }