reverseexpand

package
v1.3.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 17, 2023 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Package reverseexpand contains the code that handles the ReverseExpand API

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConditionalResultStatus

type ConditionalResultStatus int
const (
	RequiresFurtherEvalStatus ConditionalResultStatus = iota
	NoFurtherEvalStatus
)

type IsUserRef

type IsUserRef interface {
	GetObjectType() string
	String() string
	// contains filtered or unexported methods
}

type ResolutionMetadata

type ResolutionMetadata struct {
	QueryCount *uint32
}

func NewResolutionMetadata

func NewResolutionMetadata() *ResolutionMetadata

type ReverseExpandQuery

type ReverseExpandQuery struct {
	// contains filtered or unexported fields
}

func (*ReverseExpandQuery) Execute

func (c *ReverseExpandQuery) Execute(
	ctx context.Context,
	req *ReverseExpandRequest,
	resultChan chan<- *ReverseExpandResult,
	resolutionMetadata *ResolutionMetadata,
) error

Execute yields all the objects of the provided objectType that the given user has, possibly, a specific relation with and sends those objects to resultChan. It MUST guarantee no duplicate objects sent.

type ReverseExpandQueryOption

type ReverseExpandQueryOption func(d *ReverseExpandQuery)

func WithResolveNodeBreadthLimit

func WithResolveNodeBreadthLimit(limit uint32) ReverseExpandQueryOption

func WithResolveNodeLimit

func WithResolveNodeLimit(limit uint32) ReverseExpandQueryOption

type ReverseExpandRequest

type ReverseExpandRequest struct {
	StoreID          string
	ObjectType       string
	Relation         string
	User             IsUserRef
	ContextualTuples []*openfgav1.TupleKey
}

type ReverseExpandResult

type ReverseExpandResult struct {
	Object       string
	ResultStatus ConditionalResultStatus
}

type UserRef

type UserRef struct {

	// Types that are assignable to Ref
	//  *UserRef_Object
	//  *UserRef_TypedWildcard
	//  *UserRef_ObjectRelation
	Ref IsUserRef
}

type UserRefObject

type UserRefObject struct {
	Object *openfgav1.Object
}

func (*UserRefObject) GetObjectType

func (u *UserRefObject) GetObjectType() string

func (*UserRefObject) String

func (u *UserRefObject) String() string

type UserRefObjectRelation

type UserRefObjectRelation struct {
	ObjectRelation *openfgav1.ObjectRelation
}

func (*UserRefObjectRelation) GetObjectType

func (u *UserRefObjectRelation) GetObjectType() string

func (*UserRefObjectRelation) String

func (u *UserRefObjectRelation) String() string

type UserRefTypedWildcard

type UserRefTypedWildcard struct {
	Type string
}

func (*UserRefTypedWildcard) GetObjectType

func (u *UserRefTypedWildcard) GetObjectType() string

func (*UserRefTypedWildcard) String

func (u *UserRefTypedWildcard) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL