diff --git a/grafana b/grafana index 590c3b4b501..d9a33680a68 160000 --- a/grafana +++ b/grafana @@ -1 +1 @@ -Subproject commit 590c3b4b50195cacf02fbd0456d55ef69db16b79 +Subproject commit d9a33680a686ac6bc1239797278ad03b3c784d1c diff --git a/pkg/api/search.go b/pkg/api/search.go index 66129ace325..83f8a3fcc73 100644 --- a/pkg/api/search.go +++ b/pkg/api/search.go @@ -17,7 +17,7 @@ func Search(c *middleware.Context) { } if strings.HasPrefix(queryText, "tags!:") { - query := m.GetDashboardTagsQuery{} + query := m.GetDashboardTagsQuery{AccountId: c.AccountId} err := bus.Dispatch(&query) if err != nil { c.JsonApiErr(500, "Failed to get tags from database", err) diff --git a/pkg/api/user.go b/pkg/api/user.go index ad05ba27209..bc152f49ead 100644 --- a/pkg/api/user.go +++ b/pkg/api/user.go @@ -67,7 +67,7 @@ func validateUsingAccount(userId int64, accountId int64) bool { func SetUsingAccount(c *middleware.Context) { usingAccountId := c.ParamsInt64(":id") - if !validateUsingAccount(c.AccountId, usingAccountId) { + if !validateUsingAccount(c.UserId, usingAccountId) { c.JsonApiErr(401, "Not a valid account", nil) return } diff --git a/pkg/models/account.go b/pkg/models/account.go index 37e3829da6c..5f3d61d1c19 100644 --- a/pkg/models/account.go +++ b/pkg/models/account.go @@ -43,7 +43,7 @@ type GetAccountByIdQuery struct { type UserAccountDTO struct { AccountId int64 `json:"accountId"` - Name string `json:"email"` + Name string `json:"name"` Role RoleType `json:"role"` IsUsing bool `json:"isUsing"` } diff --git a/pkg/services/sqlstore/account_test.go b/pkg/services/sqlstore/account_test.go index f2b651626fb..3ad64513bf3 100644 --- a/pkg/services/sqlstore/account_test.go +++ b/pkg/services/sqlstore/account_test.go @@ -59,8 +59,8 @@ func TestAccountDataAccess(t *testing.T) { err := GetSignedInUser(&query) So(err, ShouldBeNil) - So(query.Result.AccountId, ShouldEqual, ac2.AccountId) So(query.Result.Email, ShouldEqual, "ac2@test.com") + So(query.Result.AccountId, ShouldEqual, ac2.AccountId) So(query.Result.Name, ShouldEqual, "ac2 name") So(query.Result.Login, ShouldEqual, "ac2") So(query.Result.AccountRole, ShouldEqual, "Admin") @@ -76,6 +76,15 @@ func TestAccountDataAccess(t *testing.T) { So(len(query.Result), ShouldEqual, 2) }) + Convey("Can get account users", func() { + query := m.GetAccountUsersQuery{AccountId: ac1.AccountId} + err := GetAccountUsers(&query) + + So(err, ShouldBeNil) + So(len(query.Result), ShouldEqual, 2) + So(query.Result[0].Role, ShouldEqual, "Admin") + }) + Convey("Can set using account", func() { cmd := m.SetUsingAccountCommand{UserId: ac2.Id, AccountId: ac1.Id} err := SetUsingAccount(&cmd) diff --git a/pkg/services/sqlstore/account_users.go b/pkg/services/sqlstore/account_users.go index b3a31f4357c..ec2bb450529 100644 --- a/pkg/services/sqlstore/account_users.go +++ b/pkg/services/sqlstore/account_users.go @@ -36,7 +36,8 @@ func GetAccountUsers(query *m.GetAccountUsersQuery) error { sess := x.Table("account_user") sess.Join("INNER", "user", "account_user.user_id=user.id") sess.Where("account_user.account_id=?", query.AccountId) - sess.Cols("account_user.account_id", "account_user.user_id", "user.email", "user.login") + sess.Cols("account_user.account_id", "account_user.user_id", "user.email", "user.login", "account_user.role") + sess.Asc("user.email", "user.login") err := sess.Find(&query.Result) return err diff --git a/pkg/services/sqlstore/dashboard.go b/pkg/services/sqlstore/dashboard.go index ad119902097..85391fdc936 100644 --- a/pkg/services/sqlstore/dashboard.go +++ b/pkg/services/sqlstore/dashboard.go @@ -120,7 +120,16 @@ func SearchDashboards(query *m.SearchDashboardsQuery) error { } func GetDashboardTags(query *m.GetDashboardTagsQuery) error { - sess := x.Sql("select count(*) as count, term from dashboard_tag group by term") + sql := `SELECT + COUNT(*) as count, + term + FROM dashboard + INNER JOIN dashboard_tag on dashboard_tag.dashboard_id = dashboard.id + WHERE dashboard.account_id=? + GROUP BY term` + + query.Result = make([]*m.DashboardTagCloudItem, 0) + sess := x.Sql(sql, query.AccountId) err := sess.Find(&query.Result) return err } diff --git a/pkg/services/sqlstore/dashboard_test.go b/pkg/services/sqlstore/dashboard_test.go index bed24938f0d..9135ab60eff 100644 --- a/pkg/services/sqlstore/dashboard_test.go +++ b/pkg/services/sqlstore/dashboard_test.go @@ -90,7 +90,7 @@ func TestDashboardDataAccess(t *testing.T) { }) Convey("Should be able to get dashboard tags", func() { - query := m.GetDashboardTagsQuery{} + query := m.GetDashboardTagsQuery{AccountId: 1} err := GetDashboardTags(&query) So(err, ShouldBeNil)