objectresolver

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: May 9, 2024 License: BSD-3-Clause Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrAmbiguous         = errors.New("ambiguous object list result")
	ErrCreateUnsupported = errors.New("object creation not supported")
	ErrNotFound          = errors.New("object not found")
)

Functions

func MustGetOrCreateByName

func MustGetOrCreateByName[T any](t *testing.T, resolver *Resolver[T], name string) T

Types

type CorrespondentResolver

type CorrespondentResolver = Resolver[plclient.Correspondent]

func NewMemCorrespondentResolver

func NewMemCorrespondentResolver() *CorrespondentResolver

type CorrespondentResolverOptions

type CorrespondentResolverOptions struct {
	PermissionOptions

	Client CorrespondentClient
}

type DocumentTypeResolver

type DocumentTypeResolver = Resolver[plclient.DocumentType]

func NewMemDocumentTypeResolver

func NewMemDocumentTypeResolver() *DocumentTypeResolver

type DocumentTypeResolverOptions

type DocumentTypeResolverOptions struct {
	PermissionOptions

	Client DocumentTypeClient
}

type GroupClient

type GroupClient interface {
	ListGroups(context.Context, plclient.ListGroupsOptions) ([]plclient.Group, *plclient.Response, error)
}

type GroupResolver

type GroupResolver = Resolver[plclient.Group]

func NewGroupResolver

func NewGroupResolver(opts GroupResolverOptions) *GroupResolver

func NewMemGroupResolver

func NewMemGroupResolver() *GroupResolver

type GroupResolverOptions

type GroupResolverOptions struct {
	Client GroupClient
}

type NamedObjectPermissionPrincipals

type NamedObjectPermissionPrincipals struct {
	Users  []string
	Groups []string
}

type NamedObjectPermissions

type NamedObjectPermissions struct {
	Owner  string
	View   NamedObjectPermissionPrincipals
	Change NamedObjectPermissionPrincipals
}

func (*NamedObjectPermissions) RegisterFlags

func (p *NamedObjectPermissions) RegisterFlags(app *kingpin.Application)

type ObjectResolvers

type ObjectResolvers struct {
	User          *UserResolver
	Group         *GroupResolver
	Tag           *TagResolver
	Correspondent *CorrespondentResolver
	DocumentType  *DocumentTypeResolver
	StoragePath   *StoragePathResolver
}

func NewMemObjectResolvers

func NewMemObjectResolvers() *ObjectResolvers

func NewObjectResolvers

func NewObjectResolvers(ctx context.Context, cl ObjectResolverClient, defaultPerm NamedObjectPermissions) (*ObjectResolvers, error)

type PermissionOptions

type PermissionOptions struct {
	DefaultOwner       *int64
	DefaultPermissions *plclient.ObjectPermissions
}

type ResolveOwnerClient

type ResolveOwnerClient interface {
	GetCurrentUser(context.Context) (*plclient.User, *plclient.Response, error)
}

type Resolver

type Resolver[T any] struct {
	// contains filtered or unexported fields
}

func (*Resolver[T]) GetByName

func (r *Resolver[T]) GetByName(ctx context.Context, name string) (T, error)

func (*Resolver[T]) GetOrCreateByName

func (r *Resolver[T]) GetOrCreateByName(ctx context.Context, name string) (T, error)

type StoragePathResolver

type StoragePathResolver = Resolver[plclient.StoragePath]

func NewMemStoragePathResolver

func NewMemStoragePathResolver() *StoragePathResolver

type StoragePathResolverOptions

type StoragePathResolverOptions struct {
	PermissionOptions

	Client StoragePathClient
}

type TagResolver

type TagResolver = Resolver[plclient.Tag]

func NewMemTagResolver

func NewMemTagResolver() *TagResolver

func NewTagResolver

func NewTagResolver(opts TagResolverOptions) *TagResolver

type TagResolverOptions

type TagResolverOptions struct {
	PermissionOptions

	Client TagClient
}

type UserClient

type UserClient interface {
	ListUsers(context.Context, plclient.ListUsersOptions) ([]plclient.User, *plclient.Response, error)
}

type UserResolver

type UserResolver = Resolver[plclient.User]

func NewMemUserResolver

func NewMemUserResolver() *UserResolver

func NewUserResolver

func NewUserResolver(opts UserResolverOptions) *UserResolver

type UserResolverOptions

type UserResolverOptions struct {
	Client UserClient
}

Jump to

Keyboard shortcuts

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