Skip to content

Commit a8c7f32

Browse files
committed
feat: integrate with token pagination
1 parent 45a52f4 commit a8c7f32

File tree

3 files changed

+9
-18
lines changed

3 files changed

+9
-18
lines changed

internal/check/engine.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,11 @@ func (e *Engine) checkDirect(ctx context.Context, r *RelationTuple, restDepth in
150150
e.d.Logger().
151151
WithField("request", r.String()).
152152
Trace("check direct")
153-
if rels, _, err := e.d.RelationTupleManager().GetRelationTuples(ctx, r.ToQuery()); err == nil && len(rels) > 0 {
153+
if rels, _, err := e.d.RelationTupleManager().GetRelationTuples(
154+
ctx,
155+
r.ToQuery(),
156+
x.WithSize(1),
157+
); err == nil && len(rels) > 0 {
154158
resultCh <- checkgroup.Result{
155159
Membership: checkgroup.IsMember,
156160
Tree: &ketoapi.Tree[*relationtuple.RelationTuple]{

internal/check/engine_test.go

+4-15
Original file line numberDiff line numberDiff line change
@@ -449,9 +449,8 @@ func TestEngine(t *testing.T) {
449449

450450
e := check.NewEngine(reg)
451451

452-
for i, user := range users {
452+
for _, user := range users {
453453
t.Run("user="+user.String(), func(t *testing.T) {
454-
t.Skip() // TODO pagination
455454
allowed, err := e.CheckIsMember(ctx, &relationtuple.RelationTuple{
456455
Namespace: namesp,
457456
Object: obj,
@@ -463,19 +462,9 @@ func TestEngine(t *testing.T) {
463462
})
464463
}
465464

466-
require.Len(t, reg.RequestedPages, 6)
467-
var firstPage int
468-
otherPages := make([]string, 0, 2)
469-
for _, page := range reg.RequestedPages {
470-
if page == "" {
471-
firstPage++
472-
} else {
473-
otherPages = append(otherPages, page)
474-
}
475-
}
476-
assert.Equal(t, 4, firstPage)
477-
require.Len(t, otherPages, 2)
478-
assert.Equal(t, otherPages[0], otherPages[1])
465+
require.Len(t, reg.RequestedPages, 2*len(users),
466+
"expected two db lookups per CheckIsMember() (direct and subject set expand)")
467+
assert.Equal(t, []string{"", "", "", "", "", "", "", ""}, reg.RequestedPages)
479468
})
480469

481470
t.Run("case=wide tuple graph", func(t *testing.T) {

ketoapi/public_api_definitions.go

-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ import (
55

66
"github.com/ory/herodot"
77
"github.com/sirupsen/logrus"
8-
9-
rts "github.com/ory/keto/proto/ory/keto/relation_tuples/v1alpha2"
108
)
119

1210
var (

0 commit comments

Comments
 (0)