Documentation
¶
Index ¶
- type App
- func (a *App) AdminAuth() *adminservice.Service
- func (a *App) ComposeFileURL(raw string) string
- func (a *App) ComposeFileURLFallback(primary string, fallback string) string
- func (a *App) Enabled(key string) bool
- func (a *App) Env() string
- func (a *App) EventStream() eventstream.EventStream
- func (a *App) Guard(domain integrationroles.PermissionDomain, ...) fiber.Handler
- func (a *App) HTTPManager() *goinertia.Inertia
- func (a *App) InTransaction(ctx context.Context, fn func(context.Context) error) error
- func (a *App) IsProduction() bool
- func (a *App) Logger() logger.Logger
- func (a *App) NativeCSRFToken(c fiber.Ctx) (string, error)
- func (a *App) Outbox() OutboxPutter
- func (a *App) PermissionDefinitions() []integrationroles.PermissionDefinition
- func (a *App) PermissionGuard() PermissionGuard
- func (a *App) RolesService() RolesService
- func (a *App) Session() *session.Store
- func (a *App) SetCapabilities(values map[string]bool)
- func (a *App) SetCommandTransaction(fn func(context.Context, func(context.Context) error) error)
- func (a *App) SetNativeCSRFTokenProvider(provider goinertia.CSRFTokenProvider)
- func (a *App) SetPermissionDefinitions(definitions []integrationroles.PermissionDefinition)
- func (a *App) SetUsersFeatureDependencies(users UserRepo, subjects SubjectEmailStore)
- func (a *App) TxManager() outbox.StoragePgsqlTxManager
- func (a *App) UsersFeatureRepo() UserRepo
- func (a *App) UsersFeatureSubjects() SubjectEmailStore
- type OptOptionsSetter
- type Options
- type OutboxPutter
- type PermissionGuard
- type RolesService
- type SubjectEmailStore
- type UserRepo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type App ¶
type App struct {
Options
// contains filtered or unexported fields
}
func (*App) AdminAuth ¶
func (a *App) AdminAuth() *adminservice.Service
func (*App) ComposeFileURL ¶
func (*App) ComposeFileURLFallback ¶
func (*App) EventStream ¶
func (a *App) EventStream() eventstream.EventStream
func (*App) Guard ¶
func (a *App) Guard(domain integrationroles.PermissionDomain, action integrationroles.PermissionAction) fiber.Handler
func (*App) HTTPManager ¶
func (*App) InTransaction ¶
func (*App) IsProduction ¶
func (*App) NativeCSRFToken ¶ added in v0.13.0
NativeCSRFToken issues or refreshes native session-bound CSRF for standalone authenticated pages. The ordinary Inertia write middleware still validates it.
func (*App) Outbox ¶
func (a *App) Outbox() OutboxPutter
func (*App) PermissionDefinitions ¶
func (a *App) PermissionDefinitions() []integrationroles.PermissionDefinition
PermissionDefinitions returns a detached snapshot of the runtime permission catalog.
func (*App) PermissionGuard ¶
func (a *App) PermissionGuard() PermissionGuard
func (*App) RolesService ¶
func (a *App) RolesService() RolesService
func (*App) SetCapabilities ¶
func (*App) SetCommandTransaction ¶
func (*App) SetNativeCSRFTokenProvider ¶ added in v0.13.0
func (a *App) SetNativeCSRFTokenProvider(provider goinertia.CSRFTokenProvider)
SetNativeCSRFTokenProvider binds the same provider used by Inertia rendering.
func (*App) SetPermissionDefinitions ¶
func (a *App) SetPermissionDefinitions(definitions []integrationroles.PermissionDefinition)
SetPermissionDefinitions extends the runtime permission catalog with host-owned definitions.
func (*App) SetUsersFeatureDependencies ¶
func (a *App) SetUsersFeatureDependencies(users UserRepo, subjects SubjectEmailStore)
SetUsersFeatureDependencies stores optional dependencies for the users feature.
func (*App) TxManager ¶
func (a *App) TxManager() outbox.StoragePgsqlTxManager
func (*App) UsersFeatureRepo ¶
UsersFeatureRepo returns the optional users feature repository.
func (*App) UsersFeatureSubjects ¶
func (a *App) UsersFeatureSubjects() SubjectEmailStore
UsersFeatureSubjects returns the optional users feature canonical subject store.
type OptOptionsSetter ¶
type OptOptionsSetter func(o *Options)
func WithFilesBucket ¶
func WithFilesBucket(opt string) OptOptionsSetter
type Options ¶
type Options struct {
// contains filtered or unexported fields
}
func NewOptions ¶
func NewOptions( httpManager *goinertia.Inertia, permissionGuard PermissionGuard, rolesService RolesService, adminAuth *adminservice.Service, session *session.Store, eventStream eventstream.EventStream, outbox OutboxPutter, txManager outbox.StoragePgsqlTxManager, logger logger.Logger, env string, filesBaseURL string, options ...OptOptionsSetter, ) Options
type OutboxPutter ¶
type PermissionGuard ¶
type PermissionGuard interface {
AdminGuard(key integrationroles.PermissionKey, opts ...integrationroles.PermissionGuardOption) fiber.Handler
}
type RolesService ¶
type RolesService interface {
IsAdoptedDetachRole(ctx context.Context, adminAuthID int64, adminID int64, roleID int64) (bool, error)
IsSuperAdmin(ctx context.Context, adminID int64) bool
GetRolesAdmin(ctx context.Context, adminID int64) ([]integrationroles.Role, error)
GetPermissions(ctx context.Context, roles []integrationroles.Role) (map[int64]map[int64]integrationroles.Permission, error)
AdminGuardCheck(
ctx context.Context,
adminID int64,
key integrationroles.PermissionKey,
opts ...integrationroles.PermissionGuardOption,
) bool
AdminCan(
ctx context.Context,
adminID int64,
domain integrationroles.PermissionDomain,
action integrationroles.PermissionAction,
) bool
}
type SubjectEmailStore ¶
type SubjectEmailStore interface {
UpdateBasicProfile(
ctx context.Context,
subjectID goauth.SubjectID,
profile goauth.BasicProfile,
) (goauth.Account, error)
RequestEmailChange(ctx context.Context, subjectID goauth.SubjectID, newEmail string) error
SetSubjectStatus(
ctx context.Context,
subjectID goauth.SubjectID,
status goauth.SubjectStatus,
) (goauth.Subject, error)
}
SubjectEmailStore updates canonical subject profile data for the users feature.
type UserRepo ¶
type UserRepo interface {
GetList(ctx context.Context, filters datagrid.Filtered) ([]integrationroles.Profile, int, error)
GetByID(ctx context.Context, id int64) (integrationroles.Profile, error)
Update(ctx context.Context, id int64, user integrationroles.Profile) error
SoftDeleteByID(ctx context.Context, id int64) error
RestoreByID(ctx context.Context, id int64) error
}
UserRepo is the optional repository contract consumed by the users feature.