Commit 4ea5d800 by Torkel Ödegaard

Various fixes to data access

parent 0a695ba1
Subproject commit 590c3b4b50195cacf02fbd0456d55ef69db16b79
Subproject commit d9a33680a686ac6bc1239797278ad03b3c784d1c
......@@ -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)
......
......@@ -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
}
......
......@@ -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"`
}
......@@ -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)
......
......@@ -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
......
......@@ -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
}
......
......@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment