FeatureToggle: for storing signed in user object in a Remote Cache (#59883)

* FeatureToggle: for storing sessions in a Remote Cache

Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>

* Fix conflicting modifications :D

Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>

* rename the flag to userRemoteCache

* undo unintended change

* Users: Add option to use remote cache for SignedInUsers (#59892)

* Add remote cache to GetSignedInUserWithCacheCtx

Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>

* Populate SignedInUser remote cache

Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>

* Line

* minor fixes to make this work

Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>

* Fix tests

* change flag to updated name

Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>

Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>
This commit is contained in:
Gabriel MABILLE
2022-12-07 08:58:15 +01:00
committed by GitHub
co-authored by ievaVasiljeva
parent 3c86bf550e
commit 91b15eed1a
7 changed files with 48 additions and 4 deletions
+3 -3
View File
@@ -475,12 +475,12 @@ func (ss *SQLStore) GetUserOrgList(ctx context.Context, query *models.GetUserOrg
})
}
func newSignedInUserCacheKey(orgID, userID int64) string {
func NewSignedInUserCacheKey(orgID, userID int64) string {
return fmt.Sprintf("signed-in-user-%d-%d", userID, orgID)
}
func (ss *SQLStore) GetSignedInUserWithCacheCtx(ctx context.Context, query *models.GetSignedInUserQuery) error {
cacheKey := newSignedInUserCacheKey(query.OrgId, query.UserId)
cacheKey := NewSignedInUserCacheKey(query.OrgId, query.UserId)
if cached, found := ss.CacheService.Get(cacheKey); found {
cachedUser := cached.(user.SignedInUser)
query.Result = &cachedUser
@@ -492,7 +492,7 @@ func (ss *SQLStore) GetSignedInUserWithCacheCtx(ctx context.Context, query *mode
return err
}
cacheKey = newSignedInUserCacheKey(query.Result.OrgID, query.UserId)
cacheKey = NewSignedInUserCacheKey(query.Result.OrgID, query.UserId)
ss.CacheService.Set(cacheKey, *query.Result, time.Second*5)
return nil
}
+1 -1
View File
@@ -457,7 +457,7 @@ func TestIntegrationUserDataAccess(t *testing.T) {
require.NotNil(t, query4.Result)
require.Equal(t, query4.Result.OrgID, users[0].OrgID)
cacheKey := newSignedInUserCacheKey(query4.Result.OrgID, query4.UserId)
cacheKey := NewSignedInUserCacheKey(query4.Result.OrgID, query4.UserId)
_, found := ss.CacheService.Get(cacheKey)
require.True(t, found)