mirror of
https://github.com/grafana/grafana.git
synced 2024-11-27 03:11:01 -06:00
56cfe02ca2
* Remove SearchOrgUsers from sqlstore interface * Remove RemoveOrgUser method from sqlstore interface * Delete RemoveOrgUser from sqlstore * Fix lint
67 lines
1.6 KiB
Go
67 lines
1.6 KiB
Go
package sqlstore
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/grafana/grafana/pkg/models"
|
|
"github.com/grafana/grafana/pkg/services/user"
|
|
)
|
|
|
|
func TestSQLStore_AddOrgUser(t *testing.T) {
|
|
var orgID int64 = 1
|
|
store := InitTestDB(t)
|
|
|
|
// create org and admin
|
|
_, err := store.CreateUser(context.Background(), user.CreateUserCommand{
|
|
Login: "admin",
|
|
OrgID: orgID,
|
|
})
|
|
require.NoError(t, err)
|
|
|
|
// create a service account with no org
|
|
sa, err := store.CreateUser(context.Background(), user.CreateUserCommand{
|
|
Login: "sa-no-org",
|
|
IsServiceAccount: true,
|
|
SkipOrgSetup: true,
|
|
})
|
|
|
|
require.NoError(t, err)
|
|
require.Equal(t, int64(-1), sa.OrgID)
|
|
|
|
// assign the sa to the org but without the override. should fail
|
|
err = store.AddOrgUser(context.Background(), &models.AddOrgUserCommand{
|
|
Role: "Viewer",
|
|
OrgId: orgID,
|
|
UserId: sa.ID,
|
|
})
|
|
require.Error(t, err)
|
|
|
|
// assign the sa to the org with the override. should succeed
|
|
err = store.AddOrgUser(context.Background(), &models.AddOrgUserCommand{
|
|
Role: "Viewer",
|
|
OrgId: orgID,
|
|
UserId: sa.ID,
|
|
AllowAddingServiceAccount: true,
|
|
})
|
|
|
|
require.NoError(t, err)
|
|
|
|
// assert the org has been correctly set
|
|
saFound := new(user.User)
|
|
err = store.WithDbSession(context.Background(), func(sess *DBSession) error {
|
|
has, err := sess.ID(sa.ID).Get(saFound)
|
|
if err != nil {
|
|
return err
|
|
} else if !has {
|
|
return user.ErrUserNotFound
|
|
}
|
|
return nil
|
|
})
|
|
|
|
require.NoError(t, err)
|
|
require.Equal(t, saFound.OrgID, orgID)
|
|
}
|