Loading CHANGELOG.md +3 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,9 @@ All notable changes to this project are documented below. The format is based on [keep a changelog](http://keepachangelog.com) and this project uses [semantic versioning](http://semver.org). ## [Unreleased] ### Changed - Storage object get operations now also return the user ID if the owner is the root user. ### Fixed - Correctly display counters on console status page. - Correctly display friend names on console user details page. Loading server/console_storage.go +2 −3 Original line number Diff line number Diff line Loading @@ -132,8 +132,8 @@ func (s *ConsoleServer) ListStorage(ctx context.Context, in *console.ListStorage o := &api.StorageObject{CreateTime: ×tamp.Timestamp{}, UpdateTime: ×tamp.Timestamp{}} var createTime pq.NullTime var updateTime pq.NullTime var userID sql.NullString if err := rows.Scan(&o.Collection, &o.Key, &userID, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { if err := rows.Scan(&o.Collection, &o.Key, &o.UserId, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { rows.Close() s.logger.Error("Error scanning storage objects.", zap.Any("in", in), zap.Error(err)) return nil, status.Error(codes.Internal, "An error occurred while trying to list storage objects.") Loading @@ -142,7 +142,6 @@ func (s *ConsoleServer) ListStorage(ctx context.Context, in *console.ListStorage o.CreateTime.Seconds = createTime.Time.Unix() o.UpdateTime.Seconds = updateTime.Time.Unix() o.UserId = userID.String objects = append(objects, o) } rows.Close() Loading server/core_storage.go +5 −11 Original line number Diff line number Diff line Loading @@ -305,15 +305,14 @@ WHERE user_id = $1` o := &api.StorageObject{CreateTime: ×tamp.Timestamp{}, UpdateTime: ×tamp.Timestamp{}} var createTime pq.NullTime var updateTime pq.NullTime var userID sql.NullString if err := rows.Scan(&o.Collection, &o.Key, &userID, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { if err := rows.Scan(&o.Collection, &o.Key, &o.UserId, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { return err } o.CreateTime.Seconds = createTime.Time.Unix() o.UpdateTime.Seconds = updateTime.Time.Unix() o.UserId = userID.String funcObjects = append(funcObjects, o) } Loading @@ -334,8 +333,8 @@ func storageListObjects(rows *sql.Rows, cursor string) (*api.StorageObjectList, o := &api.StorageObject{CreateTime: ×tamp.Timestamp{}, UpdateTime: ×tamp.Timestamp{}} var createTime pq.NullTime var updateTime pq.NullTime var userID sql.NullString if err := rows.Scan(&o.Collection, &o.Key, &userID, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { if err := rows.Scan(&o.Collection, &o.Key, &o.UserId, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { rows.Close() return nil, err } Loading @@ -343,7 +342,6 @@ func storageListObjects(rows *sql.Rows, cursor string) (*api.StorageObjectList, o.CreateTime.Seconds = createTime.Time.Unix() o.UpdateTime.Seconds = updateTime.Time.Unix() o.UserId = userID.String objects = append(objects, o) } rows.Close() Loading Loading @@ -431,17 +429,13 @@ WHERE var createTime pq.NullTime var updateTime pq.NullTime var userID sql.NullString if err := rows.Scan(&o.Collection, &o.Key, &userID, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { if err := rows.Scan(&o.Collection, &o.Key, &o.UserId, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { return err } o.CreateTime.Seconds = createTime.Time.Unix() o.UpdateTime.Seconds = updateTime.Time.Unix() if uuid.FromStringOrNil(userID.String) != uuid.Nil { o.UserId = userID.String } funcObjects.Objects = append(funcObjects.Objects, o) } if err = rows.Err(); err != nil { Loading tests/core_storage_test.go +4 −4 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ func TestStorageWriteRuntimeGlobalSingle(t *testing.T) { assert.Len(t, readData.Objects, 1, "readData length was not 1") assert.Equal(t, acks.Acks[0].Collection, readData.Objects[0].Collection, "collection did not match") assert.Equal(t, acks.Acks[0].Key, readData.Objects[0].Key, "record did not match") assert.Equal(t, "", readData.Objects[0].UserId, "user id was not nil") assert.Equal(t, uuid.Nil.String(), readData.Objects[0].UserId, "user id was not nil") assert.EqualValues(t, []byte(fmt.Sprintf("%x", md5.Sum([]byte((ops[0].Object.Value))))), readData.Objects[0].Version, "version did not match") assert.Equal(t, int32(2), readData.Objects[0].PermissionRead, "permission read did not match") assert.Equal(t, int32(1), readData.Objects[0].PermissionWrite, "permission write did not match") Loading Loading @@ -539,7 +539,7 @@ func TestStorageWriteRuntimeGlobalMultipleSameKey(t *testing.T) { assert.Len(t, readData.Objects, 1, "readData length was not 1") assert.Equal(t, "testcollection", readData.Objects[0].Collection, "collection did not match") assert.Equal(t, key, readData.Objects[0].Key, "key did not match") assert.Equal(t, "", readData.Objects[0].UserId, "user id was not nil") assert.Equal(t, uuid.Nil.String(), readData.Objects[0].UserId, "user id was not nil") assert.EqualValues(t, []byte(fmt.Sprintf("%x", md5.Sum([]byte("{\"foo\":\"qux\"}")))), readData.Objects[0].Version, "version did not match") assert.Equal(t, int32(1), readData.Objects[0].PermissionRead, "permission read did not match") assert.Equal(t, int32(1), readData.Objects[0].PermissionWrite, "permission write did not match") Loading Loading @@ -925,7 +925,7 @@ func TestStorageFetchRuntimeGlobalPrivate(t *testing.T) { assert.Len(t, readData.Objects, 1, "readData length was not 1") assert.Equal(t, acks.Acks[0].Collection, readData.Objects[0].Collection, "collection did not match") assert.Equal(t, acks.Acks[0].Key, readData.Objects[0].Key, "record did not match") assert.Equal(t, "", readData.Objects[0].UserId, "user id was not nil") assert.Equal(t, uuid.Nil.String(), readData.Objects[0].UserId, "user id was not nil") assert.EqualValues(t, []byte(fmt.Sprintf("%x", md5.Sum([]byte((ops[0].Object.Value))))), readData.Objects[0].Version, "version did not match") assert.Equal(t, int32(0), readData.Objects[0].PermissionRead, "permission read did not match") assert.Equal(t, int32(0), readData.Objects[0].PermissionWrite, "permission write did not match") Loading Loading @@ -978,7 +978,7 @@ func TestStorageFetchRuntimeMixed(t *testing.T) { assert.Equal(t, acks.Acks[0].Collection, readData.Objects[0].Collection, "collection did not match") assert.Equal(t, acks.Acks[0].Key, readData.Objects[0].Key, "record did not match") assert.Equal(t, "", readData.Objects[0].UserId, "user id was not nil") assert.Equal(t, uuid.Nil.String(), readData.Objects[0].UserId, "user id was not nil") assert.EqualValues(t, []byte(fmt.Sprintf("%x", md5.Sum([]byte((ops[0].Object.Value))))), readData.Objects[0].Version, "version did not match") assert.Equal(t, int32(0), readData.Objects[0].PermissionRead, "permission read did not match") assert.Equal(t, int32(0), readData.Objects[0].PermissionWrite, "permission write did not match") Loading Loading
CHANGELOG.md +3 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,9 @@ All notable changes to this project are documented below. The format is based on [keep a changelog](http://keepachangelog.com) and this project uses [semantic versioning](http://semver.org). ## [Unreleased] ### Changed - Storage object get operations now also return the user ID if the owner is the root user. ### Fixed - Correctly display counters on console status page. - Correctly display friend names on console user details page. Loading
server/console_storage.go +2 −3 Original line number Diff line number Diff line Loading @@ -132,8 +132,8 @@ func (s *ConsoleServer) ListStorage(ctx context.Context, in *console.ListStorage o := &api.StorageObject{CreateTime: ×tamp.Timestamp{}, UpdateTime: ×tamp.Timestamp{}} var createTime pq.NullTime var updateTime pq.NullTime var userID sql.NullString if err := rows.Scan(&o.Collection, &o.Key, &userID, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { if err := rows.Scan(&o.Collection, &o.Key, &o.UserId, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { rows.Close() s.logger.Error("Error scanning storage objects.", zap.Any("in", in), zap.Error(err)) return nil, status.Error(codes.Internal, "An error occurred while trying to list storage objects.") Loading @@ -142,7 +142,6 @@ func (s *ConsoleServer) ListStorage(ctx context.Context, in *console.ListStorage o.CreateTime.Seconds = createTime.Time.Unix() o.UpdateTime.Seconds = updateTime.Time.Unix() o.UserId = userID.String objects = append(objects, o) } rows.Close() Loading
server/core_storage.go +5 −11 Original line number Diff line number Diff line Loading @@ -305,15 +305,14 @@ WHERE user_id = $1` o := &api.StorageObject{CreateTime: ×tamp.Timestamp{}, UpdateTime: ×tamp.Timestamp{}} var createTime pq.NullTime var updateTime pq.NullTime var userID sql.NullString if err := rows.Scan(&o.Collection, &o.Key, &userID, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { if err := rows.Scan(&o.Collection, &o.Key, &o.UserId, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { return err } o.CreateTime.Seconds = createTime.Time.Unix() o.UpdateTime.Seconds = updateTime.Time.Unix() o.UserId = userID.String funcObjects = append(funcObjects, o) } Loading @@ -334,8 +333,8 @@ func storageListObjects(rows *sql.Rows, cursor string) (*api.StorageObjectList, o := &api.StorageObject{CreateTime: ×tamp.Timestamp{}, UpdateTime: ×tamp.Timestamp{}} var createTime pq.NullTime var updateTime pq.NullTime var userID sql.NullString if err := rows.Scan(&o.Collection, &o.Key, &userID, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { if err := rows.Scan(&o.Collection, &o.Key, &o.UserId, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { rows.Close() return nil, err } Loading @@ -343,7 +342,6 @@ func storageListObjects(rows *sql.Rows, cursor string) (*api.StorageObjectList, o.CreateTime.Seconds = createTime.Time.Unix() o.UpdateTime.Seconds = updateTime.Time.Unix() o.UserId = userID.String objects = append(objects, o) } rows.Close() Loading Loading @@ -431,17 +429,13 @@ WHERE var createTime pq.NullTime var updateTime pq.NullTime var userID sql.NullString if err := rows.Scan(&o.Collection, &o.Key, &userID, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { if err := rows.Scan(&o.Collection, &o.Key, &o.UserId, &o.Value, &o.Version, &o.PermissionRead, &o.PermissionWrite, &createTime, &updateTime); err != nil { return err } o.CreateTime.Seconds = createTime.Time.Unix() o.UpdateTime.Seconds = updateTime.Time.Unix() if uuid.FromStringOrNil(userID.String) != uuid.Nil { o.UserId = userID.String } funcObjects.Objects = append(funcObjects.Objects, o) } if err = rows.Err(); err != nil { Loading
tests/core_storage_test.go +4 −4 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ func TestStorageWriteRuntimeGlobalSingle(t *testing.T) { assert.Len(t, readData.Objects, 1, "readData length was not 1") assert.Equal(t, acks.Acks[0].Collection, readData.Objects[0].Collection, "collection did not match") assert.Equal(t, acks.Acks[0].Key, readData.Objects[0].Key, "record did not match") assert.Equal(t, "", readData.Objects[0].UserId, "user id was not nil") assert.Equal(t, uuid.Nil.String(), readData.Objects[0].UserId, "user id was not nil") assert.EqualValues(t, []byte(fmt.Sprintf("%x", md5.Sum([]byte((ops[0].Object.Value))))), readData.Objects[0].Version, "version did not match") assert.Equal(t, int32(2), readData.Objects[0].PermissionRead, "permission read did not match") assert.Equal(t, int32(1), readData.Objects[0].PermissionWrite, "permission write did not match") Loading Loading @@ -539,7 +539,7 @@ func TestStorageWriteRuntimeGlobalMultipleSameKey(t *testing.T) { assert.Len(t, readData.Objects, 1, "readData length was not 1") assert.Equal(t, "testcollection", readData.Objects[0].Collection, "collection did not match") assert.Equal(t, key, readData.Objects[0].Key, "key did not match") assert.Equal(t, "", readData.Objects[0].UserId, "user id was not nil") assert.Equal(t, uuid.Nil.String(), readData.Objects[0].UserId, "user id was not nil") assert.EqualValues(t, []byte(fmt.Sprintf("%x", md5.Sum([]byte("{\"foo\":\"qux\"}")))), readData.Objects[0].Version, "version did not match") assert.Equal(t, int32(1), readData.Objects[0].PermissionRead, "permission read did not match") assert.Equal(t, int32(1), readData.Objects[0].PermissionWrite, "permission write did not match") Loading Loading @@ -925,7 +925,7 @@ func TestStorageFetchRuntimeGlobalPrivate(t *testing.T) { assert.Len(t, readData.Objects, 1, "readData length was not 1") assert.Equal(t, acks.Acks[0].Collection, readData.Objects[0].Collection, "collection did not match") assert.Equal(t, acks.Acks[0].Key, readData.Objects[0].Key, "record did not match") assert.Equal(t, "", readData.Objects[0].UserId, "user id was not nil") assert.Equal(t, uuid.Nil.String(), readData.Objects[0].UserId, "user id was not nil") assert.EqualValues(t, []byte(fmt.Sprintf("%x", md5.Sum([]byte((ops[0].Object.Value))))), readData.Objects[0].Version, "version did not match") assert.Equal(t, int32(0), readData.Objects[0].PermissionRead, "permission read did not match") assert.Equal(t, int32(0), readData.Objects[0].PermissionWrite, "permission write did not match") Loading Loading @@ -978,7 +978,7 @@ func TestStorageFetchRuntimeMixed(t *testing.T) { assert.Equal(t, acks.Acks[0].Collection, readData.Objects[0].Collection, "collection did not match") assert.Equal(t, acks.Acks[0].Key, readData.Objects[0].Key, "record did not match") assert.Equal(t, "", readData.Objects[0].UserId, "user id was not nil") assert.Equal(t, uuid.Nil.String(), readData.Objects[0].UserId, "user id was not nil") assert.EqualValues(t, []byte(fmt.Sprintf("%x", md5.Sum([]byte((ops[0].Object.Value))))), readData.Objects[0].Version, "version did not match") assert.Equal(t, int32(0), readData.Objects[0].PermissionRead, "permission read did not match") assert.Equal(t, int32(0), readData.Objects[0].PermissionWrite, "permission write did not match") Loading