Merge pull request #14574 from grafana/14543_org_redirect
fix signed in user for orgId=0 result should return active org id
This commit is contained in:
@@ -345,8 +345,12 @@ func GetUserOrgList(query *m.GetUserOrgListQuery) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func newSignedInUserCacheKey(orgID, userID int64) string {
|
||||||
|
return fmt.Sprintf("signed-in-user-%d-%d", userID, orgID)
|
||||||
|
}
|
||||||
|
|
||||||
func (ss *SqlStore) GetSignedInUserWithCache(query *m.GetSignedInUserQuery) error {
|
func (ss *SqlStore) GetSignedInUserWithCache(query *m.GetSignedInUserQuery) error {
|
||||||
cacheKey := fmt.Sprintf("signed-in-user-%d-%d", query.UserId, query.OrgId)
|
cacheKey := newSignedInUserCacheKey(query.OrgId, query.UserId)
|
||||||
if cached, found := ss.CacheService.Get(cacheKey); found {
|
if cached, found := ss.CacheService.Get(cacheKey); found {
|
||||||
query.Result = cached.(*m.SignedInUser)
|
query.Result = cached.(*m.SignedInUser)
|
||||||
return nil
|
return nil
|
||||||
@@ -357,6 +361,7 @@ func (ss *SqlStore) GetSignedInUserWithCache(query *m.GetSignedInUserQuery) erro
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cacheKey = newSignedInUserCacheKey(query.Result.OrgId, query.UserId)
|
||||||
ss.CacheService.Set(cacheKey, query.Result, time.Second*5)
|
ss.CacheService.Set(cacheKey, query.Result, time.Second*5)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import (
|
|||||||
func TestUserDataAccess(t *testing.T) {
|
func TestUserDataAccess(t *testing.T) {
|
||||||
|
|
||||||
Convey("Testing DB", t, func() {
|
Convey("Testing DB", t, func() {
|
||||||
InitTestDB(t)
|
ss := InitTestDB(t)
|
||||||
|
|
||||||
Convey("Creating a user", func() {
|
Convey("Creating a user", func() {
|
||||||
cmd := &m.CreateUserCommand{
|
cmd := &m.CreateUserCommand{
|
||||||
@@ -153,6 +153,27 @@ func TestUserDataAccess(t *testing.T) {
|
|||||||
So(prefsQuery.Result.UserId, ShouldEqual, 0)
|
So(prefsQuery.Result.UserId, ShouldEqual, 0)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Convey("when retreiving signed in user for orgId=0 result should return active org id", func() {
|
||||||
|
ss.CacheService.Flush()
|
||||||
|
|
||||||
|
query := &m.GetSignedInUserQuery{OrgId: users[1].OrgId, UserId: users[1].Id}
|
||||||
|
err := ss.GetSignedInUserWithCache(query)
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
So(query.Result, ShouldNotBeNil)
|
||||||
|
So(query.OrgId, ShouldEqual, users[1].OrgId)
|
||||||
|
err = SetUsingOrg(&m.SetUsingOrgCommand{UserId: users[1].Id, OrgId: users[0].OrgId})
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
query = &m.GetSignedInUserQuery{OrgId: 0, UserId: users[1].Id}
|
||||||
|
err = ss.GetSignedInUserWithCache(query)
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
So(query.Result, ShouldNotBeNil)
|
||||||
|
So(query.Result.OrgId, ShouldEqual, users[0].OrgId)
|
||||||
|
|
||||||
|
cacheKey := newSignedInUserCacheKey(query.Result.OrgId, query.UserId)
|
||||||
|
_, found := ss.CacheService.Get(cacheKey)
|
||||||
|
So(found, ShouldBeTrue)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user