authorization

package
v0.1.927 Latest Latest
Warning

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

Go to latest
Published: Feb 3, 2026 License: Apache-2.0 Imports: 15 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthorizeManyOptions added in v0.1.50

type AuthorizeManyOptions struct {
	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)

func NewNoopClient added in v0.1.860

func NewNoopClient() Client

type ClientOption

type ClientOption = contract.Opt[ClientOptions]

func WithAuthorizationURL

func WithAuthorizationURL(x *url.URL) ClientOption

func WithAuthorizeManyPath added in v0.1.118

func WithAuthorizeManyPath(x string) ClientOption

func WithEntitiesPath added in v0.1.118

func WithEntitiesPath(x string) ClientOption

func WithLoaded added in v0.1.163

func WithLoaded(x Loaded) ClientOption

func WithTimeout added in v0.1.108

func WithTimeout(x time.Duration) ClientOption

func WithUserIDHeaderKey

func WithUserIDHeaderKey(x string) ClientOption

type ClientOptions

type ClientOptions struct {
	Loaded
	Timeout time.Duration
}

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 Loaded added in v0.1.122

type Loaded struct {
	AuthorizationURL  *url.URL
	EntitiesPath      string
	AuthorizeManyPath string
	UserIDHeaderKey   string
}

type ReplaceOneOptions added in v0.1.50

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

type Tool added in v0.1.245

type Tool interface {
	Client
}

Jump to

Keyboard shortcuts

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