authorization

package
v0.1.104 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2025 License: Apache-2.0 Imports: 14 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthorizeManyInternalOptions added in v0.1.64

type AuthorizeManyInternalOptions struct {
	AuthorizeManyPath string
}

type AuthorizeManyOptions added in v0.1.50

type AuthorizeManyOptions struct {
	AuthorizeManyInternalOptions
	R    *http.Request
	I    []contract.Identifiable
	Role contract.Role
}

type Client

type Client interface {
	FindOne(ctx context.Context, opts FindOneOptions) ([]*entity.Entity, error)
	InsertOne(ctx context.Context, opts InsertOneOptions) error
	ReplaceOne(ctx context.Context, opts ReplaceOneOptions) error
	DeleteOne(ctx context.Context, opts DeleteOneOptions) error
	AuthorizeMany(ctx context.Context, opts AuthorizeManyOptions) ([]contract.Identifiable, error)
}

func NewClient

func NewClient(d Dependencies, opts ClientOptions) (Client, error)

type ClientOption

type ClientOption func(*ClientOptions)

func WithAuthorizationTimeout

func WithAuthorizationTimeout(x time.Duration) ClientOption

func WithAuthorizationURL

func WithAuthorizationURL(x *url.URL) ClientOption

func WithUserIDHeaderKey

func WithUserIDHeaderKey(x string) ClientOption

type ClientOptions

type ClientOptions struct {
	UserIDHeaderKey      string
	AuthorizationTimeout time.Duration
	AuthorizationURL     *url.URL
}

func ApplyClientOptions

func ApplyClientOptions(opts *ClientOptions, modifiers ...ClientOption) ClientOptions

type DefaultTool added in v0.1.52

type DefaultTool struct {
	T *contract.Tool[Client]
}

func NewTool added in v0.1.52

func NewTool(c Client, opts contract.ToolOptions[Client]) *DefaultTool

func (*DefaultTool) AuthorizeMany added in v0.1.52

func (d *DefaultTool) AuthorizeMany(ctx context.Context, opts AuthorizeManyOptions) ([]contract.Identifiable, error)

AuthorizeMany filters out unauthorized entities based on role and principal ID.

func (*DefaultTool) DeleteOne added in v0.1.52

func (d *DefaultTool) DeleteOne(ctx context.Context, opts DeleteOneOptions) error

DeleteOne deletes an authorized entity.

func (*DefaultTool) FindOne added in v0.1.52

func (d *DefaultTool) FindOne(ctx context.Context, opts FindOneOptions) ([]*entity.Entity, error)

FindOne finds one entity by ID.

func (*DefaultTool) InsertOne added in v0.1.52

func (d *DefaultTool) InsertOne(ctx context.Context, opts InsertOneOptions) error

InsertOne inserts one entity into the authorization system.

func (*DefaultTool) ReplaceOne added in v0.1.52

func (d *DefaultTool) ReplaceOne(ctx context.Context, opts ReplaceOneOptions) error

ReplaceOne replaces an existing authorized entity.

type DeleteOneOptions added in v0.1.50

type DeleteOneOptions struct {
	ID fmt.Stringer
	R  *http.Request
}

type FindOneOptions added in v0.1.50

type FindOneOptions struct {
	ID fmt.Stringer
	R  *http.Request
}

type InsertOneOptions added in v0.1.50

type InsertOneOptions struct {
	E *entity.Core
	R *http.Request
}

type ReplaceOneOptions added in v0.1.50

type ReplaceOneOptions struct {
	E  *entity.Core
	ID fmt.Stringer
	R  *http.Request
}

Jump to

Keyboard shortcuts

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