| 1234567891011121314151617181920212223242526272829303132333435 |
- package login
- import (
- "crypto/subtle"
- "github.com/grafana/grafana/pkg/bus"
- m "github.com/grafana/grafana/pkg/models"
- "github.com/grafana/grafana/pkg/util"
- )
- var validatePassword = func(providedPassword string, userPassword string, userSalt string) error {
- passwordHashed := util.EncodePassword(providedPassword, userSalt)
- if subtle.ConstantTimeCompare([]byte(passwordHashed), []byte(userPassword)) != 1 {
- return ErrInvalidCredentials
- }
- return nil
- }
- var loginUsingGrafanaDB = func(query *m.LoginUserQuery) error {
- userQuery := m.GetUserByLoginQuery{LoginOrEmail: query.Username}
- if err := bus.Dispatch(&userQuery); err != nil {
- return err
- }
- user := userQuery.Result
- if err := validatePassword(query.Password, user.Password, user.Salt); err != nil {
- return err
- }
- query.User = user
- return nil
- }
|