@ -7,7 +7,6 @@ import (
"github.com/grafana/grafana/pkg/models"
"github.com/grafana/grafana/pkg/services/org"
"github.com/grafana/grafana/pkg/services/sqlstore/migrator"
"github.com/grafana/grafana/pkg/services/user"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@ -90,82 +89,6 @@ func TestIntegrationUserDataAccess(t *testing.T) {
Permissions : map [ int64 ] map [ string ] [ ] string { 1 : { "users:read" : { "global.users:*" } } } ,
}
t . Run ( "Testing DB - creates and loads user" , func ( t * testing . T ) {
cmd := user . CreateUserCommand {
Email : "usertest@test.com" ,
Name : "user name" ,
Login : "user_test_login" ,
}
user , err := ss . CreateUser ( context . Background ( ) , cmd )
require . NoError ( t , err )
query := models . GetUserByIdQuery { Id : user . ID }
err = ss . GetUserById ( context . Background ( ) , & query )
require . Nil ( t , err )
require . Equal ( t , query . Result . Email , "usertest@test.com" )
require . Equal ( t , query . Result . Password , "" )
require . Len ( t , query . Result . Rands , 10 )
require . Len ( t , query . Result . Salt , 10 )
require . False ( t , query . Result . IsDisabled )
query = models . GetUserByIdQuery { Id : user . ID }
err = ss . GetUserById ( context . Background ( ) , & query )
require . Nil ( t , err )
require . Equal ( t , query . Result . Email , "usertest@test.com" )
require . Equal ( t , query . Result . Password , "" )
require . Len ( t , query . Result . Rands , 10 )
require . Len ( t , query . Result . Salt , 10 )
require . False ( t , query . Result . IsDisabled )
t . Run ( "Get User by email case insensitive" , func ( t * testing . T ) {
ss . Cfg . CaseInsensitiveLogin = true
query := models . GetUserByEmailQuery { Email : "USERtest@TEST.COM" }
err = ss . GetUserByEmail ( context . Background ( ) , & query )
require . Nil ( t , err )
require . Equal ( t , query . Result . Email , "usertest@test.com" )
require . Equal ( t , query . Result . Password , "" )
require . Len ( t , query . Result . Rands , 10 )
require . Len ( t , query . Result . Salt , 10 )
require . False ( t , query . Result . IsDisabled )
ss . Cfg . CaseInsensitiveLogin = false
} )
t . Run ( "Get User by login - case insensitive" , func ( t * testing . T ) {
ss . Cfg . CaseInsensitiveLogin = true
query := models . GetUserByLoginQuery { LoginOrEmail : "USER_test_login" }
err = ss . GetUserByLogin ( context . Background ( ) , & query )
require . Nil ( t , err )
require . Equal ( t , query . Result . Email , "usertest@test.com" )
require . Equal ( t , query . Result . Password , "" )
require . Len ( t , query . Result . Rands , 10 )
require . Len ( t , query . Result . Salt , 10 )
require . False ( t , query . Result . IsDisabled )
ss . Cfg . CaseInsensitiveLogin = false
} )
t . Run ( "Get User by login - email fallback case insensitive" , func ( t * testing . T ) {
ss . Cfg . CaseInsensitiveLogin = true
query := models . GetUserByLoginQuery { LoginOrEmail : "USERtest@TEST.COM" }
err = ss . GetUserByLogin ( context . Background ( ) , & query )
require . Nil ( t , err )
require . Equal ( t , query . Result . Email , "usertest@test.com" )
require . Equal ( t , query . Result . Password , "" )
require . Len ( t , query . Result . Rands , 10 )
require . Len ( t , query . Result . Salt , 10 )
require . False ( t , query . Result . IsDisabled )
ss . Cfg . CaseInsensitiveLogin = false
} )
} )
t . Run ( "Testing DB - creates and loads disabled user" , func ( t * testing . T ) {
ss = InitTestDB ( t )
cmd := user . CreateUserCommand {
@ -475,90 +398,6 @@ func TestIntegrationUserDataAccess(t *testing.T) {
assert . Len ( t , query . Result . Users , 2 )
} )
t . Run ( "Testing DB - error on case insensitive conflict" , func ( t * testing . T ) {
if ss . engine . Dialect ( ) . DBType ( ) == migrator . MySQL {
t . Skip ( "Skipping on MySQL due to case insensitive indexes" )
}
cmd := user . CreateUserCommand {
Email : "confusertest@test.com" ,
Name : "user name" ,
Login : "user_email_conflict" ,
}
userEmailConflict , err := ss . CreateUser ( context . Background ( ) , cmd )
require . NoError ( t , err )
cmd = user . CreateUserCommand {
Email : "confusertest@TEST.COM" ,
Name : "user name" ,
Login : "user_email_conflict_two" ,
}
_ , err = ss . CreateUser ( context . Background ( ) , cmd )
require . NoError ( t , err )
cmd = user . CreateUserCommand {
Email : "user_test_login_conflict@test.com" ,
Name : "user name" ,
Login : "user_test_login_conflict" ,
}
userLoginConflict , err := ss . CreateUser ( context . Background ( ) , cmd )
require . NoError ( t , err )
cmd = user . CreateUserCommand {
Email : "user_test_login_conflict_two@test.com" ,
Name : "user name" ,
Login : "user_test_login_CONFLICT" ,
}
_ , err = ss . CreateUser ( context . Background ( ) , cmd )
require . NoError ( t , err )
ss . Cfg . CaseInsensitiveLogin = true
t . Run ( "GetUserByEmail - email conflict" , func ( t * testing . T ) {
query := models . GetUserByEmailQuery { Email : "confusertest@test.com" }
err = ss . GetUserByEmail ( context . Background ( ) , & query )
require . Error ( t , err )
} )
t . Run ( "GetUserByEmail - login conflict" , func ( t * testing . T ) {
query := models . GetUserByEmailQuery { Email : "user_test_login_conflict@test.com" }
err = ss . GetUserByEmail ( context . Background ( ) , & query )
require . Error ( t , err )
} )
t . Run ( "GetUserByID - email conflict" , func ( t * testing . T ) {
query := models . GetUserByIdQuery { Id : userEmailConflict . ID }
err = ss . GetUserById ( context . Background ( ) , & query )
require . Error ( t , err )
} )
t . Run ( "GetUserByID - login conflict" , func ( t * testing . T ) {
query := models . GetUserByIdQuery { Id : userLoginConflict . ID }
err = ss . GetUserById ( context . Background ( ) , & query )
require . Error ( t , err )
} )
t . Run ( "GetUserByLogin - email conflict" , func ( t * testing . T ) {
query := models . GetUserByLoginQuery { LoginOrEmail : "user_email_conflict_two" }
err = ss . GetUserByLogin ( context . Background ( ) , & query )
require . Error ( t , err )
} )
t . Run ( "GetUserByLogin - login conflict" , func ( t * testing . T ) {
query := models . GetUserByLoginQuery { LoginOrEmail : "user_test_login_conflict" }
err = ss . GetUserByLogin ( context . Background ( ) , & query )
require . Error ( t , err )
} )
t . Run ( "GetUserByLogin - login conflict by email" , func ( t * testing . T ) {
query := models . GetUserByLoginQuery { LoginOrEmail : "user_test_login_conflict@test.com" }
err = ss . GetUserByLogin ( context . Background ( ) , & query )
require . Error ( t , err )
} )
ss . Cfg . CaseInsensitiveLogin = false
} )
ss = InitTestDB ( t )
t . Run ( "Testing DB - enable all users" , func ( t * testing . T ) {