Documentation
¶
Index ¶
- func Middleware[TUser user.Model, TAccount account.Model](next http.Handler, loader *Loader[TUser, TAccount], ...) http.Handler
- type Loader
- func (l *Loader[TUser, TAccount]) CrossAccountConnect(ctx context.Context, crossAccountID string, userObj TUser, accountObj TAccount) (TUser, TAccount, error)
- func (l *Loader[TUser, TAccount]) UserAccountByID(ctx context.Context, uID, accID uint64, preUser TUser, prevAccount TAccount) (TUser, TAccount, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Loader ¶ added in v0.5.0
type Loader[TUser user.Model, TAccount account.Model] struct { Users user.Repository[TUser] Accounts account.SessionRepository[TUser, TAccount] Members account.MemberRepository[TUser, TAccount] }
Loader resolves user+account pairs with membership and permission checks.
func NewLoader ¶ added in v0.5.0
func NewLoader[TUser user.Model, TAccount account.Model]( users user.Repository[TUser], accounts account.SessionRepository[TUser, TAccount], members account.MemberRepository[TUser, TAccount], ) *Loader[TUser, TAccount]
NewLoader creates a session loader for auth middleware and authorizers.
func (*Loader[TUser, TAccount]) CrossAccountConnect ¶ added in v0.5.0
func (l *Loader[TUser, TAccount]) CrossAccountConnect(ctx context.Context, crossAccountID string, userObj TUser, accountObj TAccount) (TUser, TAccount, error)
CrossAccountConnect validates and connects to a cross-account context if specified via header.
func (*Loader[TUser, TAccount]) UserAccountByID ¶ added in v0.5.0
func (l *Loader[TUser, TAccount]) UserAccountByID(ctx context.Context, uID, accID uint64, preUser TUser, prevAccount TAccount) (TUser, TAccount, error)
UserAccountByID retrieves and validates a user and account by their IDs, ensuring proper permissions.
Click to show internal directories.
Click to hide internal directories.